aboutsummaryrefslogtreecommitdiff
path: root/final/ABI-Testsuite/test/s2_6/T_ksc0.x
diff options
context:
space:
mode:
Diffstat (limited to 'final/ABI-Testsuite/test/s2_6/T_ksc0.x')
-rwxr-xr-xfinal/ABI-Testsuite/test/s2_6/T_ksc0.x286935
1 files changed, 286935 insertions, 0 deletions
diff --git a/final/ABI-Testsuite/test/s2_6/T_ksc0.x b/final/ABI-Testsuite/test/s2_6/T_ksc0.x
new file mode 100755
index 00000000..508b60cc
--- /dev/null
+++ b/final/ABI-Testsuite/test/s2_6/T_ksc0.x
@@ -0,0 +1,286935 @@
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c"
+// RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o
+// RUN: c_compiler -c %s -I "common" -o %t3.o
+// RUN: linker -o %t2%exeext %t1.o %t2.o %t3.o
+// RUN: runtool %t2%exeext | checker "TEST PASSED"
+#include "testsuite.h"
+#ifdef __cplusplus
+
+struct aa0 {
+ int a;
+};
+//SIG(-1 aa0) C1{ Fi}
+
+
+
+static void Test_aa0()
+{
+ {
+ init_simple_test("aa0");
+ aa0 lv;
+ check2(sizeof(lv), 4, "sizeof(aa0)");
+ check2(__alignof__(lv), 4, "__alignof__(aa0)");
+ check_field_offset(lv, a, 0, "aa0.a");
+ }
+}
+static Arrange_To_Call_Me vaa0(Test_aa0, "aa0", 4);
+
+#else // __cplusplus
+
+extern VTBL_ENTRY _ZTI3aa0[];
+VTBL_ENTRY *P__ZTI3aa0 = _ZTI3aa0;
+Class_Descriptor cd_aa0 = { "aa0", // class name
+ 0,0,//no base classes
+ 0, // no vftv
+ 0, //no vtt
+ 4, // object size
+ NSPAIRA(_ZTI3aa0),ABISELECT(16,8), //typeinfo_var
+ {0,0},0, // virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa1 {
+ int a;
+ virtual void foo(); // _ZN3aa13fooEv
+ ~aa1(); // tgen
+ aa1(); // tgen
+};
+//SIG(-1 aa1) C1{ v1 Fi}
+
+
+void aa1 ::foo(){vfunc_called(this, "_ZN3aa13fooEv");}
+aa1 ::~aa1(){ note_dtor("aa1", this);} // tgen
+aa1 ::aa1(){ note_ctor("aa1", this);} // tgen
+
+static void Test_aa1()
+{
+ extern Class_Descriptor cd_aa1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa1, buf);
+ aa1 *dp, &lv = *(dp=new (buf) aa1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa1)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa1.a");
+ test_class_info(&lv, &cd_aa1);
+ dp->~aa1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa1(Test_aa1, "aa1", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa1C1Ev();
+extern void _ZN3aa1D1Ev();
+Name_Map name_map_aa1[] = {
+ NSPAIR(_ZN3aa1C1Ev),
+ NSPAIR(_ZN3aa1D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa1[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_aa1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa1[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+Class_Descriptor cd_aa1 = { "aa1", // class name
+ 0,0,//no base classes
+ &(vtc_aa1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa1),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa1),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct aa2 {
+ int a;
+ virtual void foo(); // _ZN3aa23fooEv
+ virtual void bar(); // _ZN3aa23barEv
+ ~aa2(); // tgen
+ aa2(); // tgen
+};
+//SIG(-1 aa2) C1{ v1 v2 Fi}
+
+
+void aa2 ::foo(){vfunc_called(this, "_ZN3aa23fooEv");}
+void aa2 ::bar(){vfunc_called(this, "_ZN3aa23barEv");}
+aa2 ::~aa2(){ note_dtor("aa2", this);} // tgen
+aa2 ::aa2(){ note_ctor("aa2", this);} // tgen
+
+static void Test_aa2()
+{
+ extern Class_Descriptor cd_aa2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_aa2, buf);
+ aa2 *dp, &lv = *(dp=new (buf) aa2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(aa2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(aa2)");
+ check_field_offset(lv, a, ABISELECT(8,4), "aa2.a");
+ test_class_info(&lv, &cd_aa2);
+ dp->~aa2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vaa2(Test_aa2, "aa2", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3aa2C1Ev();
+extern void _ZN3aa2D1Ev();
+Name_Map name_map_aa2[] = {
+ NSPAIR(_ZN3aa2C1Ev),
+ NSPAIR(_ZN3aa2D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3aa2[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_aa2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa2[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+Class_Descriptor cd_aa2 = { "aa2", // class name
+ 0,0,//no base classes
+ &(vtc_aa2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3aa2),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3aa2),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb00 : aa0 {
+ int b;
+};
+//SIG(-1 bb00) C1{ BC2{ Fi} Fi}
+
+
+
+static void Test_bb00()
+{
+ extern Class_Descriptor cd_bb00;
+ void *lvp;
+ {
+ int buf[3];
+ init_test(&cd_bb00, buf);
+ bb00 &lv = *(new (buf) bb00());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), 8, "sizeof(bb00)");
+ check2(__alignof__(lv), 4, "__alignof__(bb00)");
+ check_base_class_offset(lv, (aa0*), 0, "bb00");
+ check_field_offset(lv, b, 4, "bb00.b");
+ test_class_info(&lv, &cd_bb00);
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb00(Test_bb00, "bb00", 8);
+
+#else // __cplusplus
+
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+static Base_Class bases_bb00[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb00[];
+Class_Descriptor cd_bb00 = { "bb00", // class name
+ bases_bb00, 1,
+ 0, // no vftv
+ 0, //no vtt
+ 8, // object size
+ NSPAIRA(_ZTI4bb00),ABISELECT(24,12), //typeinfo_var
+ {0,0},0, // virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc000 : bb00 {
+ int c;
+};
+//SIG(-1 cc000) C1{ BC2{ BC3{ Fi} Fi} Fi}
+
+
+
+static void Test_cc000()
+{
+ extern Class_Descriptor cd_cc000;
+ void *lvp;
+ {
+ int buf[4];
+ init_test(&cd_cc000, buf);
+ cc000 &lv = *(new (buf) cc000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), 12, "sizeof(cc000)");
+ check2(__alignof__(lv), 4, "__alignof__(cc000)");
+ check_base_class_offset(lv, (aa0*)(bb00*), 0, "cc000");
+ check_base_class_offset(lv, (bb00*), 0, "cc000");
+ check_field_offset(lv, c, 8, "cc000.c");
+ test_class_info(&lv, &cd_cc000);
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc000(Test_cc000, "cc000", 12);
+
+#else // __cplusplus
+
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc000[];
+Class_Descriptor cd_cc000 = { "cc000", // class name
+ bases_cc000, 2,
+ 0, // no vftv
+ 0, //no vtt
+ 12, // object size
+ NSPAIRA(_ZTI5cc000),ABISELECT(24,12), //typeinfo_var
+ {0,0},0, // virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0000 : cc000 {
+ int d;
+};
+//SIG(-1 dd0000) C1{ BC2{ BC3{ BC4{ Fi} Fi} Fi} Fi}
+
+
+
+static void Test_dd0000()
+{
+ extern Class_Descriptor cd_dd0000;
+ void *lvp;
+ {
+ int buf[5];
+ init_test(&cd_dd0000, buf);
+ dd0000 &lv = *(new (buf) dd0000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), 16, "sizeof(dd0000)");
+ check2(__alignof__(lv), 4, "__alignof__(dd0000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), 0, "dd0000");
+ check_base_class_offset(lv, (bb00*)(cc000*), 0, "dd0000");
+ check_base_class_offset(lv, (cc000*), 0, "dd0000");
+ check_field_offset(lv, d, 12, "dd0000.d");
+ test_class_info(&lv, &cd_dd0000);
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0000(Test_dd0000, "dd0000", 16);
+
+#else // __cplusplus
+
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd0000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0000[];
+Class_Descriptor cd_dd0000 = { "dd0000", // class name
+ bases_dd0000, 3,
+ 0, // no vftv
+ 0, //no vtt
+ 16, // object size
+ NSPAIRA(_ZTI6dd0000),ABISELECT(24,12), //typeinfo_var
+ {0,0},0, // virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00000 : dd0000 {
+ int e;
+};
+//SIG(1 ee00000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+
+static void Test_ee00000()
+{
+ extern Class_Descriptor cd_ee00000;
+ void *lvp;
+ {
+ int buf[6];
+ init_test(&cd_ee00000, buf);
+ ee00000 &lv = *(new (buf) ee00000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), 20, "sizeof(ee00000)");
+ check2(__alignof__(lv), 4, "__alignof__(ee00000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), 0, "ee00000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), 0, "ee00000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), 0, "ee00000");
+ check_base_class_offset(lv, (dd0000*), 0, "ee00000");
+ check_field_offset(lv, e, 16, "ee00000.e");
+ test_class_info(&lv, &cd_ee00000);
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00000(Test_ee00000, "ee00000", 20);
+
+#else // __cplusplus
+
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee00000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+Class_Descriptor cd_ee00000 = { "ee00000", // class name
+ bases_ee00000, 4,
+ 0, // no vftv
+ 0, //no vtt
+ 20, // object size
+ {0,0},0, // typeinfo_var
+ {0,0},0, // virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10000 : virtual dd0000 {
+ int e;
+ ~ee10000(); // tgen
+ ee10000(); // tgen
+};
+//SIG(1 ee10000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee10000 ::~ee10000(){ note_dtor("ee10000", this);} // tgen
+ee10000 ::ee10000(){ note_ctor("ee10000", this);} // tgen
+
+static void Test_ee10000()
+{
+ extern Class_Descriptor cd_ee10000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee10000, buf);
+ ee10000 *dp, &lv = *(dp=new (buf) ee10000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee10000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee10000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee10000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(12,8), "ee10000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(12,8), "ee10000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10000.e");
+ test_class_info(&lv, &cd_ee10000);
+ dp->~ee10000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10000(Test_ee10000, "ee10000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee10000C1Ev();
+extern void _ZN7ee10000D1Ev();
+Name_Map name_map_ee10000[] = {
+ NSPAIR(_ZN7ee10000C1Ev),
+ NSPAIR(_ZN7ee10000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee10000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10000[];
+static VTBL_ENTRY vtc_ee10000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee10000[];
+static VTT_ENTRY vtt_ee10000[] = {
+ {&(_ZTV7ee10000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee10000[];
+extern VTBL_ENTRY _ZTV7ee10000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10000[];
+Class_Descriptor cd_ee10000 = { "ee10000", // class name
+ bases_ee10000, 4,
+ &(vtc_ee10000[0]), // expected_vtbl_contents
+ &(vtt_ee10000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee10000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10000),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10000),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20000 : dd0000 {
+ int e;
+ virtual void foo(); // _ZN7ee200003fooEv
+ ~ee20000(); // tgen
+ ee20000(); // tgen
+};
+//SIG(1 ee20000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee20000 ::foo(){vfunc_called(this, "_ZN7ee200003fooEv");}
+ee20000 ::~ee20000(){ note_dtor("ee20000", this);} // tgen
+ee20000 ::ee20000(){ note_ctor("ee20000", this);} // tgen
+
+static void Test_ee20000()
+{
+ extern Class_Descriptor cd_ee20000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20000, buf);
+ ee20000 *dp, &lv = *(dp=new (buf) ee20000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee20000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee20000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(8,4), "ee20000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(8,4), "ee20000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20000.e");
+ test_class_info(&lv, &cd_ee20000);
+ dp->~ee20000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20000(Test_ee20000, "ee20000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20000C1Ev();
+extern void _ZN7ee20000D1Ev();
+Name_Map name_map_ee20000[] = {
+ NSPAIR(_ZN7ee20000C1Ev),
+ NSPAIR(_ZN7ee20000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee20000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20000[];
+extern void _ZN7ee200003fooEv();
+static VTBL_ENTRY vtc_ee20000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20000[0]),
+ (VTBL_ENTRY)&_ZN7ee200003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20000[];
+extern VTBL_ENTRY _ZTV7ee20000[];
+Class_Descriptor cd_ee20000 = { "ee20000", // class name
+ bases_ee20000, 4,
+ &(vtc_ee20000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee20000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30000 : virtual dd0000 {
+ int e;
+ virtual void foo(); // _ZN7ee300003fooEv
+ ~ee30000(); // tgen
+ ee30000(); // tgen
+};
+//SIG(1 ee30000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee30000 ::foo(){vfunc_called(this, "_ZN7ee300003fooEv");}
+ee30000 ::~ee30000(){ note_dtor("ee30000", this);} // tgen
+ee30000 ::ee30000(){ note_ctor("ee30000", this);} // tgen
+
+static void Test_ee30000()
+{
+ extern Class_Descriptor cd_ee30000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee30000, buf);
+ ee30000 *dp, &lv = *(dp=new (buf) ee30000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee30000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee30000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee30000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(12,8), "ee30000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(12,8), "ee30000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30000.e");
+ test_class_info(&lv, &cd_ee30000);
+ dp->~ee30000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30000(Test_ee30000, "ee30000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee30000C1Ev();
+extern void _ZN7ee30000D1Ev();
+Name_Map name_map_ee30000[] = {
+ NSPAIR(_ZN7ee30000C1Ev),
+ NSPAIR(_ZN7ee30000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee30000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30000[];
+extern void _ZN7ee300003fooEv();
+static VTBL_ENTRY vtc_ee30000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30000[0]),
+ (VTBL_ENTRY)&_ZN7ee300003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee30000[];
+static VTT_ENTRY vtt_ee30000[] = {
+ {&(_ZTV7ee30000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30000[];
+extern VTBL_ENTRY _ZTV7ee30000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30000[];
+Class_Descriptor cd_ee30000 = { "ee30000", // class name
+ bases_ee30000, 4,
+ &(vtc_ee30000[0]), // expected_vtbl_contents
+ &(vtt_ee30000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee30000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30000),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40000 : dd0000 {
+ int e;
+ virtual void bar(); // _ZN7ee400003barEv
+ ~ee40000(); // tgen
+ ee40000(); // tgen
+};
+//SIG(1 ee40000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee40000 ::bar(){vfunc_called(this, "_ZN7ee400003barEv");}
+ee40000 ::~ee40000(){ note_dtor("ee40000", this);} // tgen
+ee40000 ::ee40000(){ note_ctor("ee40000", this);} // tgen
+
+static void Test_ee40000()
+{
+ extern Class_Descriptor cd_ee40000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40000, buf);
+ ee40000 *dp, &lv = *(dp=new (buf) ee40000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee40000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee40000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(8,4), "ee40000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(8,4), "ee40000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40000.e");
+ test_class_info(&lv, &cd_ee40000);
+ dp->~ee40000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40000(Test_ee40000, "ee40000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40000C1Ev();
+extern void _ZN7ee40000D1Ev();
+Name_Map name_map_ee40000[] = {
+ NSPAIR(_ZN7ee40000C1Ev),
+ NSPAIR(_ZN7ee40000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee40000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40000[];
+extern void _ZN7ee400003barEv();
+static VTBL_ENTRY vtc_ee40000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40000[0]),
+ (VTBL_ENTRY)&_ZN7ee400003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40000[];
+extern VTBL_ENTRY _ZTV7ee40000[];
+Class_Descriptor cd_ee40000 = { "ee40000", // class name
+ bases_ee40000, 4,
+ &(vtc_ee40000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee40000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50000 : virtual dd0000 {
+ int e;
+ virtual void bar(); // _ZN7ee500003barEv
+ ~ee50000(); // tgen
+ ee50000(); // tgen
+};
+//SIG(1 ee50000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee50000 ::bar(){vfunc_called(this, "_ZN7ee500003barEv");}
+ee50000 ::~ee50000(){ note_dtor("ee50000", this);} // tgen
+ee50000 ::ee50000(){ note_ctor("ee50000", this);} // tgen
+
+static void Test_ee50000()
+{
+ extern Class_Descriptor cd_ee50000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee50000, buf);
+ ee50000 *dp, &lv = *(dp=new (buf) ee50000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee50000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee50000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee50000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(12,8), "ee50000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(12,8), "ee50000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50000.e");
+ test_class_info(&lv, &cd_ee50000);
+ dp->~ee50000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50000(Test_ee50000, "ee50000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee50000C1Ev();
+extern void _ZN7ee50000D1Ev();
+Name_Map name_map_ee50000[] = {
+ NSPAIR(_ZN7ee50000C1Ev),
+ NSPAIR(_ZN7ee50000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee50000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50000[];
+extern void _ZN7ee500003barEv();
+static VTBL_ENTRY vtc_ee50000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50000[0]),
+ (VTBL_ENTRY)&_ZN7ee500003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee50000[];
+static VTT_ENTRY vtt_ee50000[] = {
+ {&(_ZTV7ee50000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50000[];
+extern VTBL_ENTRY _ZTV7ee50000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50000[];
+Class_Descriptor cd_ee50000 = { "ee50000", // class name
+ bases_ee50000, 4,
+ &(vtc_ee50000[0]), // expected_vtbl_contents
+ &(vtt_ee50000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee50000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50000),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60000 : dd0000 {
+ int e;
+ virtual void foo(); // _ZN7ee600003fooEv
+ virtual void bar(); // _ZN7ee600003barEv
+ ~ee60000(); // tgen
+ ee60000(); // tgen
+};
+//SIG(1 ee60000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60000 ::foo(){vfunc_called(this, "_ZN7ee600003fooEv");}
+void ee60000 ::bar(){vfunc_called(this, "_ZN7ee600003barEv");}
+ee60000 ::~ee60000(){ note_dtor("ee60000", this);} // tgen
+ee60000 ::ee60000(){ note_ctor("ee60000", this);} // tgen
+
+static void Test_ee60000()
+{
+ extern Class_Descriptor cd_ee60000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60000, buf);
+ ee60000 *dp, &lv = *(dp=new (buf) ee60000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee60000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(8,4), "ee60000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(8,4), "ee60000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(8,4), "ee60000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60000.e");
+ test_class_info(&lv, &cd_ee60000);
+ dp->~ee60000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60000(Test_ee60000, "ee60000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60000C1Ev();
+extern void _ZN7ee60000D1Ev();
+Name_Map name_map_ee60000[] = {
+ NSPAIR(_ZN7ee60000C1Ev),
+ NSPAIR(_ZN7ee60000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee60000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60000[];
+extern void _ZN7ee600003fooEv();
+extern void _ZN7ee600003barEv();
+static VTBL_ENTRY vtc_ee60000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60000[0]),
+ (VTBL_ENTRY)&_ZN7ee600003fooEv,
+ (VTBL_ENTRY)&_ZN7ee600003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60000[];
+extern VTBL_ENTRY _ZTV7ee60000[];
+Class_Descriptor cd_ee60000 = { "ee60000", // class name
+ bases_ee60000, 4,
+ &(vtc_ee60000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee60000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70000 : virtual dd0000 {
+ int e;
+ virtual void foo(); // _ZN7ee700003fooEv
+ virtual void bar(); // _ZN7ee700003barEv
+ ~ee70000(); // tgen
+ ee70000(); // tgen
+};
+//SIG(1 ee70000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70000 ::foo(){vfunc_called(this, "_ZN7ee700003fooEv");}
+void ee70000 ::bar(){vfunc_called(this, "_ZN7ee700003barEv");}
+ee70000 ::~ee70000(){ note_dtor("ee70000", this);} // tgen
+ee70000 ::ee70000(){ note_ctor("ee70000", this);} // tgen
+
+static void Test_ee70000()
+{
+ extern Class_Descriptor cd_ee70000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee70000, buf);
+ ee70000 *dp, &lv = *(dp=new (buf) ee70000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee70000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee70000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd0000*), ABISELECT(12,8), "ee70000");
+ check_base_class_offset(lv, (cc000*)(dd0000*), ABISELECT(12,8), "ee70000");
+ check_base_class_offset(lv, (dd0000*), ABISELECT(12,8), "ee70000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70000.e");
+ test_class_info(&lv, &cd_ee70000);
+ dp->~ee70000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70000(Test_ee70000, "ee70000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee70000C1Ev();
+extern void _ZN7ee70000D1Ev();
+Name_Map name_map_ee70000[] = {
+ NSPAIR(_ZN7ee70000C1Ev),
+ NSPAIR(_ZN7ee70000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd0000;
+extern VTBL_ENTRY _ZTI6dd0000[];
+static Base_Class bases_ee70000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70000[];
+extern void _ZN7ee700003fooEv();
+extern void _ZN7ee700003barEv();
+static VTBL_ENTRY vtc_ee70000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70000[0]),
+ (VTBL_ENTRY)&_ZN7ee700003fooEv,
+ (VTBL_ENTRY)&_ZN7ee700003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee70000[];
+static VTT_ENTRY vtt_ee70000[] = {
+ {&(_ZTV7ee70000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee70000[];
+extern VTBL_ENTRY _ZTV7ee70000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70000[];
+Class_Descriptor cd_ee70000 = { "ee70000", // class name
+ bases_ee70000, 4,
+ &(vtc_ee70000[0]), // expected_vtbl_contents
+ &(vtt_ee70000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee70000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70000),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1000 : virtual cc000 {
+ int d;
+ ~dd1000(); // tgen
+ dd1000(); // tgen
+};
+//SIG(-1 dd1000) C1{ VBC2{ BC3{ BC4{ Fi} Fi} Fi} Fi}
+
+
+dd1000 ::~dd1000(){ note_dtor("dd1000", this);} // tgen
+dd1000 ::dd1000(){ note_ctor("dd1000", this);} // tgen
+
+static void Test_dd1000()
+{
+ extern Class_Descriptor cd_dd1000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd1000, buf);
+ dd1000 *dp, &lv = *(dp=new (buf) dd1000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd1000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(12,8), "dd1000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(12,8), "dd1000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(12,8), "dd1000");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1000.d");
+ test_class_info(&lv, &cd_dd1000);
+ dp->~dd1000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1000(Test_dd1000, "dd1000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd1000C1Ev();
+extern void _ZN6dd1000D1Ev();
+Name_Map name_map_dd1000[] = {
+ NSPAIR(_ZN6dd1000C1Ev),
+ NSPAIR(_ZN6dd1000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd1000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1000[];
+static VTBL_ENTRY vtc_dd1000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+extern VTBL_ENTRY _ZTV6dd1000[];
+static VTT_ENTRY vtt_dd1000[] = {
+ {&(_ZTV6dd1000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+Class_Descriptor cd_dd1000 = { "dd1000", // class name
+ bases_dd1000, 3,
+ &(vtc_dd1000[0]), // expected_vtbl_contents
+ &(vtt_dd1000[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd1000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1000),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1000),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01000 : dd1000 {
+ int e;
+ ~ee01000(); // tgen
+ ee01000(); // tgen
+};
+//SIG(1 ee01000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee01000 ::~ee01000(){ note_dtor("ee01000", this);} // tgen
+ee01000 ::ee01000(){ note_ctor("ee01000", this);} // tgen
+
+static void Test_ee01000()
+{
+ extern Class_Descriptor cd_ee01000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee01000, buf);
+ ee01000 *dp, &lv = *(dp=new (buf) ee01000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee01000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee01000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee01000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(16,12), "ee01000");
+ check_base_class_offset(lv, (dd1000*), 0, "ee01000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01000.e");
+ test_class_info(&lv, &cd_ee01000);
+ dp->~ee01000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01000(Test_ee01000, "ee01000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee01000C1Ev();
+extern void _ZN7ee01000D1Ev();
+Name_Map name_map_ee01000[] = {
+ NSPAIR(_ZN7ee01000C1Ev),
+ NSPAIR(_ZN7ee01000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee01000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01000[];
+static VTBL_ENTRY vtc_ee01000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee01000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee01000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee01000[] = {
+ {&(_ZTV7ee01000[3]), 3,3},
+ {&(_tg__ZTV6dd1000__7ee01000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee01000[];
+extern VTBL_ENTRY _ZTV7ee01000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01000[];
+Class_Descriptor cd_ee01000 = { "ee01000", // class name
+ bases_ee01000, 4,
+ &(vtc_ee01000[0]), // expected_vtbl_contents
+ &(vtt_ee01000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee01000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01000),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11000 : virtual dd1000 {
+ int e;
+ ~ee11000(); // tgen
+ ee11000(); // tgen
+};
+//SIG(1 ee11000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee11000 ::~ee11000(){ note_dtor("ee11000", this);} // tgen
+ee11000 ::ee11000(){ note_ctor("ee11000", this);} // tgen
+
+static void Test_ee11000()
+{
+ extern Class_Descriptor cd_ee11000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee11000, buf);
+ ee11000 *dp, &lv = *(dp=new (buf) ee11000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee11000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee11000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee11000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(28,16), "ee11000");
+ check_base_class_offset(lv, (dd1000*), ABISELECT(16,8), "ee11000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11000.e");
+ test_class_info(&lv, &cd_ee11000);
+ dp->~ee11000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11000(Test_ee11000, "ee11000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee11000C1Ev();
+extern void _ZN7ee11000D1Ev();
+Name_Map name_map_ee11000[] = {
+ NSPAIR(_ZN7ee11000C1Ev),
+ NSPAIR(_ZN7ee11000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee11000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11000[];
+static VTBL_ENTRY vtc_ee11000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11000[0]),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee11000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee11000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee11000[] = {
+ {&(_ZTV7ee11000[4]), 4,7},
+ {&(_ZTV7ee11000[7]), 7,7},
+ {&(_tg__ZTV6dd1000__7ee11000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee11000[];
+extern VTBL_ENTRY _ZTV7ee11000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11000[];
+Class_Descriptor cd_ee11000 = { "ee11000", // class name
+ bases_ee11000, 4,
+ &(vtc_ee11000[0]), // expected_vtbl_contents
+ &(vtt_ee11000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee11000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11000),7, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21000 : dd1000 {
+ int e;
+ virtual void foo(); // _ZN7ee210003fooEv
+ ~ee21000(); // tgen
+ ee21000(); // tgen
+};
+//SIG(1 ee21000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee21000 ::foo(){vfunc_called(this, "_ZN7ee210003fooEv");}
+ee21000 ::~ee21000(){ note_dtor("ee21000", this);} // tgen
+ee21000 ::ee21000(){ note_ctor("ee21000", this);} // tgen
+
+static void Test_ee21000()
+{
+ extern Class_Descriptor cd_ee21000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee21000, buf);
+ ee21000 *dp, &lv = *(dp=new (buf) ee21000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee21000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee21000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee21000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(16,12), "ee21000");
+ check_base_class_offset(lv, (dd1000*), 0, "ee21000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21000.e");
+ test_class_info(&lv, &cd_ee21000);
+ dp->~ee21000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21000(Test_ee21000, "ee21000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee21000C1Ev();
+extern void _ZN7ee21000D1Ev();
+Name_Map name_map_ee21000[] = {
+ NSPAIR(_ZN7ee21000C1Ev),
+ NSPAIR(_ZN7ee21000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee21000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21000[];
+extern void _ZN7ee210003fooEv();
+static VTBL_ENTRY vtc_ee21000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21000[0]),
+ (VTBL_ENTRY)&_ZN7ee210003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee21000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee21000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee21000[] = {
+ {&(_ZTV7ee21000[3]), 3,4},
+ {&(_tg__ZTV6dd1000__7ee21000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee21000[];
+extern VTBL_ENTRY _ZTV7ee21000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21000[];
+Class_Descriptor cd_ee21000 = { "ee21000", // class name
+ bases_ee21000, 4,
+ &(vtc_ee21000[0]), // expected_vtbl_contents
+ &(vtt_ee21000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee21000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31000 : virtual dd1000 {
+ int e;
+ virtual void foo(); // _ZN7ee310003fooEv
+ ~ee31000(); // tgen
+ ee31000(); // tgen
+};
+//SIG(1 ee31000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee31000 ::foo(){vfunc_called(this, "_ZN7ee310003fooEv");}
+ee31000 ::~ee31000(){ note_dtor("ee31000", this);} // tgen
+ee31000 ::ee31000(){ note_ctor("ee31000", this);} // tgen
+
+static void Test_ee31000()
+{
+ extern Class_Descriptor cd_ee31000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee31000, buf);
+ ee31000 *dp, &lv = *(dp=new (buf) ee31000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee31000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee31000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee31000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(28,16), "ee31000");
+ check_base_class_offset(lv, (dd1000*), ABISELECT(16,8), "ee31000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31000.e");
+ test_class_info(&lv, &cd_ee31000);
+ dp->~ee31000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31000(Test_ee31000, "ee31000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee31000C1Ev();
+extern void _ZN7ee31000D1Ev();
+Name_Map name_map_ee31000[] = {
+ NSPAIR(_ZN7ee31000C1Ev),
+ NSPAIR(_ZN7ee31000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee31000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31000[];
+extern void _ZN7ee310003fooEv();
+static VTBL_ENTRY vtc_ee31000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31000[0]),
+ (VTBL_ENTRY)&_ZN7ee310003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee31000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee31000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee31000[] = {
+ {&(_ZTV7ee31000[4]), 4,8},
+ {&(_ZTV7ee31000[8]), 8,8},
+ {&(_tg__ZTV6dd1000__7ee31000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee31000[];
+extern VTBL_ENTRY _ZTV7ee31000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31000[];
+Class_Descriptor cd_ee31000 = { "ee31000", // class name
+ bases_ee31000, 4,
+ &(vtc_ee31000[0]), // expected_vtbl_contents
+ &(vtt_ee31000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee31000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31000),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41000 : dd1000 {
+ int e;
+ virtual void bar(); // _ZN7ee410003barEv
+ ~ee41000(); // tgen
+ ee41000(); // tgen
+};
+//SIG(1 ee41000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee41000 ::bar(){vfunc_called(this, "_ZN7ee410003barEv");}
+ee41000 ::~ee41000(){ note_dtor("ee41000", this);} // tgen
+ee41000 ::ee41000(){ note_ctor("ee41000", this);} // tgen
+
+static void Test_ee41000()
+{
+ extern Class_Descriptor cd_ee41000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee41000, buf);
+ ee41000 *dp, &lv = *(dp=new (buf) ee41000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee41000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee41000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee41000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(16,12), "ee41000");
+ check_base_class_offset(lv, (dd1000*), 0, "ee41000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41000.e");
+ test_class_info(&lv, &cd_ee41000);
+ dp->~ee41000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41000(Test_ee41000, "ee41000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee41000C1Ev();
+extern void _ZN7ee41000D1Ev();
+Name_Map name_map_ee41000[] = {
+ NSPAIR(_ZN7ee41000C1Ev),
+ NSPAIR(_ZN7ee41000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee41000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41000[];
+extern void _ZN7ee410003barEv();
+static VTBL_ENTRY vtc_ee41000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41000[0]),
+ (VTBL_ENTRY)&_ZN7ee410003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee41000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee41000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee41000[] = {
+ {&(_ZTV7ee41000[3]), 3,4},
+ {&(_tg__ZTV6dd1000__7ee41000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee41000[];
+extern VTBL_ENTRY _ZTV7ee41000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41000[];
+Class_Descriptor cd_ee41000 = { "ee41000", // class name
+ bases_ee41000, 4,
+ &(vtc_ee41000[0]), // expected_vtbl_contents
+ &(vtt_ee41000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee41000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51000 : virtual dd1000 {
+ int e;
+ virtual void bar(); // _ZN7ee510003barEv
+ ~ee51000(); // tgen
+ ee51000(); // tgen
+};
+//SIG(1 ee51000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee51000 ::bar(){vfunc_called(this, "_ZN7ee510003barEv");}
+ee51000 ::~ee51000(){ note_dtor("ee51000", this);} // tgen
+ee51000 ::ee51000(){ note_ctor("ee51000", this);} // tgen
+
+static void Test_ee51000()
+{
+ extern Class_Descriptor cd_ee51000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee51000, buf);
+ ee51000 *dp, &lv = *(dp=new (buf) ee51000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee51000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee51000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee51000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(28,16), "ee51000");
+ check_base_class_offset(lv, (dd1000*), ABISELECT(16,8), "ee51000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51000.e");
+ test_class_info(&lv, &cd_ee51000);
+ dp->~ee51000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51000(Test_ee51000, "ee51000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee51000C1Ev();
+extern void _ZN7ee51000D1Ev();
+Name_Map name_map_ee51000[] = {
+ NSPAIR(_ZN7ee51000C1Ev),
+ NSPAIR(_ZN7ee51000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee51000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51000[];
+extern void _ZN7ee510003barEv();
+static VTBL_ENTRY vtc_ee51000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51000[0]),
+ (VTBL_ENTRY)&_ZN7ee510003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee51000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee51000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee51000[] = {
+ {&(_ZTV7ee51000[4]), 4,8},
+ {&(_ZTV7ee51000[8]), 8,8},
+ {&(_tg__ZTV6dd1000__7ee51000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee51000[];
+extern VTBL_ENTRY _ZTV7ee51000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51000[];
+Class_Descriptor cd_ee51000 = { "ee51000", // class name
+ bases_ee51000, 4,
+ &(vtc_ee51000[0]), // expected_vtbl_contents
+ &(vtt_ee51000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee51000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51000),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61000 : dd1000 {
+ int e;
+ virtual void foo(); // _ZN7ee610003fooEv
+ virtual void bar(); // _ZN7ee610003barEv
+ ~ee61000(); // tgen
+ ee61000(); // tgen
+};
+//SIG(1 ee61000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61000 ::foo(){vfunc_called(this, "_ZN7ee610003fooEv");}
+void ee61000 ::bar(){vfunc_called(this, "_ZN7ee610003barEv");}
+ee61000 ::~ee61000(){ note_dtor("ee61000", this);} // tgen
+ee61000 ::ee61000(){ note_ctor("ee61000", this);} // tgen
+
+static void Test_ee61000()
+{
+ extern Class_Descriptor cd_ee61000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee61000, buf);
+ ee61000 *dp, &lv = *(dp=new (buf) ee61000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee61000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee61000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee61000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(16,12), "ee61000");
+ check_base_class_offset(lv, (dd1000*), 0, "ee61000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61000.e");
+ test_class_info(&lv, &cd_ee61000);
+ dp->~ee61000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61000(Test_ee61000, "ee61000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee61000C1Ev();
+extern void _ZN7ee61000D1Ev();
+Name_Map name_map_ee61000[] = {
+ NSPAIR(_ZN7ee61000C1Ev),
+ NSPAIR(_ZN7ee61000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee61000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61000[];
+extern void _ZN7ee610003fooEv();
+extern void _ZN7ee610003barEv();
+static VTBL_ENTRY vtc_ee61000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61000[0]),
+ (VTBL_ENTRY)&_ZN7ee610003fooEv,
+ (VTBL_ENTRY)&_ZN7ee610003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee61000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee61000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee61000[] = {
+ {&(_ZTV7ee61000[3]), 3,5},
+ {&(_tg__ZTV6dd1000__7ee61000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee61000[];
+extern VTBL_ENTRY _ZTV7ee61000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61000[];
+Class_Descriptor cd_ee61000 = { "ee61000", // class name
+ bases_ee61000, 4,
+ &(vtc_ee61000[0]), // expected_vtbl_contents
+ &(vtt_ee61000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee61000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71000 : virtual dd1000 {
+ int e;
+ virtual void foo(); // _ZN7ee710003fooEv
+ virtual void bar(); // _ZN7ee710003barEv
+ ~ee71000(); // tgen
+ ee71000(); // tgen
+};
+//SIG(1 ee71000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71000 ::foo(){vfunc_called(this, "_ZN7ee710003fooEv");}
+void ee71000 ::bar(){vfunc_called(this, "_ZN7ee710003barEv");}
+ee71000 ::~ee71000(){ note_dtor("ee71000", this);} // tgen
+ee71000 ::ee71000(){ note_ctor("ee71000", this);} // tgen
+
+static void Test_ee71000()
+{
+ extern Class_Descriptor cd_ee71000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee71000, buf);
+ ee71000 *dp, &lv = *(dp=new (buf) ee71000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee71000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee71000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee71000");
+ check_base_class_offset(lv, (cc000*)(dd1000*), ABISELECT(28,16), "ee71000");
+ check_base_class_offset(lv, (dd1000*), ABISELECT(16,8), "ee71000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71000.e");
+ test_class_info(&lv, &cd_ee71000);
+ dp->~ee71000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71000(Test_ee71000, "ee71000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee71000C1Ev();
+extern void _ZN7ee71000D1Ev();
+Name_Map name_map_ee71000[] = {
+ NSPAIR(_ZN7ee71000C1Ev),
+ NSPAIR(_ZN7ee71000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd1000;
+extern VTBL_ENTRY _ZTI6dd1000[];
+extern VTBL_ENTRY _ZTV6dd1000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1000[];
+static Base_Class bases_ee71000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1000, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71000[];
+extern void _ZN7ee710003fooEv();
+extern void _ZN7ee710003barEv();
+static VTBL_ENTRY vtc_ee71000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71000[0]),
+ (VTBL_ENTRY)&_ZN7ee710003fooEv,
+ (VTBL_ENTRY)&_ZN7ee710003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71000[0]),
+};
+extern VTBL_ENTRY _ZTV7ee71000[];
+static VTBL_ENTRY _tg__ZTV6dd1000__7ee71000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1000[0]),
+};
+static VTT_ENTRY vtt_ee71000[] = {
+ {&(_ZTV7ee71000[4]), 4,9},
+ {&(_ZTV7ee71000[9]), 9,9},
+ {&(_tg__ZTV6dd1000__7ee71000[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee71000[];
+extern VTBL_ENTRY _ZTV7ee71000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71000[];
+Class_Descriptor cd_ee71000 = { "ee71000", // class name
+ bases_ee71000, 4,
+ &(vtc_ee71000[0]), // expected_vtbl_contents
+ &(vtt_ee71000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee71000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71000),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2000 : cc000 {
+ int d;
+ virtual void foo(); // _ZN6dd20003fooEv
+ ~dd2000(); // tgen
+ dd2000(); // tgen
+};
+//SIG(-1 dd2000) C1{ BC2{ BC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd2000 ::foo(){vfunc_called(this, "_ZN6dd20003fooEv");}
+dd2000 ::~dd2000(){ note_dtor("dd2000", this);} // tgen
+dd2000 ::dd2000(){ note_ctor("dd2000", this);} // tgen
+
+static void Test_dd2000()
+{
+ extern Class_Descriptor cd_dd2000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2000, buf);
+ dd2000 *dp, &lv = *(dp=new (buf) dd2000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(8,4), "dd2000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(8,4), "dd2000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(8,4), "dd2000");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2000.d");
+ test_class_info(&lv, &cd_dd2000);
+ dp->~dd2000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2000(Test_dd2000, "dd2000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2000C1Ev();
+extern void _ZN6dd2000D1Ev();
+Name_Map name_map_dd2000[] = {
+ NSPAIR(_ZN6dd2000C1Ev),
+ NSPAIR(_ZN6dd2000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd2000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern void _ZN6dd20003fooEv();
+static VTBL_ENTRY vtc_dd2000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+Class_Descriptor cd_dd2000 = { "dd2000", // class name
+ bases_dd2000, 3,
+ &(vtc_dd2000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd2000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02000 : dd2000 {
+ int e;
+ ~ee02000(); // tgen
+ ee02000(); // tgen
+};
+//SIG(1 ee02000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee02000 ::~ee02000(){ note_dtor("ee02000", this);} // tgen
+ee02000 ::ee02000(){ note_ctor("ee02000", this);} // tgen
+
+static void Test_ee02000()
+{
+ extern Class_Descriptor cd_ee02000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02000, buf);
+ ee02000 *dp, &lv = *(dp=new (buf) ee02000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee02000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee02000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(8,4), "ee02000");
+ check_base_class_offset(lv, (dd2000*), 0, "ee02000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02000.e");
+ test_class_info(&lv, &cd_ee02000);
+ dp->~ee02000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02000(Test_ee02000, "ee02000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02000C1Ev();
+extern void _ZN7ee02000D1Ev();
+Name_Map name_map_ee02000[] = {
+ NSPAIR(_ZN7ee02000C1Ev),
+ NSPAIR(_ZN7ee02000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee02000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02000[];
+extern void _ZN6dd20003fooEv();
+static VTBL_ENTRY vtc_ee02000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02000[];
+extern VTBL_ENTRY _ZTV7ee02000[];
+Class_Descriptor cd_ee02000 = { "ee02000", // class name
+ bases_ee02000, 4,
+ &(vtc_ee02000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12000 : virtual dd2000 {
+ int e;
+ ~ee12000(); // tgen
+ ee12000(); // tgen
+};
+//SIG(1 ee12000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee12000 ::~ee12000(){ note_dtor("ee12000", this);} // tgen
+ee12000 ::ee12000(){ note_ctor("ee12000", this);} // tgen
+
+static void Test_ee12000()
+{
+ extern Class_Descriptor cd_ee12000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12000, buf);
+ ee12000 *dp, &lv = *(dp=new (buf) ee12000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee12000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee12000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(24,12), "ee12000");
+ check_base_class_offset(lv, (dd2000*), ABISELECT(16,8), "ee12000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12000.e");
+ test_class_info(&lv, &cd_ee12000);
+ dp->~ee12000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12000(Test_ee12000, "ee12000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12000C1Ev();
+extern void _ZN7ee12000D1Ev();
+Name_Map name_map_ee12000[] = {
+ NSPAIR(_ZN7ee12000C1Ev),
+ NSPAIR(_ZN7ee12000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee12000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12000[];
+extern void _ZN6dd20003fooEv();
+static VTBL_ENTRY vtc_ee12000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12000[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12000[];
+static VTT_ENTRY vtt_ee12000[] = {
+ {&(_ZTV7ee12000[3]), 3,7},
+ {&(_ZTV7ee12000[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12000[];
+extern VTBL_ENTRY _ZTV7ee12000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12000[];
+Class_Descriptor cd_ee12000 = { "ee12000", // class name
+ bases_ee12000, 4,
+ &(vtc_ee12000[0]), // expected_vtbl_contents
+ &(vtt_ee12000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12000),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22000 : dd2000 {
+ int e;
+ virtual void foo(); // _ZN7ee220003fooEv
+ ~ee22000(); // tgen
+ ee22000(); // tgen
+};
+//SIG(1 ee22000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22000 ::foo(){vfunc_called(this, "_ZN7ee220003fooEv");}
+ee22000 ::~ee22000(){ note_dtor("ee22000", this);} // tgen
+ee22000 ::ee22000(){ note_ctor("ee22000", this);} // tgen
+
+static void Test_ee22000()
+{
+ extern Class_Descriptor cd_ee22000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22000, buf);
+ ee22000 *dp, &lv = *(dp=new (buf) ee22000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee22000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee22000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(8,4), "ee22000");
+ check_base_class_offset(lv, (dd2000*), 0, "ee22000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22000.e");
+ test_class_info(&lv, &cd_ee22000);
+ dp->~ee22000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22000(Test_ee22000, "ee22000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22000C1Ev();
+extern void _ZN7ee22000D1Ev();
+Name_Map name_map_ee22000[] = {
+ NSPAIR(_ZN7ee22000C1Ev),
+ NSPAIR(_ZN7ee22000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee22000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22000[];
+extern void _ZN7ee220003fooEv();
+static VTBL_ENTRY vtc_ee22000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22000[0]),
+ (VTBL_ENTRY)&_ZN7ee220003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22000[];
+extern VTBL_ENTRY _ZTV7ee22000[];
+Class_Descriptor cd_ee22000 = { "ee22000", // class name
+ bases_ee22000, 4,
+ &(vtc_ee22000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32000 : virtual dd2000 {
+ int e;
+ virtual void foo(); // _ZN7ee320003fooEv
+ ~ee32000(); // tgen
+ ee32000(); // tgen
+};
+//SIG(1 ee32000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32000 ::foo(){vfunc_called(this, "_ZN7ee320003fooEv");}
+ee32000 ::~ee32000(){ note_dtor("ee32000", this);} // tgen
+ee32000 ::ee32000(){ note_ctor("ee32000", this);} // tgen
+
+static void Test_ee32000()
+{
+ extern Class_Descriptor cd_ee32000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32000, buf);
+ ee32000 *dp, &lv = *(dp=new (buf) ee32000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee32000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee32000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(24,12), "ee32000");
+ check_base_class_offset(lv, (dd2000*), ABISELECT(16,8), "ee32000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32000.e");
+ test_class_info(&lv, &cd_ee32000);
+ dp->~ee32000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32000(Test_ee32000, "ee32000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32000C1Ev();
+extern void _ZN7ee32000D1Ev();
+Name_Map name_map_ee32000[] = {
+ NSPAIR(_ZN7ee32000C1Ev),
+ NSPAIR(_ZN7ee32000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee32000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32000[];
+extern void _ZN7ee320003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320003fooEv,_ZTv0_n12_N7ee320003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320003fooEv,_ZThn8_N7ee320003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32000[0]),
+ (VTBL_ENTRY)&_ZN7ee320003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320003fooEv,_ZTv0_n12_N7ee320003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32000[];
+static VTT_ENTRY vtt_ee32000[] = {
+ {&(_ZTV7ee32000[3]), 3,8},
+ {&(_ZTV7ee32000[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32000[];
+extern VTBL_ENTRY _ZTV7ee32000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32000[];
+static VTBL_ENTRY alt_thunk_names1[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320003fooEv,_ZTv0_n12_N7ee320003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320003fooEv,_ZThn8_N7ee320003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32000 = { "ee32000", // class name
+ bases_ee32000, 4,
+ &(vtc_ee32000[0]), // expected_vtbl_contents
+ &(vtt_ee32000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32000),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42000 : dd2000 {
+ int e;
+ virtual void bar(); // _ZN7ee420003barEv
+ ~ee42000(); // tgen
+ ee42000(); // tgen
+};
+//SIG(1 ee42000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42000 ::bar(){vfunc_called(this, "_ZN7ee420003barEv");}
+ee42000 ::~ee42000(){ note_dtor("ee42000", this);} // tgen
+ee42000 ::ee42000(){ note_ctor("ee42000", this);} // tgen
+
+static void Test_ee42000()
+{
+ extern Class_Descriptor cd_ee42000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42000, buf);
+ ee42000 *dp, &lv = *(dp=new (buf) ee42000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee42000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee42000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(8,4), "ee42000");
+ check_base_class_offset(lv, (dd2000*), 0, "ee42000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42000.e");
+ test_class_info(&lv, &cd_ee42000);
+ dp->~ee42000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42000(Test_ee42000, "ee42000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42000C1Ev();
+extern void _ZN7ee42000D1Ev();
+Name_Map name_map_ee42000[] = {
+ NSPAIR(_ZN7ee42000C1Ev),
+ NSPAIR(_ZN7ee42000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee42000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42000[];
+extern void _ZN6dd20003fooEv();
+extern void _ZN7ee420003barEv();
+static VTBL_ENTRY vtc_ee42000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+ (VTBL_ENTRY)&_ZN7ee420003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42000[];
+extern VTBL_ENTRY _ZTV7ee42000[];
+Class_Descriptor cd_ee42000 = { "ee42000", // class name
+ bases_ee42000, 4,
+ &(vtc_ee42000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52000 : virtual dd2000 {
+ int e;
+ virtual void bar(); // _ZN7ee520003barEv
+ ~ee52000(); // tgen
+ ee52000(); // tgen
+};
+//SIG(1 ee52000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52000 ::bar(){vfunc_called(this, "_ZN7ee520003barEv");}
+ee52000 ::~ee52000(){ note_dtor("ee52000", this);} // tgen
+ee52000 ::ee52000(){ note_ctor("ee52000", this);} // tgen
+
+static void Test_ee52000()
+{
+ extern Class_Descriptor cd_ee52000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52000, buf);
+ ee52000 *dp, &lv = *(dp=new (buf) ee52000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee52000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee52000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(24,12), "ee52000");
+ check_base_class_offset(lv, (dd2000*), ABISELECT(16,8), "ee52000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52000.e");
+ test_class_info(&lv, &cd_ee52000);
+ dp->~ee52000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52000(Test_ee52000, "ee52000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52000C1Ev();
+extern void _ZN7ee52000D1Ev();
+Name_Map name_map_ee52000[] = {
+ NSPAIR(_ZN7ee52000C1Ev),
+ NSPAIR(_ZN7ee52000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee52000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52000[];
+extern void _ZN7ee520003barEv();
+extern void _ZN6dd20003fooEv();
+static VTBL_ENTRY vtc_ee52000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52000[0]),
+ (VTBL_ENTRY)&_ZN7ee520003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52000[0]),
+ (VTBL_ENTRY)&_ZN6dd20003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52000[];
+static VTT_ENTRY vtt_ee52000[] = {
+ {&(_ZTV7ee52000[3]), 3,8},
+ {&(_ZTV7ee52000[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52000[];
+extern VTBL_ENTRY _ZTV7ee52000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52000[];
+Class_Descriptor cd_ee52000 = { "ee52000", // class name
+ bases_ee52000, 4,
+ &(vtc_ee52000[0]), // expected_vtbl_contents
+ &(vtt_ee52000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52000),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62000 : dd2000 {
+ int e;
+ virtual void foo(); // _ZN7ee620003fooEv
+ virtual void bar(); // _ZN7ee620003barEv
+ ~ee62000(); // tgen
+ ee62000(); // tgen
+};
+//SIG(1 ee62000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62000 ::foo(){vfunc_called(this, "_ZN7ee620003fooEv");}
+void ee62000 ::bar(){vfunc_called(this, "_ZN7ee620003barEv");}
+ee62000 ::~ee62000(){ note_dtor("ee62000", this);} // tgen
+ee62000 ::ee62000(){ note_ctor("ee62000", this);} // tgen
+
+static void Test_ee62000()
+{
+ extern Class_Descriptor cd_ee62000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62000, buf);
+ ee62000 *dp, &lv = *(dp=new (buf) ee62000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee62000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(8,4), "ee62000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(8,4), "ee62000");
+ check_base_class_offset(lv, (dd2000*), 0, "ee62000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62000.e");
+ test_class_info(&lv, &cd_ee62000);
+ dp->~ee62000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62000(Test_ee62000, "ee62000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62000C1Ev();
+extern void _ZN7ee62000D1Ev();
+Name_Map name_map_ee62000[] = {
+ NSPAIR(_ZN7ee62000C1Ev),
+ NSPAIR(_ZN7ee62000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee62000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62000[];
+extern void _ZN7ee620003fooEv();
+extern void _ZN7ee620003barEv();
+static VTBL_ENTRY vtc_ee62000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62000[0]),
+ (VTBL_ENTRY)&_ZN7ee620003fooEv,
+ (VTBL_ENTRY)&_ZN7ee620003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62000[];
+extern VTBL_ENTRY _ZTV7ee62000[];
+Class_Descriptor cd_ee62000 = { "ee62000", // class name
+ bases_ee62000, 4,
+ &(vtc_ee62000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72000 : virtual dd2000 {
+ int e;
+ virtual void foo(); // _ZN7ee720003fooEv
+ virtual void bar(); // _ZN7ee720003barEv
+ ~ee72000(); // tgen
+ ee72000(); // tgen
+};
+//SIG(1 ee72000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72000 ::foo(){vfunc_called(this, "_ZN7ee720003fooEv");}
+void ee72000 ::bar(){vfunc_called(this, "_ZN7ee720003barEv");}
+ee72000 ::~ee72000(){ note_dtor("ee72000", this);} // tgen
+ee72000 ::ee72000(){ note_ctor("ee72000", this);} // tgen
+
+static void Test_ee72000()
+{
+ extern Class_Descriptor cd_ee72000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72000, buf);
+ ee72000 *dp, &lv = *(dp=new (buf) ee72000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee72000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd2000*), ABISELECT(24,12), "ee72000");
+ check_base_class_offset(lv, (cc000*)(dd2000*), ABISELECT(24,12), "ee72000");
+ check_base_class_offset(lv, (dd2000*), ABISELECT(16,8), "ee72000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72000.e");
+ test_class_info(&lv, &cd_ee72000);
+ dp->~ee72000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72000(Test_ee72000, "ee72000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72000C1Ev();
+extern void _ZN7ee72000D1Ev();
+Name_Map name_map_ee72000[] = {
+ NSPAIR(_ZN7ee72000C1Ev),
+ NSPAIR(_ZN7ee72000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd2000;
+extern VTBL_ENTRY _ZTI6dd2000[];
+extern VTBL_ENTRY _ZTV6dd2000[];
+static Base_Class bases_ee72000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72000[];
+extern void _ZN7ee720003fooEv();
+extern void _ZN7ee720003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720003fooEv,_ZTv0_n12_N7ee720003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720003fooEv,_ZThn8_N7ee720003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72000[0]),
+ (VTBL_ENTRY)&_ZN7ee720003fooEv,
+ (VTBL_ENTRY)&_ZN7ee720003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720003fooEv,_ZTv0_n12_N7ee720003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72000[];
+static VTT_ENTRY vtt_ee72000[] = {
+ {&(_ZTV7ee72000[3]), 3,9},
+ {&(_ZTV7ee72000[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72000[];
+extern VTBL_ENTRY _ZTV7ee72000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72000[];
+static VTBL_ENTRY alt_thunk_names2[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720003fooEv,_ZTv0_n12_N7ee720003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720003fooEv,_ZThn8_N7ee720003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72000 = { "ee72000", // class name
+ bases_ee72000, 4,
+ &(vtc_ee72000[0]), // expected_vtbl_contents
+ &(vtt_ee72000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72000),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names2,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3000 : virtual cc000 {
+ int d;
+ virtual void foo(); // _ZN6dd30003fooEv
+ ~dd3000(); // tgen
+ dd3000(); // tgen
+};
+//SIG(-1 dd3000) C1{ VBC2{ BC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd3000 ::foo(){vfunc_called(this, "_ZN6dd30003fooEv");}
+dd3000 ::~dd3000(){ note_dtor("dd3000", this);} // tgen
+dd3000 ::dd3000(){ note_ctor("dd3000", this);} // tgen
+
+static void Test_dd3000()
+{
+ extern Class_Descriptor cd_dd3000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd3000, buf);
+ dd3000 *dp, &lv = *(dp=new (buf) dd3000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd3000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(12,8), "dd3000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(12,8), "dd3000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(12,8), "dd3000");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3000.d");
+ test_class_info(&lv, &cd_dd3000);
+ dp->~dd3000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3000(Test_dd3000, "dd3000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd3000C1Ev();
+extern void _ZN6dd3000D1Ev();
+Name_Map name_map_dd3000[] = {
+ NSPAIR(_ZN6dd3000C1Ev),
+ NSPAIR(_ZN6dd3000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd3000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY vtc_dd3000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd3000[];
+static VTT_ENTRY vtt_dd3000[] = {
+ {&(_ZTV6dd3000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+Class_Descriptor cd_dd3000 = { "dd3000", // class name
+ bases_dd3000, 3,
+ &(vtc_dd3000[0]), // expected_vtbl_contents
+ &(vtt_dd3000[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd3000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3000),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03000 : dd3000 {
+ int e;
+ ~ee03000(); // tgen
+ ee03000(); // tgen
+};
+//SIG(1 ee03000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee03000 ::~ee03000(){ note_dtor("ee03000", this);} // tgen
+ee03000 ::ee03000(){ note_ctor("ee03000", this);} // tgen
+
+static void Test_ee03000()
+{
+ extern Class_Descriptor cd_ee03000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee03000, buf);
+ ee03000 *dp, &lv = *(dp=new (buf) ee03000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee03000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee03000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee03000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(16,12), "ee03000");
+ check_base_class_offset(lv, (dd3000*), 0, "ee03000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03000.e");
+ test_class_info(&lv, &cd_ee03000);
+ dp->~ee03000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03000(Test_ee03000, "ee03000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee03000C1Ev();
+extern void _ZN7ee03000D1Ev();
+Name_Map name_map_ee03000[] = {
+ NSPAIR(_ZN7ee03000C1Ev),
+ NSPAIR(_ZN7ee03000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee03000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY vtc_ee03000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee03000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee03000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee03000[] = {
+ {&(_ZTV7ee03000[3]), 3,4},
+ {&(_tg__ZTV6dd3000__7ee03000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03000[];
+extern VTBL_ENTRY _ZTV7ee03000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03000[];
+Class_Descriptor cd_ee03000 = { "ee03000", // class name
+ bases_ee03000, 4,
+ &(vtc_ee03000[0]), // expected_vtbl_contents
+ &(vtt_ee03000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee03000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13000 : virtual dd3000 {
+ int e;
+ ~ee13000(); // tgen
+ ee13000(); // tgen
+};
+//SIG(1 ee13000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee13000 ::~ee13000(){ note_dtor("ee13000", this);} // tgen
+ee13000 ::ee13000(){ note_ctor("ee13000", this);} // tgen
+
+static void Test_ee13000()
+{
+ extern Class_Descriptor cd_ee13000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee13000, buf);
+ ee13000 *dp, &lv = *(dp=new (buf) ee13000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee13000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee13000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee13000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(28,16), "ee13000");
+ check_base_class_offset(lv, (dd3000*), ABISELECT(16,8), "ee13000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13000.e");
+ test_class_info(&lv, &cd_ee13000);
+ dp->~ee13000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13000(Test_ee13000, "ee13000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee13000C1Ev();
+extern void _ZN7ee13000D1Ev();
+Name_Map name_map_ee13000[] = {
+ NSPAIR(_ZN7ee13000C1Ev),
+ NSPAIR(_ZN7ee13000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee13000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY vtc_ee13000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13000[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee13000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee13000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee13000[] = {
+ {&(_ZTV7ee13000[4]), 4,9},
+ {&(_ZTV7ee13000[8]), 8,9},
+ {&(_tg__ZTV6dd3000__7ee13000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13000[];
+extern VTBL_ENTRY _ZTV7ee13000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13000[];
+Class_Descriptor cd_ee13000 = { "ee13000", // class name
+ bases_ee13000, 4,
+ &(vtc_ee13000[0]), // expected_vtbl_contents
+ &(vtt_ee13000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee13000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13000),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23000 : dd3000 {
+ int e;
+ virtual void foo(); // _ZN7ee230003fooEv
+ ~ee23000(); // tgen
+ ee23000(); // tgen
+};
+//SIG(1 ee23000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23000 ::foo(){vfunc_called(this, "_ZN7ee230003fooEv");}
+ee23000 ::~ee23000(){ note_dtor("ee23000", this);} // tgen
+ee23000 ::ee23000(){ note_ctor("ee23000", this);} // tgen
+
+static void Test_ee23000()
+{
+ extern Class_Descriptor cd_ee23000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee23000, buf);
+ ee23000 *dp, &lv = *(dp=new (buf) ee23000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee23000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee23000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee23000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(16,12), "ee23000");
+ check_base_class_offset(lv, (dd3000*), 0, "ee23000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23000.e");
+ test_class_info(&lv, &cd_ee23000);
+ dp->~ee23000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23000(Test_ee23000, "ee23000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee23000C1Ev();
+extern void _ZN7ee23000D1Ev();
+Name_Map name_map_ee23000[] = {
+ NSPAIR(_ZN7ee23000C1Ev),
+ NSPAIR(_ZN7ee23000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee23000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23000[];
+extern void _ZN7ee230003fooEv();
+static VTBL_ENTRY vtc_ee23000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23000[0]),
+ (VTBL_ENTRY)&_ZN7ee230003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee23000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee23000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee23000[] = {
+ {&(_ZTV7ee23000[3]), 3,4},
+ {&(_tg__ZTV6dd3000__7ee23000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23000[];
+extern VTBL_ENTRY _ZTV7ee23000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23000[];
+Class_Descriptor cd_ee23000 = { "ee23000", // class name
+ bases_ee23000, 4,
+ &(vtc_ee23000[0]), // expected_vtbl_contents
+ &(vtt_ee23000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee23000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33000 : virtual dd3000 {
+ int e;
+ virtual void foo(); // _ZN7ee330003fooEv
+ ~ee33000(); // tgen
+ ee33000(); // tgen
+};
+//SIG(1 ee33000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33000 ::foo(){vfunc_called(this, "_ZN7ee330003fooEv");}
+ee33000 ::~ee33000(){ note_dtor("ee33000", this);} // tgen
+ee33000 ::ee33000(){ note_ctor("ee33000", this);} // tgen
+
+static void Test_ee33000()
+{
+ extern Class_Descriptor cd_ee33000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee33000, buf);
+ ee33000 *dp, &lv = *(dp=new (buf) ee33000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee33000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee33000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee33000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(28,16), "ee33000");
+ check_base_class_offset(lv, (dd3000*), ABISELECT(16,8), "ee33000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33000.e");
+ test_class_info(&lv, &cd_ee33000);
+ dp->~ee33000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33000(Test_ee33000, "ee33000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee33000C1Ev();
+extern void _ZN7ee33000D1Ev();
+Name_Map name_map_ee33000[] = {
+ NSPAIR(_ZN7ee33000C1Ev),
+ NSPAIR(_ZN7ee33000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee33000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33000[];
+extern void _ZN7ee330003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330003fooEv,_ZTv0_n16_N7ee330003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330003fooEv,_ZThn8_N7ee330003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33000[0]),
+ (VTBL_ENTRY)&_ZN7ee330003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330003fooEv,_ZTv0_n16_N7ee330003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee33000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee33000[] = {
+ {&(_ZTV7ee33000[4]), 4,10},
+ {&(_ZTV7ee33000[9]), 9,10},
+ {&(_tg__ZTV6dd3000__7ee33000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33000[];
+extern VTBL_ENTRY _ZTV7ee33000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33000[];
+static VTBL_ENTRY alt_thunk_names3[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330003fooEv,_ZTv0_n16_N7ee330003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330003fooEv,_ZThn8_N7ee330003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33000 = { "ee33000", // class name
+ bases_ee33000, 4,
+ &(vtc_ee33000[0]), // expected_vtbl_contents
+ &(vtt_ee33000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee33000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33000),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names3,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43000 : dd3000 {
+ int e;
+ virtual void bar(); // _ZN7ee430003barEv
+ ~ee43000(); // tgen
+ ee43000(); // tgen
+};
+//SIG(1 ee43000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43000 ::bar(){vfunc_called(this, "_ZN7ee430003barEv");}
+ee43000 ::~ee43000(){ note_dtor("ee43000", this);} // tgen
+ee43000 ::ee43000(){ note_ctor("ee43000", this);} // tgen
+
+static void Test_ee43000()
+{
+ extern Class_Descriptor cd_ee43000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee43000, buf);
+ ee43000 *dp, &lv = *(dp=new (buf) ee43000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee43000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee43000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee43000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(16,12), "ee43000");
+ check_base_class_offset(lv, (dd3000*), 0, "ee43000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43000.e");
+ test_class_info(&lv, &cd_ee43000);
+ dp->~ee43000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43000(Test_ee43000, "ee43000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee43000C1Ev();
+extern void _ZN7ee43000D1Ev();
+Name_Map name_map_ee43000[] = {
+ NSPAIR(_ZN7ee43000C1Ev),
+ NSPAIR(_ZN7ee43000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee43000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43000[];
+extern void _ZN6dd30003fooEv();
+extern void _ZN7ee430003barEv();
+static VTBL_ENTRY vtc_ee43000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+ (VTBL_ENTRY)&_ZN7ee430003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee43000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee43000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee43000[] = {
+ {&(_ZTV7ee43000[3]), 3,5},
+ {&(_tg__ZTV6dd3000__7ee43000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43000[];
+extern VTBL_ENTRY _ZTV7ee43000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43000[];
+Class_Descriptor cd_ee43000 = { "ee43000", // class name
+ bases_ee43000, 4,
+ &(vtc_ee43000[0]), // expected_vtbl_contents
+ &(vtt_ee43000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee43000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53000 : virtual dd3000 {
+ int e;
+ virtual void bar(); // _ZN7ee530003barEv
+ ~ee53000(); // tgen
+ ee53000(); // tgen
+};
+//SIG(1 ee53000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53000 ::bar(){vfunc_called(this, "_ZN7ee530003barEv");}
+ee53000 ::~ee53000(){ note_dtor("ee53000", this);} // tgen
+ee53000 ::ee53000(){ note_ctor("ee53000", this);} // tgen
+
+static void Test_ee53000()
+{
+ extern Class_Descriptor cd_ee53000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee53000, buf);
+ ee53000 *dp, &lv = *(dp=new (buf) ee53000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee53000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee53000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee53000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(28,16), "ee53000");
+ check_base_class_offset(lv, (dd3000*), ABISELECT(16,8), "ee53000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53000.e");
+ test_class_info(&lv, &cd_ee53000);
+ dp->~ee53000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53000(Test_ee53000, "ee53000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee53000C1Ev();
+extern void _ZN7ee53000D1Ev();
+Name_Map name_map_ee53000[] = {
+ NSPAIR(_ZN7ee53000C1Ev),
+ NSPAIR(_ZN7ee53000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee53000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53000[];
+extern void _ZN7ee530003barEv();
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY vtc_ee53000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53000[0]),
+ (VTBL_ENTRY)&_ZN7ee530003barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee53000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee53000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee53000[] = {
+ {&(_ZTV7ee53000[4]), 4,10},
+ {&(_ZTV7ee53000[9]), 9,10},
+ {&(_tg__ZTV6dd3000__7ee53000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53000[];
+extern VTBL_ENTRY _ZTV7ee53000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53000[];
+Class_Descriptor cd_ee53000 = { "ee53000", // class name
+ bases_ee53000, 4,
+ &(vtc_ee53000[0]), // expected_vtbl_contents
+ &(vtt_ee53000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee53000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53000),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63000 : dd3000 {
+ int e;
+ virtual void foo(); // _ZN7ee630003fooEv
+ virtual void bar(); // _ZN7ee630003barEv
+ ~ee63000(); // tgen
+ ee63000(); // tgen
+};
+//SIG(1 ee63000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63000 ::foo(){vfunc_called(this, "_ZN7ee630003fooEv");}
+void ee63000 ::bar(){vfunc_called(this, "_ZN7ee630003barEv");}
+ee63000 ::~ee63000(){ note_dtor("ee63000", this);} // tgen
+ee63000 ::ee63000(){ note_ctor("ee63000", this);} // tgen
+
+static void Test_ee63000()
+{
+ extern Class_Descriptor cd_ee63000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee63000, buf);
+ ee63000 *dp, &lv = *(dp=new (buf) ee63000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee63000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee63000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee63000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(16,12), "ee63000");
+ check_base_class_offset(lv, (dd3000*), 0, "ee63000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63000.e");
+ test_class_info(&lv, &cd_ee63000);
+ dp->~ee63000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63000(Test_ee63000, "ee63000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee63000C1Ev();
+extern void _ZN7ee63000D1Ev();
+Name_Map name_map_ee63000[] = {
+ NSPAIR(_ZN7ee63000C1Ev),
+ NSPAIR(_ZN7ee63000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee63000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63000[];
+extern void _ZN7ee630003fooEv();
+extern void _ZN7ee630003barEv();
+static VTBL_ENTRY vtc_ee63000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63000[0]),
+ (VTBL_ENTRY)&_ZN7ee630003fooEv,
+ (VTBL_ENTRY)&_ZN7ee630003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee63000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee63000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee63000[] = {
+ {&(_ZTV7ee63000[3]), 3,5},
+ {&(_tg__ZTV6dd3000__7ee63000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63000[];
+extern VTBL_ENTRY _ZTV7ee63000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63000[];
+Class_Descriptor cd_ee63000 = { "ee63000", // class name
+ bases_ee63000, 4,
+ &(vtc_ee63000[0]), // expected_vtbl_contents
+ &(vtt_ee63000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee63000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73000 : virtual dd3000 {
+ int e;
+ virtual void foo(); // _ZN7ee730003fooEv
+ virtual void bar(); // _ZN7ee730003barEv
+ ~ee73000(); // tgen
+ ee73000(); // tgen
+};
+//SIG(1 ee73000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73000 ::foo(){vfunc_called(this, "_ZN7ee730003fooEv");}
+void ee73000 ::bar(){vfunc_called(this, "_ZN7ee730003barEv");}
+ee73000 ::~ee73000(){ note_dtor("ee73000", this);} // tgen
+ee73000 ::ee73000(){ note_ctor("ee73000", this);} // tgen
+
+static void Test_ee73000()
+{
+ extern Class_Descriptor cd_ee73000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee73000, buf);
+ ee73000 *dp, &lv = *(dp=new (buf) ee73000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee73000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee73000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee73000");
+ check_base_class_offset(lv, (cc000*)(dd3000*), ABISELECT(28,16), "ee73000");
+ check_base_class_offset(lv, (dd3000*), ABISELECT(16,8), "ee73000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73000.e");
+ test_class_info(&lv, &cd_ee73000);
+ dp->~ee73000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73000(Test_ee73000, "ee73000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee73000C1Ev();
+extern void _ZN7ee73000D1Ev();
+Name_Map name_map_ee73000[] = {
+ NSPAIR(_ZN7ee73000C1Ev),
+ NSPAIR(_ZN7ee73000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd3000;
+extern VTBL_ENTRY _ZTI6dd3000[];
+extern VTBL_ENTRY _ZTV6dd3000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3000[];
+static Base_Class bases_ee73000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3000, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73000[];
+extern void _ZN7ee730003fooEv();
+extern void _ZN7ee730003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730003fooEv,_ZTv0_n16_N7ee730003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730003fooEv,_ZThn8_N7ee730003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73000[0]),
+ (VTBL_ENTRY)&_ZN7ee730003fooEv,
+ (VTBL_ENTRY)&_ZN7ee730003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730003fooEv,_ZTv0_n16_N7ee730003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73000[];
+extern void _ZN6dd30003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3000__7ee73000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3000[0]),
+ (VTBL_ENTRY)&_ZN6dd30003fooEv,
+};
+static VTT_ENTRY vtt_ee73000[] = {
+ {&(_ZTV7ee73000[4]), 4,11},
+ {&(_ZTV7ee73000[10]), 10,11},
+ {&(_tg__ZTV6dd3000__7ee73000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73000[];
+extern VTBL_ENTRY _ZTV7ee73000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73000[];
+static VTBL_ENTRY alt_thunk_names4[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730003fooEv,_ZTv0_n16_N7ee730003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730003fooEv,_ZThn8_N7ee730003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73000 = { "ee73000", // class name
+ bases_ee73000, 4,
+ &(vtc_ee73000[0]), // expected_vtbl_contents
+ &(vtt_ee73000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee73000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73000),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names4,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4000 : cc000 {
+ int d;
+ virtual void bar(); // _ZN6dd40003barEv
+ ~dd4000(); // tgen
+ dd4000(); // tgen
+};
+//SIG(-1 dd4000) C1{ BC2{ BC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd4000 ::bar(){vfunc_called(this, "_ZN6dd40003barEv");}
+dd4000 ::~dd4000(){ note_dtor("dd4000", this);} // tgen
+dd4000 ::dd4000(){ note_ctor("dd4000", this);} // tgen
+
+static void Test_dd4000()
+{
+ extern Class_Descriptor cd_dd4000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4000, buf);
+ dd4000 *dp, &lv = *(dp=new (buf) dd4000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(8,4), "dd4000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(8,4), "dd4000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(8,4), "dd4000");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4000.d");
+ test_class_info(&lv, &cd_dd4000);
+ dp->~dd4000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4000(Test_dd4000, "dd4000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4000C1Ev();
+extern void _ZN6dd4000D1Ev();
+Name_Map name_map_dd4000[] = {
+ NSPAIR(_ZN6dd4000C1Ev),
+ NSPAIR(_ZN6dd4000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd4000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern void _ZN6dd40003barEv();
+static VTBL_ENTRY vtc_dd4000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+Class_Descriptor cd_dd4000 = { "dd4000", // class name
+ bases_dd4000, 3,
+ &(vtc_dd4000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd4000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04000 : dd4000 {
+ int e;
+ ~ee04000(); // tgen
+ ee04000(); // tgen
+};
+//SIG(1 ee04000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee04000 ::~ee04000(){ note_dtor("ee04000", this);} // tgen
+ee04000 ::ee04000(){ note_ctor("ee04000", this);} // tgen
+
+static void Test_ee04000()
+{
+ extern Class_Descriptor cd_ee04000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04000, buf);
+ ee04000 *dp, &lv = *(dp=new (buf) ee04000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee04000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee04000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(8,4), "ee04000");
+ check_base_class_offset(lv, (dd4000*), 0, "ee04000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04000.e");
+ test_class_info(&lv, &cd_ee04000);
+ dp->~ee04000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04000(Test_ee04000, "ee04000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04000C1Ev();
+extern void _ZN7ee04000D1Ev();
+Name_Map name_map_ee04000[] = {
+ NSPAIR(_ZN7ee04000C1Ev),
+ NSPAIR(_ZN7ee04000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee04000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04000[];
+extern void _ZN6dd40003barEv();
+static VTBL_ENTRY vtc_ee04000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04000[];
+extern VTBL_ENTRY _ZTV7ee04000[];
+Class_Descriptor cd_ee04000 = { "ee04000", // class name
+ bases_ee04000, 4,
+ &(vtc_ee04000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14000 : virtual dd4000 {
+ int e;
+ ~ee14000(); // tgen
+ ee14000(); // tgen
+};
+//SIG(1 ee14000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee14000 ::~ee14000(){ note_dtor("ee14000", this);} // tgen
+ee14000 ::ee14000(){ note_ctor("ee14000", this);} // tgen
+
+static void Test_ee14000()
+{
+ extern Class_Descriptor cd_ee14000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14000, buf);
+ ee14000 *dp, &lv = *(dp=new (buf) ee14000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee14000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee14000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(24,12), "ee14000");
+ check_base_class_offset(lv, (dd4000*), ABISELECT(16,8), "ee14000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14000.e");
+ test_class_info(&lv, &cd_ee14000);
+ dp->~ee14000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14000(Test_ee14000, "ee14000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14000C1Ev();
+extern void _ZN7ee14000D1Ev();
+Name_Map name_map_ee14000[] = {
+ NSPAIR(_ZN7ee14000C1Ev),
+ NSPAIR(_ZN7ee14000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee14000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14000[];
+extern void _ZN6dd40003barEv();
+static VTBL_ENTRY vtc_ee14000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14000[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14000[];
+static VTT_ENTRY vtt_ee14000[] = {
+ {&(_ZTV7ee14000[3]), 3,7},
+ {&(_ZTV7ee14000[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee14000[];
+extern VTBL_ENTRY _ZTV7ee14000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14000[];
+Class_Descriptor cd_ee14000 = { "ee14000", // class name
+ bases_ee14000, 4,
+ &(vtc_ee14000[0]), // expected_vtbl_contents
+ &(vtt_ee14000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14000),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24000 : dd4000 {
+ int e;
+ virtual void foo(); // _ZN7ee240003fooEv
+ ~ee24000(); // tgen
+ ee24000(); // tgen
+};
+//SIG(1 ee24000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24000 ::foo(){vfunc_called(this, "_ZN7ee240003fooEv");}
+ee24000 ::~ee24000(){ note_dtor("ee24000", this);} // tgen
+ee24000 ::ee24000(){ note_ctor("ee24000", this);} // tgen
+
+static void Test_ee24000()
+{
+ extern Class_Descriptor cd_ee24000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24000, buf);
+ ee24000 *dp, &lv = *(dp=new (buf) ee24000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee24000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee24000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(8,4), "ee24000");
+ check_base_class_offset(lv, (dd4000*), 0, "ee24000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24000.e");
+ test_class_info(&lv, &cd_ee24000);
+ dp->~ee24000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24000(Test_ee24000, "ee24000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24000C1Ev();
+extern void _ZN7ee24000D1Ev();
+Name_Map name_map_ee24000[] = {
+ NSPAIR(_ZN7ee24000C1Ev),
+ NSPAIR(_ZN7ee24000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee24000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24000[];
+extern void _ZN6dd40003barEv();
+extern void _ZN7ee240003fooEv();
+static VTBL_ENTRY vtc_ee24000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+ (VTBL_ENTRY)&_ZN7ee240003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee24000[];
+extern VTBL_ENTRY _ZTV7ee24000[];
+Class_Descriptor cd_ee24000 = { "ee24000", // class name
+ bases_ee24000, 4,
+ &(vtc_ee24000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34000 : virtual dd4000 {
+ int e;
+ virtual void foo(); // _ZN7ee340003fooEv
+ ~ee34000(); // tgen
+ ee34000(); // tgen
+};
+//SIG(1 ee34000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34000 ::foo(){vfunc_called(this, "_ZN7ee340003fooEv");}
+ee34000 ::~ee34000(){ note_dtor("ee34000", this);} // tgen
+ee34000 ::ee34000(){ note_ctor("ee34000", this);} // tgen
+
+static void Test_ee34000()
+{
+ extern Class_Descriptor cd_ee34000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34000, buf);
+ ee34000 *dp, &lv = *(dp=new (buf) ee34000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee34000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee34000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(24,12), "ee34000");
+ check_base_class_offset(lv, (dd4000*), ABISELECT(16,8), "ee34000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34000.e");
+ test_class_info(&lv, &cd_ee34000);
+ dp->~ee34000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34000(Test_ee34000, "ee34000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34000C1Ev();
+extern void _ZN7ee34000D1Ev();
+Name_Map name_map_ee34000[] = {
+ NSPAIR(_ZN7ee34000C1Ev),
+ NSPAIR(_ZN7ee34000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee34000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34000[];
+extern void _ZN7ee340003fooEv();
+extern void _ZN6dd40003barEv();
+static VTBL_ENTRY vtc_ee34000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34000[0]),
+ (VTBL_ENTRY)&_ZN7ee340003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34000[0]),
+ (VTBL_ENTRY)&_ZN6dd40003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34000[];
+static VTT_ENTRY vtt_ee34000[] = {
+ {&(_ZTV7ee34000[3]), 3,8},
+ {&(_ZTV7ee34000[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee34000[];
+extern VTBL_ENTRY _ZTV7ee34000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34000[];
+Class_Descriptor cd_ee34000 = { "ee34000", // class name
+ bases_ee34000, 4,
+ &(vtc_ee34000[0]), // expected_vtbl_contents
+ &(vtt_ee34000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34000),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44000 : dd4000 {
+ int e;
+ virtual void bar(); // _ZN7ee440003barEv
+ ~ee44000(); // tgen
+ ee44000(); // tgen
+};
+//SIG(1 ee44000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44000 ::bar(){vfunc_called(this, "_ZN7ee440003barEv");}
+ee44000 ::~ee44000(){ note_dtor("ee44000", this);} // tgen
+ee44000 ::ee44000(){ note_ctor("ee44000", this);} // tgen
+
+static void Test_ee44000()
+{
+ extern Class_Descriptor cd_ee44000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44000, buf);
+ ee44000 *dp, &lv = *(dp=new (buf) ee44000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee44000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee44000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(8,4), "ee44000");
+ check_base_class_offset(lv, (dd4000*), 0, "ee44000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44000.e");
+ test_class_info(&lv, &cd_ee44000);
+ dp->~ee44000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44000(Test_ee44000, "ee44000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44000C1Ev();
+extern void _ZN7ee44000D1Ev();
+Name_Map name_map_ee44000[] = {
+ NSPAIR(_ZN7ee44000C1Ev),
+ NSPAIR(_ZN7ee44000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee44000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44000[];
+extern void _ZN7ee440003barEv();
+static VTBL_ENTRY vtc_ee44000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44000[0]),
+ (VTBL_ENTRY)&_ZN7ee440003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44000[];
+extern VTBL_ENTRY _ZTV7ee44000[];
+Class_Descriptor cd_ee44000 = { "ee44000", // class name
+ bases_ee44000, 4,
+ &(vtc_ee44000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44000),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54000 : virtual dd4000 {
+ int e;
+ virtual void bar(); // _ZN7ee540003barEv
+ ~ee54000(); // tgen
+ ee54000(); // tgen
+};
+//SIG(1 ee54000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54000 ::bar(){vfunc_called(this, "_ZN7ee540003barEv");}
+ee54000 ::~ee54000(){ note_dtor("ee54000", this);} // tgen
+ee54000 ::ee54000(){ note_ctor("ee54000", this);} // tgen
+
+static void Test_ee54000()
+{
+ extern Class_Descriptor cd_ee54000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54000, buf);
+ ee54000 *dp, &lv = *(dp=new (buf) ee54000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee54000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee54000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(24,12), "ee54000");
+ check_base_class_offset(lv, (dd4000*), ABISELECT(16,8), "ee54000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54000.e");
+ test_class_info(&lv, &cd_ee54000);
+ dp->~ee54000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54000(Test_ee54000, "ee54000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54000C1Ev();
+extern void _ZN7ee54000D1Ev();
+Name_Map name_map_ee54000[] = {
+ NSPAIR(_ZN7ee54000C1Ev),
+ NSPAIR(_ZN7ee54000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee54000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54000[];
+extern void _ZN7ee540003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee540003barEv,_ZTv0_n12_N7ee540003barEv)();
+extern void ABISELECT(_ZThn16_N7ee540003barEv,_ZThn8_N7ee540003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54000[0]),
+ (VTBL_ENTRY)&_ZN7ee540003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee540003barEv,_ZTv0_n12_N7ee540003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54000[];
+static VTT_ENTRY vtt_ee54000[] = {
+ {&(_ZTV7ee54000[3]), 3,8},
+ {&(_ZTV7ee54000[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee54000[];
+extern VTBL_ENTRY _ZTV7ee54000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54000[];
+static VTBL_ENTRY alt_thunk_names5[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee540003barEv,_ZTv0_n12_N7ee540003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540003barEv,_ZThn8_N7ee540003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54000 = { "ee54000", // class name
+ bases_ee54000, 4,
+ &(vtc_ee54000[0]), // expected_vtbl_contents
+ &(vtt_ee54000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54000),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names5,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64000 : dd4000 {
+ int e;
+ virtual void foo(); // _ZN7ee640003fooEv
+ virtual void bar(); // _ZN7ee640003barEv
+ ~ee64000(); // tgen
+ ee64000(); // tgen
+};
+//SIG(1 ee64000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64000 ::foo(){vfunc_called(this, "_ZN7ee640003fooEv");}
+void ee64000 ::bar(){vfunc_called(this, "_ZN7ee640003barEv");}
+ee64000 ::~ee64000(){ note_dtor("ee64000", this);} // tgen
+ee64000 ::ee64000(){ note_ctor("ee64000", this);} // tgen
+
+static void Test_ee64000()
+{
+ extern Class_Descriptor cd_ee64000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64000, buf);
+ ee64000 *dp, &lv = *(dp=new (buf) ee64000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee64000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(8,4), "ee64000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(8,4), "ee64000");
+ check_base_class_offset(lv, (dd4000*), 0, "ee64000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64000.e");
+ test_class_info(&lv, &cd_ee64000);
+ dp->~ee64000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64000(Test_ee64000, "ee64000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64000C1Ev();
+extern void _ZN7ee64000D1Ev();
+Name_Map name_map_ee64000[] = {
+ NSPAIR(_ZN7ee64000C1Ev),
+ NSPAIR(_ZN7ee64000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee64000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64000[];
+extern void _ZN7ee640003barEv();
+extern void _ZN7ee640003fooEv();
+static VTBL_ENTRY vtc_ee64000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64000[0]),
+ (VTBL_ENTRY)&_ZN7ee640003barEv,
+ (VTBL_ENTRY)&_ZN7ee640003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee64000[];
+extern VTBL_ENTRY _ZTV7ee64000[];
+Class_Descriptor cd_ee64000 = { "ee64000", // class name
+ bases_ee64000, 4,
+ &(vtc_ee64000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74000 : virtual dd4000 {
+ int e;
+ virtual void foo(); // _ZN7ee740003fooEv
+ virtual void bar(); // _ZN7ee740003barEv
+ ~ee74000(); // tgen
+ ee74000(); // tgen
+};
+//SIG(1 ee74000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74000 ::foo(){vfunc_called(this, "_ZN7ee740003fooEv");}
+void ee74000 ::bar(){vfunc_called(this, "_ZN7ee740003barEv");}
+ee74000 ::~ee74000(){ note_dtor("ee74000", this);} // tgen
+ee74000 ::ee74000(){ note_ctor("ee74000", this);} // tgen
+
+static void Test_ee74000()
+{
+ extern Class_Descriptor cd_ee74000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74000, buf);
+ ee74000 *dp, &lv = *(dp=new (buf) ee74000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee74000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd4000*), ABISELECT(24,12), "ee74000");
+ check_base_class_offset(lv, (cc000*)(dd4000*), ABISELECT(24,12), "ee74000");
+ check_base_class_offset(lv, (dd4000*), ABISELECT(16,8), "ee74000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74000.e");
+ test_class_info(&lv, &cd_ee74000);
+ dp->~ee74000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74000(Test_ee74000, "ee74000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74000C1Ev();
+extern void _ZN7ee74000D1Ev();
+Name_Map name_map_ee74000[] = {
+ NSPAIR(_ZN7ee74000C1Ev),
+ NSPAIR(_ZN7ee74000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd4000;
+extern VTBL_ENTRY _ZTI6dd4000[];
+extern VTBL_ENTRY _ZTV6dd4000[];
+static Base_Class bases_ee74000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74000[];
+extern void _ZN7ee740003fooEv();
+extern void _ZN7ee740003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740003barEv,_ZTv0_n12_N7ee740003barEv)();
+extern void ABISELECT(_ZThn16_N7ee740003barEv,_ZThn8_N7ee740003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74000[0]),
+ (VTBL_ENTRY)&_ZN7ee740003fooEv,
+ (VTBL_ENTRY)&_ZN7ee740003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740003barEv,_ZTv0_n12_N7ee740003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74000[];
+static VTT_ENTRY vtt_ee74000[] = {
+ {&(_ZTV7ee74000[3]), 3,9},
+ {&(_ZTV7ee74000[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee74000[];
+extern VTBL_ENTRY _ZTV7ee74000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74000[];
+static VTBL_ENTRY alt_thunk_names6[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740003barEv,_ZTv0_n12_N7ee740003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740003barEv,_ZThn8_N7ee740003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74000 = { "ee74000", // class name
+ bases_ee74000, 4,
+ &(vtc_ee74000[0]), // expected_vtbl_contents
+ &(vtt_ee74000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74000),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names6,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5000 : virtual cc000 {
+ int d;
+ virtual void bar(); // _ZN6dd50003barEv
+ ~dd5000(); // tgen
+ dd5000(); // tgen
+};
+//SIG(-1 dd5000) C1{ VBC2{ BC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd5000 ::bar(){vfunc_called(this, "_ZN6dd50003barEv");}
+dd5000 ::~dd5000(){ note_dtor("dd5000", this);} // tgen
+dd5000 ::dd5000(){ note_ctor("dd5000", this);} // tgen
+
+static void Test_dd5000()
+{
+ extern Class_Descriptor cd_dd5000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd5000, buf);
+ dd5000 *dp, &lv = *(dp=new (buf) dd5000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd5000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(12,8), "dd5000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(12,8), "dd5000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(12,8), "dd5000");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5000.d");
+ test_class_info(&lv, &cd_dd5000);
+ dp->~dd5000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5000(Test_dd5000, "dd5000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd5000C1Ev();
+extern void _ZN6dd5000D1Ev();
+Name_Map name_map_dd5000[] = {
+ NSPAIR(_ZN6dd5000C1Ev),
+ NSPAIR(_ZN6dd5000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd5000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY vtc_dd5000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd5000[];
+static VTT_ENTRY vtt_dd5000[] = {
+ {&(_ZTV6dd5000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+Class_Descriptor cd_dd5000 = { "dd5000", // class name
+ bases_dd5000, 3,
+ &(vtc_dd5000[0]), // expected_vtbl_contents
+ &(vtt_dd5000[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd5000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5000),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05000 : dd5000 {
+ int e;
+ ~ee05000(); // tgen
+ ee05000(); // tgen
+};
+//SIG(1 ee05000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee05000 ::~ee05000(){ note_dtor("ee05000", this);} // tgen
+ee05000 ::ee05000(){ note_ctor("ee05000", this);} // tgen
+
+static void Test_ee05000()
+{
+ extern Class_Descriptor cd_ee05000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee05000, buf);
+ ee05000 *dp, &lv = *(dp=new (buf) ee05000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee05000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee05000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee05000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(16,12), "ee05000");
+ check_base_class_offset(lv, (dd5000*), 0, "ee05000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05000.e");
+ test_class_info(&lv, &cd_ee05000);
+ dp->~ee05000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05000(Test_ee05000, "ee05000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee05000C1Ev();
+extern void _ZN7ee05000D1Ev();
+Name_Map name_map_ee05000[] = {
+ NSPAIR(_ZN7ee05000C1Ev),
+ NSPAIR(_ZN7ee05000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee05000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY vtc_ee05000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee05000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee05000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee05000[] = {
+ {&(_ZTV7ee05000[3]), 3,4},
+ {&(_tg__ZTV6dd5000__7ee05000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05000[];
+extern VTBL_ENTRY _ZTV7ee05000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05000[];
+Class_Descriptor cd_ee05000 = { "ee05000", // class name
+ bases_ee05000, 4,
+ &(vtc_ee05000[0]), // expected_vtbl_contents
+ &(vtt_ee05000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee05000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15000 : virtual dd5000 {
+ int e;
+ ~ee15000(); // tgen
+ ee15000(); // tgen
+};
+//SIG(1 ee15000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee15000 ::~ee15000(){ note_dtor("ee15000", this);} // tgen
+ee15000 ::ee15000(){ note_ctor("ee15000", this);} // tgen
+
+static void Test_ee15000()
+{
+ extern Class_Descriptor cd_ee15000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee15000, buf);
+ ee15000 *dp, &lv = *(dp=new (buf) ee15000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee15000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee15000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee15000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(28,16), "ee15000");
+ check_base_class_offset(lv, (dd5000*), ABISELECT(16,8), "ee15000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15000.e");
+ test_class_info(&lv, &cd_ee15000);
+ dp->~ee15000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15000(Test_ee15000, "ee15000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee15000C1Ev();
+extern void _ZN7ee15000D1Ev();
+Name_Map name_map_ee15000[] = {
+ NSPAIR(_ZN7ee15000C1Ev),
+ NSPAIR(_ZN7ee15000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee15000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY vtc_ee15000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15000[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee15000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee15000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee15000[] = {
+ {&(_ZTV7ee15000[4]), 4,9},
+ {&(_ZTV7ee15000[8]), 8,9},
+ {&(_tg__ZTV6dd5000__7ee15000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15000[];
+extern VTBL_ENTRY _ZTV7ee15000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15000[];
+Class_Descriptor cd_ee15000 = { "ee15000", // class name
+ bases_ee15000, 4,
+ &(vtc_ee15000[0]), // expected_vtbl_contents
+ &(vtt_ee15000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee15000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15000),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25000 : dd5000 {
+ int e;
+ virtual void foo(); // _ZN7ee250003fooEv
+ ~ee25000(); // tgen
+ ee25000(); // tgen
+};
+//SIG(1 ee25000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25000 ::foo(){vfunc_called(this, "_ZN7ee250003fooEv");}
+ee25000 ::~ee25000(){ note_dtor("ee25000", this);} // tgen
+ee25000 ::ee25000(){ note_ctor("ee25000", this);} // tgen
+
+static void Test_ee25000()
+{
+ extern Class_Descriptor cd_ee25000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee25000, buf);
+ ee25000 *dp, &lv = *(dp=new (buf) ee25000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee25000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee25000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee25000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(16,12), "ee25000");
+ check_base_class_offset(lv, (dd5000*), 0, "ee25000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25000.e");
+ test_class_info(&lv, &cd_ee25000);
+ dp->~ee25000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25000(Test_ee25000, "ee25000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee25000C1Ev();
+extern void _ZN7ee25000D1Ev();
+Name_Map name_map_ee25000[] = {
+ NSPAIR(_ZN7ee25000C1Ev),
+ NSPAIR(_ZN7ee25000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee25000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25000[];
+extern void _ZN6dd50003barEv();
+extern void _ZN7ee250003fooEv();
+static VTBL_ENTRY vtc_ee25000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+ (VTBL_ENTRY)&_ZN7ee250003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee25000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee25000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee25000[] = {
+ {&(_ZTV7ee25000[3]), 3,5},
+ {&(_tg__ZTV6dd5000__7ee25000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25000[];
+extern VTBL_ENTRY _ZTV7ee25000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25000[];
+Class_Descriptor cd_ee25000 = { "ee25000", // class name
+ bases_ee25000, 4,
+ &(vtc_ee25000[0]), // expected_vtbl_contents
+ &(vtt_ee25000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee25000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35000 : virtual dd5000 {
+ int e;
+ virtual void foo(); // _ZN7ee350003fooEv
+ ~ee35000(); // tgen
+ ee35000(); // tgen
+};
+//SIG(1 ee35000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35000 ::foo(){vfunc_called(this, "_ZN7ee350003fooEv");}
+ee35000 ::~ee35000(){ note_dtor("ee35000", this);} // tgen
+ee35000 ::ee35000(){ note_ctor("ee35000", this);} // tgen
+
+static void Test_ee35000()
+{
+ extern Class_Descriptor cd_ee35000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee35000, buf);
+ ee35000 *dp, &lv = *(dp=new (buf) ee35000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee35000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee35000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee35000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(28,16), "ee35000");
+ check_base_class_offset(lv, (dd5000*), ABISELECT(16,8), "ee35000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35000.e");
+ test_class_info(&lv, &cd_ee35000);
+ dp->~ee35000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35000(Test_ee35000, "ee35000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee35000C1Ev();
+extern void _ZN7ee35000D1Ev();
+Name_Map name_map_ee35000[] = {
+ NSPAIR(_ZN7ee35000C1Ev),
+ NSPAIR(_ZN7ee35000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee35000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35000[];
+extern void _ZN7ee350003fooEv();
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY vtc_ee35000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35000[0]),
+ (VTBL_ENTRY)&_ZN7ee350003fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee35000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee35000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee35000[] = {
+ {&(_ZTV7ee35000[4]), 4,10},
+ {&(_ZTV7ee35000[9]), 9,10},
+ {&(_tg__ZTV6dd5000__7ee35000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35000[];
+extern VTBL_ENTRY _ZTV7ee35000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35000[];
+Class_Descriptor cd_ee35000 = { "ee35000", // class name
+ bases_ee35000, 4,
+ &(vtc_ee35000[0]), // expected_vtbl_contents
+ &(vtt_ee35000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee35000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35000),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45000 : dd5000 {
+ int e;
+ virtual void bar(); // _ZN7ee450003barEv
+ ~ee45000(); // tgen
+ ee45000(); // tgen
+};
+//SIG(1 ee45000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45000 ::bar(){vfunc_called(this, "_ZN7ee450003barEv");}
+ee45000 ::~ee45000(){ note_dtor("ee45000", this);} // tgen
+ee45000 ::ee45000(){ note_ctor("ee45000", this);} // tgen
+
+static void Test_ee45000()
+{
+ extern Class_Descriptor cd_ee45000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee45000, buf);
+ ee45000 *dp, &lv = *(dp=new (buf) ee45000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee45000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee45000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee45000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(16,12), "ee45000");
+ check_base_class_offset(lv, (dd5000*), 0, "ee45000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45000.e");
+ test_class_info(&lv, &cd_ee45000);
+ dp->~ee45000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45000(Test_ee45000, "ee45000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee45000C1Ev();
+extern void _ZN7ee45000D1Ev();
+Name_Map name_map_ee45000[] = {
+ NSPAIR(_ZN7ee45000C1Ev),
+ NSPAIR(_ZN7ee45000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee45000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45000[];
+extern void _ZN7ee450003barEv();
+static VTBL_ENTRY vtc_ee45000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45000[0]),
+ (VTBL_ENTRY)&_ZN7ee450003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee45000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee45000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee45000[] = {
+ {&(_ZTV7ee45000[3]), 3,4},
+ {&(_tg__ZTV6dd5000__7ee45000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45000[];
+extern VTBL_ENTRY _ZTV7ee45000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45000[];
+Class_Descriptor cd_ee45000 = { "ee45000", // class name
+ bases_ee45000, 4,
+ &(vtc_ee45000[0]), // expected_vtbl_contents
+ &(vtt_ee45000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee45000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45000),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55000 : virtual dd5000 {
+ int e;
+ virtual void bar(); // _ZN7ee550003barEv
+ ~ee55000(); // tgen
+ ee55000(); // tgen
+};
+//SIG(1 ee55000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55000 ::bar(){vfunc_called(this, "_ZN7ee550003barEv");}
+ee55000 ::~ee55000(){ note_dtor("ee55000", this);} // tgen
+ee55000 ::ee55000(){ note_ctor("ee55000", this);} // tgen
+
+static void Test_ee55000()
+{
+ extern Class_Descriptor cd_ee55000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee55000, buf);
+ ee55000 *dp, &lv = *(dp=new (buf) ee55000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee55000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee55000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee55000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(28,16), "ee55000");
+ check_base_class_offset(lv, (dd5000*), ABISELECT(16,8), "ee55000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55000.e");
+ test_class_info(&lv, &cd_ee55000);
+ dp->~ee55000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55000(Test_ee55000, "ee55000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee55000C1Ev();
+extern void _ZN7ee55000D1Ev();
+Name_Map name_map_ee55000[] = {
+ NSPAIR(_ZN7ee55000C1Ev),
+ NSPAIR(_ZN7ee55000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee55000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55000[];
+extern void _ZN7ee550003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550003barEv,_ZTv0_n16_N7ee550003barEv)();
+extern void ABISELECT(_ZThn16_N7ee550003barEv,_ZThn8_N7ee550003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55000[0]),
+ (VTBL_ENTRY)&_ZN7ee550003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550003barEv,_ZTv0_n16_N7ee550003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee55000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee55000[] = {
+ {&(_ZTV7ee55000[4]), 4,10},
+ {&(_ZTV7ee55000[9]), 9,10},
+ {&(_tg__ZTV6dd5000__7ee55000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55000[];
+extern VTBL_ENTRY _ZTV7ee55000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55000[];
+static VTBL_ENTRY alt_thunk_names7[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550003barEv,_ZTv0_n16_N7ee550003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550003barEv,_ZThn8_N7ee550003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55000 = { "ee55000", // class name
+ bases_ee55000, 4,
+ &(vtc_ee55000[0]), // expected_vtbl_contents
+ &(vtt_ee55000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee55000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55000),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names7,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65000 : dd5000 {
+ int e;
+ virtual void foo(); // _ZN7ee650003fooEv
+ virtual void bar(); // _ZN7ee650003barEv
+ ~ee65000(); // tgen
+ ee65000(); // tgen
+};
+//SIG(1 ee65000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65000 ::foo(){vfunc_called(this, "_ZN7ee650003fooEv");}
+void ee65000 ::bar(){vfunc_called(this, "_ZN7ee650003barEv");}
+ee65000 ::~ee65000(){ note_dtor("ee65000", this);} // tgen
+ee65000 ::ee65000(){ note_ctor("ee65000", this);} // tgen
+
+static void Test_ee65000()
+{
+ extern Class_Descriptor cd_ee65000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee65000, buf);
+ ee65000 *dp, &lv = *(dp=new (buf) ee65000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee65000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee65000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee65000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(16,12), "ee65000");
+ check_base_class_offset(lv, (dd5000*), 0, "ee65000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65000.e");
+ test_class_info(&lv, &cd_ee65000);
+ dp->~ee65000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65000(Test_ee65000, "ee65000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee65000C1Ev();
+extern void _ZN7ee65000D1Ev();
+Name_Map name_map_ee65000[] = {
+ NSPAIR(_ZN7ee65000C1Ev),
+ NSPAIR(_ZN7ee65000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee65000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65000[];
+extern void _ZN7ee650003barEv();
+extern void _ZN7ee650003fooEv();
+static VTBL_ENTRY vtc_ee65000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65000[0]),
+ (VTBL_ENTRY)&_ZN7ee650003barEv,
+ (VTBL_ENTRY)&_ZN7ee650003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee65000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee65000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee65000[] = {
+ {&(_ZTV7ee65000[3]), 3,5},
+ {&(_tg__ZTV6dd5000__7ee65000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65000[];
+extern VTBL_ENTRY _ZTV7ee65000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65000[];
+Class_Descriptor cd_ee65000 = { "ee65000", // class name
+ bases_ee65000, 4,
+ &(vtc_ee65000[0]), // expected_vtbl_contents
+ &(vtt_ee65000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee65000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75000 : virtual dd5000 {
+ int e;
+ virtual void foo(); // _ZN7ee750003fooEv
+ virtual void bar(); // _ZN7ee750003barEv
+ ~ee75000(); // tgen
+ ee75000(); // tgen
+};
+//SIG(1 ee75000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75000 ::foo(){vfunc_called(this, "_ZN7ee750003fooEv");}
+void ee75000 ::bar(){vfunc_called(this, "_ZN7ee750003barEv");}
+ee75000 ::~ee75000(){ note_dtor("ee75000", this);} // tgen
+ee75000 ::ee75000(){ note_ctor("ee75000", this);} // tgen
+
+static void Test_ee75000()
+{
+ extern Class_Descriptor cd_ee75000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee75000, buf);
+ ee75000 *dp, &lv = *(dp=new (buf) ee75000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee75000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee75000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee75000");
+ check_base_class_offset(lv, (cc000*)(dd5000*), ABISELECT(28,16), "ee75000");
+ check_base_class_offset(lv, (dd5000*), ABISELECT(16,8), "ee75000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75000.e");
+ test_class_info(&lv, &cd_ee75000);
+ dp->~ee75000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75000(Test_ee75000, "ee75000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee75000C1Ev();
+extern void _ZN7ee75000D1Ev();
+Name_Map name_map_ee75000[] = {
+ NSPAIR(_ZN7ee75000C1Ev),
+ NSPAIR(_ZN7ee75000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd5000;
+extern VTBL_ENTRY _ZTI6dd5000[];
+extern VTBL_ENTRY _ZTV6dd5000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5000[];
+static Base_Class bases_ee75000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5000, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75000[];
+extern void _ZN7ee750003fooEv();
+extern void _ZN7ee750003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750003barEv,_ZTv0_n16_N7ee750003barEv)();
+extern void ABISELECT(_ZThn16_N7ee750003barEv,_ZThn8_N7ee750003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75000[0]),
+ (VTBL_ENTRY)&_ZN7ee750003fooEv,
+ (VTBL_ENTRY)&_ZN7ee750003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750003barEv,_ZTv0_n16_N7ee750003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75000[];
+extern void _ZN6dd50003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5000__7ee75000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5000[0]),
+ (VTBL_ENTRY)&_ZN6dd50003barEv,
+};
+static VTT_ENTRY vtt_ee75000[] = {
+ {&(_ZTV7ee75000[4]), 4,11},
+ {&(_ZTV7ee75000[10]), 10,11},
+ {&(_tg__ZTV6dd5000__7ee75000[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75000[];
+extern VTBL_ENTRY _ZTV7ee75000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75000[];
+static VTBL_ENTRY alt_thunk_names8[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750003barEv,_ZTv0_n16_N7ee750003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750003barEv,_ZThn8_N7ee750003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75000 = { "ee75000", // class name
+ bases_ee75000, 4,
+ &(vtc_ee75000[0]), // expected_vtbl_contents
+ &(vtt_ee75000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee75000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75000),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names8,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6000 : cc000 {
+ int d;
+ virtual void bar(); // _ZN6dd60003barEv
+ virtual void foo(); // _ZN6dd60003fooEv
+ ~dd6000(); // tgen
+ dd6000(); // tgen
+};
+//SIG(-1 dd6000) C1{ BC2{ BC3{ BC4{ Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd6000 ::bar(){vfunc_called(this, "_ZN6dd60003barEv");}
+void dd6000 ::foo(){vfunc_called(this, "_ZN6dd60003fooEv");}
+dd6000 ::~dd6000(){ note_dtor("dd6000", this);} // tgen
+dd6000 ::dd6000(){ note_ctor("dd6000", this);} // tgen
+
+static void Test_dd6000()
+{
+ extern Class_Descriptor cd_dd6000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6000, buf);
+ dd6000 *dp, &lv = *(dp=new (buf) dd6000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(8,4), "dd6000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(8,4), "dd6000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(8,4), "dd6000");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6000.d");
+ test_class_info(&lv, &cd_dd6000);
+ dp->~dd6000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6000(Test_dd6000, "dd6000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6000C1Ev();
+extern void _ZN6dd6000D1Ev();
+Name_Map name_map_dd6000[] = {
+ NSPAIR(_ZN6dd6000C1Ev),
+ NSPAIR(_ZN6dd6000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd6000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern void _ZN6dd60003barEv();
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_dd6000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+Class_Descriptor cd_dd6000 = { "dd6000", // class name
+ bases_dd6000, 3,
+ &(vtc_dd6000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd6000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06000 : dd6000 {
+ int e;
+ ~ee06000(); // tgen
+ ee06000(); // tgen
+};
+//SIG(1 ee06000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06000 ::~ee06000(){ note_dtor("ee06000", this);} // tgen
+ee06000 ::ee06000(){ note_ctor("ee06000", this);} // tgen
+
+static void Test_ee06000()
+{
+ extern Class_Descriptor cd_ee06000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06000, buf);
+ ee06000 *dp, &lv = *(dp=new (buf) ee06000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee06000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee06000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(8,4), "ee06000");
+ check_base_class_offset(lv, (dd6000*), 0, "ee06000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06000.e");
+ test_class_info(&lv, &cd_ee06000);
+ dp->~ee06000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06000(Test_ee06000, "ee06000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06000C1Ev();
+extern void _ZN7ee06000D1Ev();
+Name_Map name_map_ee06000[] = {
+ NSPAIR(_ZN7ee06000C1Ev),
+ NSPAIR(_ZN7ee06000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee06000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06000[];
+extern void _ZN6dd60003barEv();
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_ee06000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee06000[];
+extern VTBL_ENTRY _ZTV7ee06000[];
+Class_Descriptor cd_ee06000 = { "ee06000", // class name
+ bases_ee06000, 4,
+ &(vtc_ee06000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16000 : virtual dd6000 {
+ int e;
+ ~ee16000(); // tgen
+ ee16000(); // tgen
+};
+//SIG(1 ee16000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16000 ::~ee16000(){ note_dtor("ee16000", this);} // tgen
+ee16000 ::ee16000(){ note_ctor("ee16000", this);} // tgen
+
+static void Test_ee16000()
+{
+ extern Class_Descriptor cd_ee16000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16000, buf);
+ ee16000 *dp, &lv = *(dp=new (buf) ee16000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee16000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee16000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(24,12), "ee16000");
+ check_base_class_offset(lv, (dd6000*), ABISELECT(16,8), "ee16000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16000.e");
+ test_class_info(&lv, &cd_ee16000);
+ dp->~ee16000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16000(Test_ee16000, "ee16000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16000C1Ev();
+extern void _ZN7ee16000D1Ev();
+Name_Map name_map_ee16000[] = {
+ NSPAIR(_ZN7ee16000C1Ev),
+ NSPAIR(_ZN7ee16000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee16000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16000[];
+extern void _ZN6dd60003barEv();
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_ee16000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16000[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16000[];
+static VTT_ENTRY vtt_ee16000[] = {
+ {&(_ZTV7ee16000[3]), 3,9},
+ {&(_ZTV7ee16000[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16000[];
+extern VTBL_ENTRY _ZTV7ee16000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16000[];
+Class_Descriptor cd_ee16000 = { "ee16000", // class name
+ bases_ee16000, 4,
+ &(vtc_ee16000[0]), // expected_vtbl_contents
+ &(vtt_ee16000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16000),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26000 : dd6000 {
+ int e;
+ virtual void foo(); // _ZN7ee260003fooEv
+ ~ee26000(); // tgen
+ ee26000(); // tgen
+};
+//SIG(1 ee26000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26000 ::foo(){vfunc_called(this, "_ZN7ee260003fooEv");}
+ee26000 ::~ee26000(){ note_dtor("ee26000", this);} // tgen
+ee26000 ::ee26000(){ note_ctor("ee26000", this);} // tgen
+
+static void Test_ee26000()
+{
+ extern Class_Descriptor cd_ee26000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26000, buf);
+ ee26000 *dp, &lv = *(dp=new (buf) ee26000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee26000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee26000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(8,4), "ee26000");
+ check_base_class_offset(lv, (dd6000*), 0, "ee26000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26000.e");
+ test_class_info(&lv, &cd_ee26000);
+ dp->~ee26000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26000(Test_ee26000, "ee26000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26000C1Ev();
+extern void _ZN7ee26000D1Ev();
+Name_Map name_map_ee26000[] = {
+ NSPAIR(_ZN7ee26000C1Ev),
+ NSPAIR(_ZN7ee26000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee26000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26000[];
+extern void _ZN6dd60003barEv();
+extern void _ZN7ee260003fooEv();
+static VTBL_ENTRY vtc_ee26000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&_ZN7ee260003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee26000[];
+extern VTBL_ENTRY _ZTV7ee26000[];
+Class_Descriptor cd_ee26000 = { "ee26000", // class name
+ bases_ee26000, 4,
+ &(vtc_ee26000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36000 : virtual dd6000 {
+ int e;
+ virtual void foo(); // _ZN7ee360003fooEv
+ ~ee36000(); // tgen
+ ee36000(); // tgen
+};
+//SIG(1 ee36000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36000 ::foo(){vfunc_called(this, "_ZN7ee360003fooEv");}
+ee36000 ::~ee36000(){ note_dtor("ee36000", this);} // tgen
+ee36000 ::ee36000(){ note_ctor("ee36000", this);} // tgen
+
+static void Test_ee36000()
+{
+ extern Class_Descriptor cd_ee36000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36000, buf);
+ ee36000 *dp, &lv = *(dp=new (buf) ee36000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee36000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee36000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(24,12), "ee36000");
+ check_base_class_offset(lv, (dd6000*), ABISELECT(16,8), "ee36000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36000.e");
+ test_class_info(&lv, &cd_ee36000);
+ dp->~ee36000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36000(Test_ee36000, "ee36000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36000C1Ev();
+extern void _ZN7ee36000D1Ev();
+Name_Map name_map_ee36000[] = {
+ NSPAIR(_ZN7ee36000C1Ev),
+ NSPAIR(_ZN7ee36000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee36000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36000[];
+extern void _ZN7ee360003fooEv();
+extern void _ZN6dd60003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee360003fooEv,_ZTv0_n16_N7ee360003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360003fooEv,_ZThn8_N7ee360003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36000[0]),
+ (VTBL_ENTRY)&_ZN7ee360003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36000[0]),
+ (VTBL_ENTRY)&_ZN6dd60003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee360003fooEv,_ZTv0_n16_N7ee360003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36000[];
+static VTT_ENTRY vtt_ee36000[] = {
+ {&(_ZTV7ee36000[3]), 3,10},
+ {&(_ZTV7ee36000[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36000[];
+extern VTBL_ENTRY _ZTV7ee36000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36000[];
+static VTBL_ENTRY alt_thunk_names9[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee360003fooEv,_ZTv0_n16_N7ee360003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360003fooEv,_ZThn8_N7ee360003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36000 = { "ee36000", // class name
+ bases_ee36000, 4,
+ &(vtc_ee36000[0]), // expected_vtbl_contents
+ &(vtt_ee36000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36000),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names9,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46000 : dd6000 {
+ int e;
+ virtual void bar(); // _ZN7ee460003barEv
+ ~ee46000(); // tgen
+ ee46000(); // tgen
+};
+//SIG(1 ee46000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46000 ::bar(){vfunc_called(this, "_ZN7ee460003barEv");}
+ee46000 ::~ee46000(){ note_dtor("ee46000", this);} // tgen
+ee46000 ::ee46000(){ note_ctor("ee46000", this);} // tgen
+
+static void Test_ee46000()
+{
+ extern Class_Descriptor cd_ee46000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46000, buf);
+ ee46000 *dp, &lv = *(dp=new (buf) ee46000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee46000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee46000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(8,4), "ee46000");
+ check_base_class_offset(lv, (dd6000*), 0, "ee46000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46000.e");
+ test_class_info(&lv, &cd_ee46000);
+ dp->~ee46000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46000(Test_ee46000, "ee46000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46000C1Ev();
+extern void _ZN7ee46000D1Ev();
+Name_Map name_map_ee46000[] = {
+ NSPAIR(_ZN7ee46000C1Ev),
+ NSPAIR(_ZN7ee46000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee46000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46000[];
+extern void _ZN7ee460003barEv();
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_ee46000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46000[0]),
+ (VTBL_ENTRY)&_ZN7ee460003barEv,
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee46000[];
+extern VTBL_ENTRY _ZTV7ee46000[];
+Class_Descriptor cd_ee46000 = { "ee46000", // class name
+ bases_ee46000, 4,
+ &(vtc_ee46000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56000 : virtual dd6000 {
+ int e;
+ virtual void bar(); // _ZN7ee560003barEv
+ ~ee56000(); // tgen
+ ee56000(); // tgen
+};
+//SIG(1 ee56000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56000 ::bar(){vfunc_called(this, "_ZN7ee560003barEv");}
+ee56000 ::~ee56000(){ note_dtor("ee56000", this);} // tgen
+ee56000 ::ee56000(){ note_ctor("ee56000", this);} // tgen
+
+static void Test_ee56000()
+{
+ extern Class_Descriptor cd_ee56000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56000, buf);
+ ee56000 *dp, &lv = *(dp=new (buf) ee56000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee56000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee56000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(24,12), "ee56000");
+ check_base_class_offset(lv, (dd6000*), ABISELECT(16,8), "ee56000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56000.e");
+ test_class_info(&lv, &cd_ee56000);
+ dp->~ee56000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56000(Test_ee56000, "ee56000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56000C1Ev();
+extern void _ZN7ee56000D1Ev();
+Name_Map name_map_ee56000[] = {
+ NSPAIR(_ZN7ee56000C1Ev),
+ NSPAIR(_ZN7ee56000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee56000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56000[];
+extern void _ZN7ee560003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee560003barEv,_ZTv0_n12_N7ee560003barEv)();
+extern void ABISELECT(_ZThn16_N7ee560003barEv,_ZThn8_N7ee560003barEv)() __attribute__((weak));
+extern void _ZN6dd60003fooEv();
+static VTBL_ENTRY vtc_ee56000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56000[0]),
+ (VTBL_ENTRY)&_ZN7ee560003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee560003barEv,_ZTv0_n12_N7ee560003barEv),
+ (VTBL_ENTRY)&_ZN6dd60003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56000[];
+static VTT_ENTRY vtt_ee56000[] = {
+ {&(_ZTV7ee56000[3]), 3,10},
+ {&(_ZTV7ee56000[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56000[];
+extern VTBL_ENTRY _ZTV7ee56000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56000[];
+static VTBL_ENTRY alt_thunk_names10[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee560003barEv,_ZTv0_n12_N7ee560003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560003barEv,_ZThn8_N7ee560003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56000 = { "ee56000", // class name
+ bases_ee56000, 4,
+ &(vtc_ee56000[0]), // expected_vtbl_contents
+ &(vtt_ee56000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56000),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names10,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66000 : dd6000 {
+ int e;
+ virtual void foo(); // _ZN7ee660003fooEv
+ virtual void bar(); // _ZN7ee660003barEv
+ ~ee66000(); // tgen
+ ee66000(); // tgen
+};
+//SIG(1 ee66000) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66000 ::foo(){vfunc_called(this, "_ZN7ee660003fooEv");}
+void ee66000 ::bar(){vfunc_called(this, "_ZN7ee660003barEv");}
+ee66000 ::~ee66000(){ note_dtor("ee66000", this);} // tgen
+ee66000 ::ee66000(){ note_ctor("ee66000", this);} // tgen
+
+static void Test_ee66000()
+{
+ extern Class_Descriptor cd_ee66000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66000, buf);
+ ee66000 *dp, &lv = *(dp=new (buf) ee66000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee66000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(8,4), "ee66000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(8,4), "ee66000");
+ check_base_class_offset(lv, (dd6000*), 0, "ee66000");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66000.e");
+ test_class_info(&lv, &cd_ee66000);
+ dp->~ee66000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66000(Test_ee66000, "ee66000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66000C1Ev();
+extern void _ZN7ee66000D1Ev();
+Name_Map name_map_ee66000[] = {
+ NSPAIR(_ZN7ee66000C1Ev),
+ NSPAIR(_ZN7ee66000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee66000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66000[];
+extern void _ZN7ee660003barEv();
+extern void _ZN7ee660003fooEv();
+static VTBL_ENTRY vtc_ee66000[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66000[0]),
+ (VTBL_ENTRY)&_ZN7ee660003barEv,
+ (VTBL_ENTRY)&_ZN7ee660003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee66000[];
+extern VTBL_ENTRY _ZTV7ee66000[];
+Class_Descriptor cd_ee66000 = { "ee66000", // class name
+ bases_ee66000, 4,
+ &(vtc_ee66000[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66000),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76000 : virtual dd6000 {
+ int e;
+ virtual void foo(); // _ZN7ee760003fooEv
+ virtual void bar(); // _ZN7ee760003barEv
+ ~ee76000(); // tgen
+ ee76000(); // tgen
+};
+//SIG(1 ee76000) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76000 ::foo(){vfunc_called(this, "_ZN7ee760003fooEv");}
+void ee76000 ::bar(){vfunc_called(this, "_ZN7ee760003barEv");}
+ee76000 ::~ee76000(){ note_dtor("ee76000", this);} // tgen
+ee76000 ::ee76000(){ note_ctor("ee76000", this);} // tgen
+
+static void Test_ee76000()
+{
+ extern Class_Descriptor cd_ee76000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76000, buf);
+ ee76000 *dp, &lv = *(dp=new (buf) ee76000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee76000");
+ check_base_class_offset(lv, (bb00*)(cc000*)(dd6000*), ABISELECT(24,12), "ee76000");
+ check_base_class_offset(lv, (cc000*)(dd6000*), ABISELECT(24,12), "ee76000");
+ check_base_class_offset(lv, (dd6000*), ABISELECT(16,8), "ee76000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76000.e");
+ test_class_info(&lv, &cd_ee76000);
+ dp->~ee76000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76000(Test_ee76000, "ee76000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76000C1Ev();
+extern void _ZN7ee76000D1Ev();
+Name_Map name_map_ee76000[] = {
+ NSPAIR(_ZN7ee76000C1Ev),
+ NSPAIR(_ZN7ee76000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd6000;
+extern VTBL_ENTRY _ZTI6dd6000[];
+extern VTBL_ENTRY _ZTV6dd6000[];
+static Base_Class bases_ee76000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76000[];
+extern void _ZN7ee760003fooEv();
+extern void _ZN7ee760003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760003barEv,_ZTv0_n12_N7ee760003barEv)();
+extern void ABISELECT(_ZThn16_N7ee760003barEv,_ZThn8_N7ee760003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760003fooEv,_ZTv0_n16_N7ee760003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760003fooEv,_ZThn8_N7ee760003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76000[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76000[0]),
+ (VTBL_ENTRY)&_ZN7ee760003fooEv,
+ (VTBL_ENTRY)&_ZN7ee760003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760003barEv,_ZTv0_n12_N7ee760003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760003fooEv,_ZTv0_n16_N7ee760003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76000[];
+static VTT_ENTRY vtt_ee76000[] = {
+ {&(_ZTV7ee76000[3]), 3,11},
+ {&(_ZTV7ee76000[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76000[];
+extern VTBL_ENTRY _ZTV7ee76000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76000[];
+static VTBL_ENTRY alt_thunk_names11[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760003fooEv,_ZTv0_n16_N7ee760003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760003fooEv,_ZThn8_N7ee760003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760003barEv,_ZTv0_n12_N7ee760003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760003barEv,_ZThn8_N7ee760003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76000 = { "ee76000", // class name
+ bases_ee76000, 4,
+ &(vtc_ee76000[0]), // expected_vtbl_contents
+ &(vtt_ee76000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76000),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names11,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7000 : virtual cc000 {
+ int d;
+ virtual void bar(); // _ZN6dd70003barEv
+ virtual void foo(); // _ZN6dd70003fooEv
+ ~dd7000(); // tgen
+ dd7000(); // tgen
+};
+//SIG(-1 dd7000) C1{ VBC2{ BC3{ BC4{ Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd7000 ::bar(){vfunc_called(this, "_ZN6dd70003barEv");}
+void dd7000 ::foo(){vfunc_called(this, "_ZN6dd70003fooEv");}
+dd7000 ::~dd7000(){ note_dtor("dd7000", this);} // tgen
+dd7000 ::dd7000(){ note_ctor("dd7000", this);} // tgen
+
+static void Test_dd7000()
+{
+ extern Class_Descriptor cd_dd7000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd7000, buf);
+ dd7000 *dp, &lv = *(dp=new (buf) dd7000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd7000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(12,8), "dd7000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(12,8), "dd7000");
+ check_base_class_offset(lv, (cc000*), ABISELECT(12,8), "dd7000");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7000.d");
+ test_class_info(&lv, &cd_dd7000);
+ dp->~dd7000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7000(Test_dd7000, "dd7000", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd7000C1Ev();
+extern void _ZN6dd7000D1Ev();
+Name_Map name_map_dd7000[] = {
+ NSPAIR(_ZN6dd7000C1Ev),
+ NSPAIR(_ZN6dd7000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+static Base_Class bases_dd7000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_dd7000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd7000[];
+static VTT_ENTRY vtt_dd7000[] = {
+ {&(_ZTV6dd7000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+Class_Descriptor cd_dd7000 = { "dd7000", // class name
+ bases_dd7000, 3,
+ &(vtc_dd7000[0]), // expected_vtbl_contents
+ &(vtt_dd7000[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd7000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7000),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07000 : dd7000 {
+ int e;
+ ~ee07000(); // tgen
+ ee07000(); // tgen
+};
+//SIG(1 ee07000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07000 ::~ee07000(){ note_dtor("ee07000", this);} // tgen
+ee07000 ::ee07000(){ note_ctor("ee07000", this);} // tgen
+
+static void Test_ee07000()
+{
+ extern Class_Descriptor cd_ee07000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee07000, buf);
+ ee07000 *dp, &lv = *(dp=new (buf) ee07000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee07000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee07000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee07000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(16,12), "ee07000");
+ check_base_class_offset(lv, (dd7000*), 0, "ee07000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07000.e");
+ test_class_info(&lv, &cd_ee07000);
+ dp->~ee07000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07000(Test_ee07000, "ee07000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee07000C1Ev();
+extern void _ZN7ee07000D1Ev();
+Name_Map name_map_ee07000[] = {
+ NSPAIR(_ZN7ee07000C1Ev),
+ NSPAIR(_ZN7ee07000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee07000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_ee07000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee07000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee07000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee07000[] = {
+ {&(_ZTV7ee07000[3]), 3,5},
+ {&(_tg__ZTV6dd7000__7ee07000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee07000[];
+extern VTBL_ENTRY _ZTV7ee07000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07000[];
+Class_Descriptor cd_ee07000 = { "ee07000", // class name
+ bases_ee07000, 4,
+ &(vtc_ee07000[0]), // expected_vtbl_contents
+ &(vtt_ee07000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee07000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17000 : virtual dd7000 {
+ int e;
+ ~ee17000(); // tgen
+ ee17000(); // tgen
+};
+//SIG(1 ee17000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17000 ::~ee17000(){ note_dtor("ee17000", this);} // tgen
+ee17000 ::ee17000(){ note_ctor("ee17000", this);} // tgen
+
+static void Test_ee17000()
+{
+ extern Class_Descriptor cd_ee17000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee17000, buf);
+ ee17000 *dp, &lv = *(dp=new (buf) ee17000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee17000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee17000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee17000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(28,16), "ee17000");
+ check_base_class_offset(lv, (dd7000*), ABISELECT(16,8), "ee17000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17000.e");
+ test_class_info(&lv, &cd_ee17000);
+ dp->~ee17000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17000(Test_ee17000, "ee17000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee17000C1Ev();
+extern void _ZN7ee17000D1Ev();
+Name_Map name_map_ee17000[] = {
+ NSPAIR(_ZN7ee17000C1Ev),
+ NSPAIR(_ZN7ee17000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee17000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_ee17000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17000[0]),
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee17000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee17000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee17000[] = {
+ {&(_ZTV7ee17000[4]), 4,11},
+ {&(_ZTV7ee17000[9]), 9,11},
+ {&(_tg__ZTV6dd7000__7ee17000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee17000[];
+extern VTBL_ENTRY _ZTV7ee17000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17000[];
+Class_Descriptor cd_ee17000 = { "ee17000", // class name
+ bases_ee17000, 4,
+ &(vtc_ee17000[0]), // expected_vtbl_contents
+ &(vtt_ee17000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee17000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17000),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27000 : dd7000 {
+ int e;
+ virtual void foo(); // _ZN7ee270003fooEv
+ ~ee27000(); // tgen
+ ee27000(); // tgen
+};
+//SIG(1 ee27000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27000 ::foo(){vfunc_called(this, "_ZN7ee270003fooEv");}
+ee27000 ::~ee27000(){ note_dtor("ee27000", this);} // tgen
+ee27000 ::ee27000(){ note_ctor("ee27000", this);} // tgen
+
+static void Test_ee27000()
+{
+ extern Class_Descriptor cd_ee27000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee27000, buf);
+ ee27000 *dp, &lv = *(dp=new (buf) ee27000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee27000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee27000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee27000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(16,12), "ee27000");
+ check_base_class_offset(lv, (dd7000*), 0, "ee27000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27000.e");
+ test_class_info(&lv, &cd_ee27000);
+ dp->~ee27000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27000(Test_ee27000, "ee27000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee27000C1Ev();
+extern void _ZN7ee27000D1Ev();
+Name_Map name_map_ee27000[] = {
+ NSPAIR(_ZN7ee27000C1Ev),
+ NSPAIR(_ZN7ee27000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee27000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN7ee270003fooEv();
+static VTBL_ENTRY vtc_ee27000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN7ee270003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee27000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee27000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee27000[] = {
+ {&(_ZTV7ee27000[3]), 3,5},
+ {&(_tg__ZTV6dd7000__7ee27000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee27000[];
+extern VTBL_ENTRY _ZTV7ee27000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27000[];
+Class_Descriptor cd_ee27000 = { "ee27000", // class name
+ bases_ee27000, 4,
+ &(vtc_ee27000[0]), // expected_vtbl_contents
+ &(vtt_ee27000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee27000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37000 : virtual dd7000 {
+ int e;
+ virtual void foo(); // _ZN7ee370003fooEv
+ ~ee37000(); // tgen
+ ee37000(); // tgen
+};
+//SIG(1 ee37000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37000 ::foo(){vfunc_called(this, "_ZN7ee370003fooEv");}
+ee37000 ::~ee37000(){ note_dtor("ee37000", this);} // tgen
+ee37000 ::ee37000(){ note_ctor("ee37000", this);} // tgen
+
+static void Test_ee37000()
+{
+ extern Class_Descriptor cd_ee37000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee37000, buf);
+ ee37000 *dp, &lv = *(dp=new (buf) ee37000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee37000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee37000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee37000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(28,16), "ee37000");
+ check_base_class_offset(lv, (dd7000*), ABISELECT(16,8), "ee37000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37000.e");
+ test_class_info(&lv, &cd_ee37000);
+ dp->~ee37000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37000(Test_ee37000, "ee37000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee37000C1Ev();
+extern void _ZN7ee37000D1Ev();
+Name_Map name_map_ee37000[] = {
+ NSPAIR(_ZN7ee37000C1Ev),
+ NSPAIR(_ZN7ee37000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee37000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37000[];
+extern void _ZN7ee370003fooEv();
+extern void _ZN6dd70003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370003fooEv,_ZTv0_n20_N7ee370003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370003fooEv,_ZThn8_N7ee370003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37000[0]),
+ (VTBL_ENTRY)&_ZN7ee370003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370003fooEv,_ZTv0_n20_N7ee370003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee37000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee37000[] = {
+ {&(_ZTV7ee37000[4]), 4,12},
+ {&(_ZTV7ee37000[10]), 10,12},
+ {&(_tg__ZTV6dd7000__7ee37000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee37000[];
+extern VTBL_ENTRY _ZTV7ee37000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37000[];
+static VTBL_ENTRY alt_thunk_names12[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370003fooEv,_ZTv0_n20_N7ee370003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370003fooEv,_ZThn8_N7ee370003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37000 = { "ee37000", // class name
+ bases_ee37000, 4,
+ &(vtc_ee37000[0]), // expected_vtbl_contents
+ &(vtt_ee37000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee37000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37000),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names12,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47000 : dd7000 {
+ int e;
+ virtual void bar(); // _ZN7ee470003barEv
+ ~ee47000(); // tgen
+ ee47000(); // tgen
+};
+//SIG(1 ee47000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47000 ::bar(){vfunc_called(this, "_ZN7ee470003barEv");}
+ee47000 ::~ee47000(){ note_dtor("ee47000", this);} // tgen
+ee47000 ::ee47000(){ note_ctor("ee47000", this);} // tgen
+
+static void Test_ee47000()
+{
+ extern Class_Descriptor cd_ee47000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee47000, buf);
+ ee47000 *dp, &lv = *(dp=new (buf) ee47000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee47000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee47000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee47000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(16,12), "ee47000");
+ check_base_class_offset(lv, (dd7000*), 0, "ee47000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47000.e");
+ test_class_info(&lv, &cd_ee47000);
+ dp->~ee47000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47000(Test_ee47000, "ee47000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee47000C1Ev();
+extern void _ZN7ee47000D1Ev();
+Name_Map name_map_ee47000[] = {
+ NSPAIR(_ZN7ee47000C1Ev),
+ NSPAIR(_ZN7ee47000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee47000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47000[];
+extern void _ZN7ee470003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_ee47000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47000[0]),
+ (VTBL_ENTRY)&_ZN7ee470003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee47000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee47000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee47000[] = {
+ {&(_ZTV7ee47000[3]), 3,5},
+ {&(_tg__ZTV6dd7000__7ee47000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee47000[];
+extern VTBL_ENTRY _ZTV7ee47000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47000[];
+Class_Descriptor cd_ee47000 = { "ee47000", // class name
+ bases_ee47000, 4,
+ &(vtc_ee47000[0]), // expected_vtbl_contents
+ &(vtt_ee47000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee47000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57000 : virtual dd7000 {
+ int e;
+ virtual void bar(); // _ZN7ee570003barEv
+ ~ee57000(); // tgen
+ ee57000(); // tgen
+};
+//SIG(1 ee57000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57000 ::bar(){vfunc_called(this, "_ZN7ee570003barEv");}
+ee57000 ::~ee57000(){ note_dtor("ee57000", this);} // tgen
+ee57000 ::ee57000(){ note_ctor("ee57000", this);} // tgen
+
+static void Test_ee57000()
+{
+ extern Class_Descriptor cd_ee57000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee57000, buf);
+ ee57000 *dp, &lv = *(dp=new (buf) ee57000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee57000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee57000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee57000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(28,16), "ee57000");
+ check_base_class_offset(lv, (dd7000*), ABISELECT(16,8), "ee57000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57000.e");
+ test_class_info(&lv, &cd_ee57000);
+ dp->~ee57000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57000(Test_ee57000, "ee57000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee57000C1Ev();
+extern void _ZN7ee57000D1Ev();
+Name_Map name_map_ee57000[] = {
+ NSPAIR(_ZN7ee57000C1Ev),
+ NSPAIR(_ZN7ee57000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee57000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57000[];
+extern void _ZN7ee570003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570003barEv,_ZTv0_n16_N7ee570003barEv)();
+extern void ABISELECT(_ZThn16_N7ee570003barEv,_ZThn8_N7ee570003barEv)() __attribute__((weak));
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY vtc_ee57000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57000[0]),
+ (VTBL_ENTRY)&_ZN7ee570003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570003barEv,_ZTv0_n16_N7ee570003barEv),
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee57000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee57000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee57000[] = {
+ {&(_ZTV7ee57000[4]), 4,12},
+ {&(_ZTV7ee57000[10]), 10,12},
+ {&(_tg__ZTV6dd7000__7ee57000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee57000[];
+extern VTBL_ENTRY _ZTV7ee57000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57000[];
+static VTBL_ENTRY alt_thunk_names13[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570003barEv,_ZTv0_n16_N7ee570003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570003barEv,_ZThn8_N7ee570003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57000 = { "ee57000", // class name
+ bases_ee57000, 4,
+ &(vtc_ee57000[0]), // expected_vtbl_contents
+ &(vtt_ee57000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee57000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57000),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names13,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67000 : dd7000 {
+ int e;
+ virtual void foo(); // _ZN7ee670003fooEv
+ virtual void bar(); // _ZN7ee670003barEv
+ ~ee67000(); // tgen
+ ee67000(); // tgen
+};
+//SIG(1 ee67000) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67000 ::foo(){vfunc_called(this, "_ZN7ee670003fooEv");}
+void ee67000 ::bar(){vfunc_called(this, "_ZN7ee670003barEv");}
+ee67000 ::~ee67000(){ note_dtor("ee67000", this);} // tgen
+ee67000 ::ee67000(){ note_ctor("ee67000", this);} // tgen
+
+static void Test_ee67000()
+{
+ extern Class_Descriptor cd_ee67000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee67000, buf);
+ ee67000 *dp, &lv = *(dp=new (buf) ee67000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee67000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(16,12), "ee67000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(16,12), "ee67000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(16,12), "ee67000");
+ check_base_class_offset(lv, (dd7000*), 0, "ee67000");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67000.e");
+ test_class_info(&lv, &cd_ee67000);
+ dp->~ee67000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67000(Test_ee67000, "ee67000", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee67000C1Ev();
+extern void _ZN7ee67000D1Ev();
+Name_Map name_map_ee67000[] = {
+ NSPAIR(_ZN7ee67000C1Ev),
+ NSPAIR(_ZN7ee67000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee67000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67000[];
+extern void _ZN7ee670003barEv();
+extern void _ZN7ee670003fooEv();
+static VTBL_ENTRY vtc_ee67000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67000[0]),
+ (VTBL_ENTRY)&_ZN7ee670003barEv,
+ (VTBL_ENTRY)&_ZN7ee670003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee67000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee67000[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee67000[] = {
+ {&(_ZTV7ee67000[3]), 3,5},
+ {&(_tg__ZTV6dd7000__7ee67000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee67000[];
+extern VTBL_ENTRY _ZTV7ee67000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67000[];
+Class_Descriptor cd_ee67000 = { "ee67000", // class name
+ bases_ee67000, 4,
+ &(vtc_ee67000[0]), // expected_vtbl_contents
+ &(vtt_ee67000[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee67000),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67000),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67000),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77000 : virtual dd7000 {
+ int e;
+ virtual void foo(); // _ZN7ee770003fooEv
+ virtual void bar(); // _ZN7ee770003barEv
+ ~ee77000(); // tgen
+ ee77000(); // tgen
+};
+//SIG(1 ee77000) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77000 ::foo(){vfunc_called(this, "_ZN7ee770003fooEv");}
+void ee77000 ::bar(){vfunc_called(this, "_ZN7ee770003barEv");}
+ee77000 ::~ee77000(){ note_dtor("ee77000", this);} // tgen
+ee77000 ::ee77000(){ note_ctor("ee77000", this);} // tgen
+
+static void Test_ee77000()
+{
+ extern Class_Descriptor cd_ee77000;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee77000, buf);
+ ee77000 *dp, &lv = *(dp=new (buf) ee77000());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee77000)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77000)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc000*), ABISELECT(28,16), "ee77000");
+ check_base_class_offset(lv, (bb00*)(cc000*), ABISELECT(28,16), "ee77000");
+ check_base_class_offset(lv, (cc000*)(dd7000*), ABISELECT(28,16), "ee77000");
+ check_base_class_offset(lv, (dd7000*), ABISELECT(16,8), "ee77000");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77000.e");
+ test_class_info(&lv, &cd_ee77000);
+ dp->~ee77000();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77000(Test_ee77000, "ee77000", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee77000C1Ev();
+extern void _ZN7ee77000D1Ev();
+Name_Map name_map_ee77000[] = {
+ NSPAIR(_ZN7ee77000C1Ev),
+ NSPAIR(_ZN7ee77000D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc000;
+extern VTBL_ENTRY _ZTI5cc000[];
+extern Class_Descriptor cd_dd7000;
+extern VTBL_ENTRY _ZTI6dd7000[];
+extern VTBL_ENTRY _ZTV6dd7000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7000[];
+static Base_Class bases_ee77000[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc000, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7000, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77000[];
+extern void _ZN7ee770003fooEv();
+extern void _ZN7ee770003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770003barEv,_ZTv0_n16_N7ee770003barEv)();
+extern void ABISELECT(_ZThn16_N7ee770003barEv,_ZThn8_N7ee770003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770003fooEv,_ZTv0_n20_N7ee770003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770003fooEv,_ZThn8_N7ee770003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77000[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77000[0]),
+ (VTBL_ENTRY)&_ZN7ee770003fooEv,
+ (VTBL_ENTRY)&_ZN7ee770003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77000[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770003barEv,_ZTv0_n16_N7ee770003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770003fooEv,_ZTv0_n20_N7ee770003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77000[];
+extern void _ZN6dd70003barEv();
+extern void _ZN6dd70003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7000__7ee77000[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7000[0]),
+ (VTBL_ENTRY)&_ZN6dd70003barEv,
+ (VTBL_ENTRY)&_ZN6dd70003fooEv,
+};
+static VTT_ENTRY vtt_ee77000[] = {
+ {&(_ZTV7ee77000[4]), 4,13},
+ {&(_ZTV7ee77000[11]), 11,13},
+ {&(_tg__ZTV6dd7000__7ee77000[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee77000[];
+extern VTBL_ENTRY _ZTV7ee77000[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77000[];
+static VTBL_ENTRY alt_thunk_names14[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770003fooEv,_ZTv0_n20_N7ee770003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770003fooEv,_ZThn8_N7ee770003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770003barEv,_ZTv0_n16_N7ee770003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770003barEv,_ZThn8_N7ee770003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77000 = { "ee77000", // class name
+ bases_ee77000, 4,
+ &(vtc_ee77000[0]), // expected_vtbl_contents
+ &(vtt_ee77000[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee77000),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77000),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77000),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names14,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc100 : virtual bb00 {
+ int c;
+ ~cc100(); // tgen
+ cc100(); // tgen
+};
+//SIG(-1 cc100) C1{ VBC2{ BC3{ Fi} Fi} Fi}
+
+
+cc100 ::~cc100(){ note_dtor("cc100", this);} // tgen
+cc100 ::cc100(){ note_ctor("cc100", this);} // tgen
+
+static void Test_cc100()
+{
+ extern Class_Descriptor cd_cc100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc100, buf);
+ cc100 *dp, &lv = *(dp=new (buf) cc100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(12,8), "cc100");
+ check_base_class_offset(lv, (bb00*), ABISELECT(12,8), "cc100");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc100.c");
+ test_class_info(&lv, &cd_cc100);
+ dp->~cc100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc100(Test_cc100, "cc100", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc100C1Ev();
+extern void _ZN5cc100D1Ev();
+Name_Map name_map_cc100[] = {
+ NSPAIR(_ZN5cc100C1Ev),
+ NSPAIR(_ZN5cc100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc100[];
+static VTBL_ENTRY vtc_cc100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+extern VTBL_ENTRY _ZTV5cc100[];
+static VTT_ENTRY vtt_cc100[] = {
+ {&(_ZTV5cc100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+Class_Descriptor cd_cc100 = { "cc100", // class name
+ bases_cc100, 2,
+ &(vtc_cc100[0]), // expected_vtbl_contents
+ &(vtt_cc100[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc100),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc100),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0100 : cc100 {
+ int d;
+ ~dd0100(); // tgen
+ dd0100(); // tgen
+};
+//SIG(-1 dd0100) C1{ BC2{ VBC3{ BC4{ Fi} Fi} Fi} Fi}
+
+
+dd0100 ::~dd0100(){ note_dtor("dd0100", this);} // tgen
+dd0100 ::dd0100(){ note_ctor("dd0100", this);} // tgen
+
+static void Test_dd0100()
+{
+ extern Class_Descriptor cd_dd0100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0100, buf);
+ dd0100 *dp, &lv = *(dp=new (buf) dd0100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd0100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(16,12), "dd0100");
+ check_base_class_offset(lv, (cc100*), 0, "dd0100");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0100.d");
+ test_class_info(&lv, &cd_dd0100);
+ dp->~dd0100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0100(Test_dd0100, "dd0100", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0100C1Ev();
+extern void _ZN6dd0100D1Ev();
+Name_Map name_map_dd0100[] = {
+ NSPAIR(_ZN6dd0100C1Ev),
+ NSPAIR(_ZN6dd0100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd0100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0100[];
+static VTBL_ENTRY vtc_dd0100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd0100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd0100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd0100[] = {
+ {&(_ZTV6dd0100[3]), 3,3},
+ {&(_tg__ZTV5cc100__6dd0100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+Class_Descriptor cd_dd0100 = { "dd0100", // class name
+ bases_dd0100, 3,
+ &(vtc_dd0100[0]), // expected_vtbl_contents
+ &(vtt_dd0100[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0100),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0100),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00100 : dd0100 {
+ int e;
+ ~ee00100(); // tgen
+ ee00100(); // tgen
+};
+//SIG(1 ee00100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee00100 ::~ee00100(){ note_dtor("ee00100", this);} // tgen
+ee00100 ::ee00100(){ note_ctor("ee00100", this);} // tgen
+
+static void Test_ee00100()
+{
+ extern Class_Descriptor cd_ee00100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00100, buf);
+ ee00100 *dp, &lv = *(dp=new (buf) ee00100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee00100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(20,16), "ee00100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), 0, "ee00100");
+ check_base_class_offset(lv, (dd0100*), 0, "ee00100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00100.e");
+ test_class_info(&lv, &cd_ee00100);
+ dp->~ee00100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00100(Test_ee00100, "ee00100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00100C1Ev();
+extern void _ZN7ee00100D1Ev();
+Name_Map name_map_ee00100[] = {
+ NSPAIR(_ZN7ee00100C1Ev),
+ NSPAIR(_ZN7ee00100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee00100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00100[];
+static VTBL_ENTRY vtc_ee00100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee00100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee00100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee00100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee00100[] = {
+ {&(_ZTV7ee00100[3]), 3,3},
+ {&(_tg__ZTV6dd0100__7ee00100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee00100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee00100[];
+extern VTBL_ENTRY _ZTV7ee00100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00100[];
+Class_Descriptor cd_ee00100 = { "ee00100", // class name
+ bases_ee00100, 4,
+ &(vtc_ee00100[0]), // expected_vtbl_contents
+ &(vtt_ee00100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00100),3, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10100 : virtual dd0100 {
+ int e;
+ ~ee10100(); // tgen
+ ee10100(); // tgen
+};
+//SIG(1 ee10100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee10100 ::~ee10100(){ note_dtor("ee10100", this);} // tgen
+ee10100 ::ee10100(){ note_ctor("ee10100", this);} // tgen
+
+static void Test_ee10100()
+{
+ extern Class_Descriptor cd_ee10100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10100, buf);
+ ee10100 *dp, &lv = *(dp=new (buf) ee10100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee10100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(32,20), "ee10100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), ABISELECT(16,8), "ee10100");
+ check_base_class_offset(lv, (dd0100*), ABISELECT(16,8), "ee10100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10100.e");
+ test_class_info(&lv, &cd_ee10100);
+ dp->~ee10100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10100(Test_ee10100, "ee10100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10100C1Ev();
+extern void _ZN7ee10100D1Ev();
+Name_Map name_map_ee10100[] = {
+ NSPAIR(_ZN7ee10100C1Ev),
+ NSPAIR(_ZN7ee10100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee10100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10100[];
+static VTBL_ENTRY vtc_ee10100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10100[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee10100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee10100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee10100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee10100[] = {
+ {&(_ZTV7ee10100[4]), 4,7},
+ {&(_ZTV7ee10100[7]), 7,7},
+ {&(_tg__ZTV6dd0100__7ee10100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee10100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee10100[];
+extern VTBL_ENTRY _ZTV7ee10100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10100[];
+Class_Descriptor cd_ee10100 = { "ee10100", // class name
+ bases_ee10100, 4,
+ &(vtc_ee10100[0]), // expected_vtbl_contents
+ &(vtt_ee10100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10100),7, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20100 : dd0100 {
+ int e;
+ virtual void foo(); // _ZN7ee201003fooEv
+ ~ee20100(); // tgen
+ ee20100(); // tgen
+};
+//SIG(1 ee20100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee20100 ::foo(){vfunc_called(this, "_ZN7ee201003fooEv");}
+ee20100 ::~ee20100(){ note_dtor("ee20100", this);} // tgen
+ee20100 ::ee20100(){ note_ctor("ee20100", this);} // tgen
+
+static void Test_ee20100()
+{
+ extern Class_Descriptor cd_ee20100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20100, buf);
+ ee20100 *dp, &lv = *(dp=new (buf) ee20100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee20100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(20,16), "ee20100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), 0, "ee20100");
+ check_base_class_offset(lv, (dd0100*), 0, "ee20100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20100.e");
+ test_class_info(&lv, &cd_ee20100);
+ dp->~ee20100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20100(Test_ee20100, "ee20100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20100C1Ev();
+extern void _ZN7ee20100D1Ev();
+Name_Map name_map_ee20100[] = {
+ NSPAIR(_ZN7ee20100C1Ev),
+ NSPAIR(_ZN7ee20100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee20100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20100[];
+extern void _ZN7ee201003fooEv();
+static VTBL_ENTRY vtc_ee20100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20100[0]),
+ (VTBL_ENTRY)&_ZN7ee201003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee20100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee20100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee20100[] = {
+ {&(_ZTV7ee20100[3]), 3,4},
+ {&(_tg__ZTV6dd0100__7ee20100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee20100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee20100[];
+extern VTBL_ENTRY _ZTV7ee20100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20100[];
+Class_Descriptor cd_ee20100 = { "ee20100", // class name
+ bases_ee20100, 4,
+ &(vtc_ee20100[0]), // expected_vtbl_contents
+ &(vtt_ee20100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30100 : virtual dd0100 {
+ int e;
+ virtual void foo(); // _ZN7ee301003fooEv
+ ~ee30100(); // tgen
+ ee30100(); // tgen
+};
+//SIG(1 ee30100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee30100 ::foo(){vfunc_called(this, "_ZN7ee301003fooEv");}
+ee30100 ::~ee30100(){ note_dtor("ee30100", this);} // tgen
+ee30100 ::ee30100(){ note_ctor("ee30100", this);} // tgen
+
+static void Test_ee30100()
+{
+ extern Class_Descriptor cd_ee30100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30100, buf);
+ ee30100 *dp, &lv = *(dp=new (buf) ee30100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee30100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(32,20), "ee30100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), ABISELECT(16,8), "ee30100");
+ check_base_class_offset(lv, (dd0100*), ABISELECT(16,8), "ee30100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30100.e");
+ test_class_info(&lv, &cd_ee30100);
+ dp->~ee30100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30100(Test_ee30100, "ee30100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30100C1Ev();
+extern void _ZN7ee30100D1Ev();
+Name_Map name_map_ee30100[] = {
+ NSPAIR(_ZN7ee30100C1Ev),
+ NSPAIR(_ZN7ee30100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee30100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30100[];
+extern void _ZN7ee301003fooEv();
+static VTBL_ENTRY vtc_ee30100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30100[0]),
+ (VTBL_ENTRY)&_ZN7ee301003fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee30100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee30100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee30100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee30100[] = {
+ {&(_ZTV7ee30100[4]), 4,8},
+ {&(_ZTV7ee30100[8]), 8,8},
+ {&(_tg__ZTV6dd0100__7ee30100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee30100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee30100[];
+extern VTBL_ENTRY _ZTV7ee30100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30100[];
+Class_Descriptor cd_ee30100 = { "ee30100", // class name
+ bases_ee30100, 4,
+ &(vtc_ee30100[0]), // expected_vtbl_contents
+ &(vtt_ee30100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40100 : dd0100 {
+ int e;
+ virtual void bar(); // _ZN7ee401003barEv
+ ~ee40100(); // tgen
+ ee40100(); // tgen
+};
+//SIG(1 ee40100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee40100 ::bar(){vfunc_called(this, "_ZN7ee401003barEv");}
+ee40100 ::~ee40100(){ note_dtor("ee40100", this);} // tgen
+ee40100 ::ee40100(){ note_ctor("ee40100", this);} // tgen
+
+static void Test_ee40100()
+{
+ extern Class_Descriptor cd_ee40100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40100, buf);
+ ee40100 *dp, &lv = *(dp=new (buf) ee40100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee40100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(20,16), "ee40100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), 0, "ee40100");
+ check_base_class_offset(lv, (dd0100*), 0, "ee40100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40100.e");
+ test_class_info(&lv, &cd_ee40100);
+ dp->~ee40100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40100(Test_ee40100, "ee40100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40100C1Ev();
+extern void _ZN7ee40100D1Ev();
+Name_Map name_map_ee40100[] = {
+ NSPAIR(_ZN7ee40100C1Ev),
+ NSPAIR(_ZN7ee40100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee40100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40100[];
+extern void _ZN7ee401003barEv();
+static VTBL_ENTRY vtc_ee40100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40100[0]),
+ (VTBL_ENTRY)&_ZN7ee401003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee40100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee40100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee40100[] = {
+ {&(_ZTV7ee40100[3]), 3,4},
+ {&(_tg__ZTV6dd0100__7ee40100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee40100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee40100[];
+extern VTBL_ENTRY _ZTV7ee40100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40100[];
+Class_Descriptor cd_ee40100 = { "ee40100", // class name
+ bases_ee40100, 4,
+ &(vtc_ee40100[0]), // expected_vtbl_contents
+ &(vtt_ee40100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50100 : virtual dd0100 {
+ int e;
+ virtual void bar(); // _ZN7ee501003barEv
+ ~ee50100(); // tgen
+ ee50100(); // tgen
+};
+//SIG(1 ee50100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee50100 ::bar(){vfunc_called(this, "_ZN7ee501003barEv");}
+ee50100 ::~ee50100(){ note_dtor("ee50100", this);} // tgen
+ee50100 ::ee50100(){ note_ctor("ee50100", this);} // tgen
+
+static void Test_ee50100()
+{
+ extern Class_Descriptor cd_ee50100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50100, buf);
+ ee50100 *dp, &lv = *(dp=new (buf) ee50100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee50100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(32,20), "ee50100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), ABISELECT(16,8), "ee50100");
+ check_base_class_offset(lv, (dd0100*), ABISELECT(16,8), "ee50100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50100.e");
+ test_class_info(&lv, &cd_ee50100);
+ dp->~ee50100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50100(Test_ee50100, "ee50100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50100C1Ev();
+extern void _ZN7ee50100D1Ev();
+Name_Map name_map_ee50100[] = {
+ NSPAIR(_ZN7ee50100C1Ev),
+ NSPAIR(_ZN7ee50100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee50100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50100[];
+extern void _ZN7ee501003barEv();
+static VTBL_ENTRY vtc_ee50100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50100[0]),
+ (VTBL_ENTRY)&_ZN7ee501003barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee50100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee50100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee50100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee50100[] = {
+ {&(_ZTV7ee50100[4]), 4,8},
+ {&(_ZTV7ee50100[8]), 8,8},
+ {&(_tg__ZTV6dd0100__7ee50100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee50100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee50100[];
+extern VTBL_ENTRY _ZTV7ee50100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50100[];
+Class_Descriptor cd_ee50100 = { "ee50100", // class name
+ bases_ee50100, 4,
+ &(vtc_ee50100[0]), // expected_vtbl_contents
+ &(vtt_ee50100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60100 : dd0100 {
+ int e;
+ virtual void foo(); // _ZN7ee601003fooEv
+ virtual void bar(); // _ZN7ee601003barEv
+ ~ee60100(); // tgen
+ ee60100(); // tgen
+};
+//SIG(1 ee60100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60100 ::foo(){vfunc_called(this, "_ZN7ee601003fooEv");}
+void ee60100 ::bar(){vfunc_called(this, "_ZN7ee601003barEv");}
+ee60100 ::~ee60100(){ note_dtor("ee60100", this);} // tgen
+ee60100 ::ee60100(){ note_ctor("ee60100", this);} // tgen
+
+static void Test_ee60100()
+{
+ extern Class_Descriptor cd_ee60100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60100, buf);
+ ee60100 *dp, &lv = *(dp=new (buf) ee60100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee60100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(20,16), "ee60100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), 0, "ee60100");
+ check_base_class_offset(lv, (dd0100*), 0, "ee60100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60100.e");
+ test_class_info(&lv, &cd_ee60100);
+ dp->~ee60100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60100(Test_ee60100, "ee60100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60100C1Ev();
+extern void _ZN7ee60100D1Ev();
+Name_Map name_map_ee60100[] = {
+ NSPAIR(_ZN7ee60100C1Ev),
+ NSPAIR(_ZN7ee60100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee60100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60100[];
+extern void _ZN7ee601003fooEv();
+extern void _ZN7ee601003barEv();
+static VTBL_ENTRY vtc_ee60100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60100[0]),
+ (VTBL_ENTRY)&_ZN7ee601003fooEv,
+ (VTBL_ENTRY)&_ZN7ee601003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee60100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee60100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee60100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee60100[] = {
+ {&(_ZTV7ee60100[3]), 3,5},
+ {&(_tg__ZTV6dd0100__7ee60100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee60100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee60100[];
+extern VTBL_ENTRY _ZTV7ee60100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60100[];
+Class_Descriptor cd_ee60100 = { "ee60100", // class name
+ bases_ee60100, 4,
+ &(vtc_ee60100[0]), // expected_vtbl_contents
+ &(vtt_ee60100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70100 : virtual dd0100 {
+ int e;
+ virtual void foo(); // _ZN7ee701003fooEv
+ virtual void bar(); // _ZN7ee701003barEv
+ ~ee70100(); // tgen
+ ee70100(); // tgen
+};
+//SIG(1 ee70100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70100 ::foo(){vfunc_called(this, "_ZN7ee701003fooEv");}
+void ee70100 ::bar(){vfunc_called(this, "_ZN7ee701003barEv");}
+ee70100 ::~ee70100(){ note_dtor("ee70100", this);} // tgen
+ee70100 ::ee70100(){ note_ctor("ee70100", this);} // tgen
+
+static void Test_ee70100()
+{
+ extern Class_Descriptor cd_ee70100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70100, buf);
+ ee70100 *dp, &lv = *(dp=new (buf) ee70100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee70100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd0100*), ABISELECT(32,20), "ee70100");
+ check_base_class_offset(lv, (cc100*)(dd0100*), ABISELECT(16,8), "ee70100");
+ check_base_class_offset(lv, (dd0100*), ABISELECT(16,8), "ee70100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70100.e");
+ test_class_info(&lv, &cd_ee70100);
+ dp->~ee70100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70100(Test_ee70100, "ee70100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70100C1Ev();
+extern void _ZN7ee70100D1Ev();
+Name_Map name_map_ee70100[] = {
+ NSPAIR(_ZN7ee70100C1Ev),
+ NSPAIR(_ZN7ee70100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd0100;
+extern VTBL_ENTRY _ZTI6dd0100[];
+extern VTBL_ENTRY _ZTV6dd0100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0100[];
+static Base_Class bases_ee70100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70100[];
+extern void _ZN7ee701003fooEv();
+extern void _ZN7ee701003barEv();
+static VTBL_ENTRY vtc_ee70100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70100[0]),
+ (VTBL_ENTRY)&_ZN7ee701003fooEv,
+ (VTBL_ENTRY)&_ZN7ee701003barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee70100[];
+static VTBL_ENTRY _tg__ZTV6dd0100__7ee70100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd0100__7ee70100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee70100[] = {
+ {&(_ZTV7ee70100[4]), 4,9},
+ {&(_ZTV7ee70100[9]), 9,9},
+ {&(_tg__ZTV6dd0100__7ee70100[3]), 3,3},
+ {&(_tg__ZTV5cc1006dd0100__7ee70100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee70100[];
+extern VTBL_ENTRY _ZTV7ee70100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70100[];
+Class_Descriptor cd_ee70100 = { "ee70100", // class name
+ bases_ee70100, 4,
+ &(vtc_ee70100[0]), // expected_vtbl_contents
+ &(vtt_ee70100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1100 : virtual cc100 {
+ int d;
+ ~dd1100(); // tgen
+ dd1100(); // tgen
+};
+//SIG(-1 dd1100) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} Fi} Fi}
+
+
+dd1100 ::~dd1100(){ note_dtor("dd1100", this);} // tgen
+dd1100 ::dd1100(){ note_ctor("dd1100", this);} // tgen
+
+static void Test_dd1100()
+{
+ extern Class_Descriptor cd_dd1100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1100, buf);
+ dd1100 *dp, &lv = *(dp=new (buf) dd1100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd1100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,16), "dd1100");
+ check_base_class_offset(lv, (cc100*), ABISELECT(16,8), "dd1100");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1100.d");
+ test_class_info(&lv, &cd_dd1100);
+ dp->~dd1100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1100(Test_dd1100, "dd1100", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1100C1Ev();
+extern void _ZN6dd1100D1Ev();
+Name_Map name_map_dd1100[] = {
+ NSPAIR(_ZN6dd1100C1Ev),
+ NSPAIR(_ZN6dd1100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd1100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1100[];
+static VTBL_ENTRY vtc_dd1100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd1100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd1100[] = {
+ {&(_ZTV6dd1100[4]), 4,7},
+ {&(_ZTV6dd1100[7]), 7,7},
+ {&(_tg__ZTV5cc100__6dd1100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+Class_Descriptor cd_dd1100 = { "dd1100", // class name
+ bases_dd1100, 3,
+ &(vtc_dd1100[0]), // expected_vtbl_contents
+ &(vtt_dd1100[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1100),7, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1100),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01100 : dd1100 {
+ int e;
+ ~ee01100(); // tgen
+ ee01100(); // tgen
+};
+//SIG(1 ee01100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee01100 ::~ee01100(){ note_dtor("ee01100", this);} // tgen
+ee01100 ::ee01100(){ note_ctor("ee01100", this);} // tgen
+
+static void Test_ee01100()
+{
+ extern Class_Descriptor cd_ee01100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01100, buf);
+ ee01100 *dp, &lv = *(dp=new (buf) ee01100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee01100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee01100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(16,12), "ee01100");
+ check_base_class_offset(lv, (dd1100*), 0, "ee01100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01100.e");
+ test_class_info(&lv, &cd_ee01100);
+ dp->~ee01100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01100(Test_ee01100, "ee01100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01100C1Ev();
+extern void _ZN7ee01100D1Ev();
+Name_Map name_map_ee01100[] = {
+ NSPAIR(_ZN7ee01100C1Ev),
+ NSPAIR(_ZN7ee01100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee01100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01100[];
+static VTBL_ENTRY vtc_ee01100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee01100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee01100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee01100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee01100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee01100[] = {
+ {&(_ZTV7ee01100[4]), 4,7},
+ {&(_tg__ZTV6dd1100__7ee01100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee01100[3]), 3,3},
+ {&(_ZTV7ee01100[7]), 7,7},
+ {&(_tg__ZTV5cc100__7ee01100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee01100[];
+extern VTBL_ENTRY _ZTV7ee01100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01100[];
+Class_Descriptor cd_ee01100 = { "ee01100", // class name
+ bases_ee01100, 4,
+ &(vtc_ee01100[0]), // expected_vtbl_contents
+ &(vtt_ee01100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01100),7, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11100 : virtual dd1100 {
+ int e;
+ ~ee11100(); // tgen
+ ee11100(); // tgen
+};
+//SIG(1 ee11100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} Fi}
+
+
+ee11100 ::~ee11100(){ note_dtor("ee11100", this);} // tgen
+ee11100 ::ee11100(){ note_ctor("ee11100", this);} // tgen
+
+static void Test_ee11100()
+{
+ extern Class_Descriptor cd_ee11100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11100, buf);
+ ee11100 *dp, &lv = *(dp=new (buf) ee11100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee11100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee11100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(32,16), "ee11100");
+ check_base_class_offset(lv, (dd1100*), ABISELECT(16,8), "ee11100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11100.e");
+ test_class_info(&lv, &cd_ee11100);
+ dp->~ee11100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11100(Test_ee11100, "ee11100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11100C1Ev();
+extern void _ZN7ee11100D1Ev();
+Name_Map name_map_ee11100[] = {
+ NSPAIR(_ZN7ee11100C1Ev),
+ NSPAIR(_ZN7ee11100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee11100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11100[];
+static VTBL_ENTRY vtc_ee11100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11100[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee11100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee11100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee11100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee11100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee11100[] = {
+ {&(_ZTV7ee11100[5]), 5,12},
+ {&(_ZTV7ee11100[9]), 9,12},
+ {&(_ZTV7ee11100[12]), 12,12},
+ {&(_tg__ZTV6dd1100__7ee11100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee11100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee11100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee11100[];
+extern VTBL_ENTRY _ZTV7ee11100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11100[];
+Class_Descriptor cd_ee11100 = { "ee11100", // class name
+ bases_ee11100, 4,
+ &(vtc_ee11100[0]), // expected_vtbl_contents
+ &(vtt_ee11100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11100),12, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21100 : dd1100 {
+ int e;
+ virtual void foo(); // _ZN7ee211003fooEv
+ ~ee21100(); // tgen
+ ee21100(); // tgen
+};
+//SIG(1 ee21100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee21100 ::foo(){vfunc_called(this, "_ZN7ee211003fooEv");}
+ee21100 ::~ee21100(){ note_dtor("ee21100", this);} // tgen
+ee21100 ::ee21100(){ note_ctor("ee21100", this);} // tgen
+
+static void Test_ee21100()
+{
+ extern Class_Descriptor cd_ee21100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21100, buf);
+ ee21100 *dp, &lv = *(dp=new (buf) ee21100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee21100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee21100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(16,12), "ee21100");
+ check_base_class_offset(lv, (dd1100*), 0, "ee21100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21100.e");
+ test_class_info(&lv, &cd_ee21100);
+ dp->~ee21100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21100(Test_ee21100, "ee21100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21100C1Ev();
+extern void _ZN7ee21100D1Ev();
+Name_Map name_map_ee21100[] = {
+ NSPAIR(_ZN7ee21100C1Ev),
+ NSPAIR(_ZN7ee21100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee21100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21100[];
+extern void _ZN7ee211003fooEv();
+static VTBL_ENTRY vtc_ee21100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21100[0]),
+ (VTBL_ENTRY)&_ZN7ee211003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee21100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee21100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee21100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee21100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee21100[] = {
+ {&(_ZTV7ee21100[4]), 4,8},
+ {&(_tg__ZTV6dd1100__7ee21100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee21100[3]), 3,3},
+ {&(_ZTV7ee21100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee21100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee21100[];
+extern VTBL_ENTRY _ZTV7ee21100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21100[];
+Class_Descriptor cd_ee21100 = { "ee21100", // class name
+ bases_ee21100, 4,
+ &(vtc_ee21100[0]), // expected_vtbl_contents
+ &(vtt_ee21100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31100 : virtual dd1100 {
+ int e;
+ virtual void foo(); // _ZN7ee311003fooEv
+ ~ee31100(); // tgen
+ ee31100(); // tgen
+};
+//SIG(1 ee31100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee31100 ::foo(){vfunc_called(this, "_ZN7ee311003fooEv");}
+ee31100 ::~ee31100(){ note_dtor("ee31100", this);} // tgen
+ee31100 ::ee31100(){ note_ctor("ee31100", this);} // tgen
+
+static void Test_ee31100()
+{
+ extern Class_Descriptor cd_ee31100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31100, buf);
+ ee31100 *dp, &lv = *(dp=new (buf) ee31100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee31100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee31100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(32,16), "ee31100");
+ check_base_class_offset(lv, (dd1100*), ABISELECT(16,8), "ee31100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31100.e");
+ test_class_info(&lv, &cd_ee31100);
+ dp->~ee31100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31100(Test_ee31100, "ee31100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31100C1Ev();
+extern void _ZN7ee31100D1Ev();
+Name_Map name_map_ee31100[] = {
+ NSPAIR(_ZN7ee31100C1Ev),
+ NSPAIR(_ZN7ee31100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee31100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31100[];
+extern void _ZN7ee311003fooEv();
+static VTBL_ENTRY vtc_ee31100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31100[0]),
+ (VTBL_ENTRY)&_ZN7ee311003fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee31100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee31100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee31100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee31100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee31100[] = {
+ {&(_ZTV7ee31100[5]), 5,13},
+ {&(_ZTV7ee31100[10]), 10,13},
+ {&(_ZTV7ee31100[13]), 13,13},
+ {&(_tg__ZTV6dd1100__7ee31100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee31100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee31100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee31100[];
+extern VTBL_ENTRY _ZTV7ee31100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31100[];
+Class_Descriptor cd_ee31100 = { "ee31100", // class name
+ bases_ee31100, 4,
+ &(vtc_ee31100[0]), // expected_vtbl_contents
+ &(vtt_ee31100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31100),13, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41100 : dd1100 {
+ int e;
+ virtual void bar(); // _ZN7ee411003barEv
+ ~ee41100(); // tgen
+ ee41100(); // tgen
+};
+//SIG(1 ee41100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee41100 ::bar(){vfunc_called(this, "_ZN7ee411003barEv");}
+ee41100 ::~ee41100(){ note_dtor("ee41100", this);} // tgen
+ee41100 ::ee41100(){ note_ctor("ee41100", this);} // tgen
+
+static void Test_ee41100()
+{
+ extern Class_Descriptor cd_ee41100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41100, buf);
+ ee41100 *dp, &lv = *(dp=new (buf) ee41100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee41100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee41100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(16,12), "ee41100");
+ check_base_class_offset(lv, (dd1100*), 0, "ee41100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41100.e");
+ test_class_info(&lv, &cd_ee41100);
+ dp->~ee41100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41100(Test_ee41100, "ee41100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41100C1Ev();
+extern void _ZN7ee41100D1Ev();
+Name_Map name_map_ee41100[] = {
+ NSPAIR(_ZN7ee41100C1Ev),
+ NSPAIR(_ZN7ee41100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee41100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41100[];
+extern void _ZN7ee411003barEv();
+static VTBL_ENTRY vtc_ee41100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41100[0]),
+ (VTBL_ENTRY)&_ZN7ee411003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee41100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee41100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee41100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee41100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee41100[] = {
+ {&(_ZTV7ee41100[4]), 4,8},
+ {&(_tg__ZTV6dd1100__7ee41100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee41100[3]), 3,3},
+ {&(_ZTV7ee41100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee41100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee41100[];
+extern VTBL_ENTRY _ZTV7ee41100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41100[];
+Class_Descriptor cd_ee41100 = { "ee41100", // class name
+ bases_ee41100, 4,
+ &(vtc_ee41100[0]), // expected_vtbl_contents
+ &(vtt_ee41100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51100 : virtual dd1100 {
+ int e;
+ virtual void bar(); // _ZN7ee511003barEv
+ ~ee51100(); // tgen
+ ee51100(); // tgen
+};
+//SIG(1 ee51100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee51100 ::bar(){vfunc_called(this, "_ZN7ee511003barEv");}
+ee51100 ::~ee51100(){ note_dtor("ee51100", this);} // tgen
+ee51100 ::ee51100(){ note_ctor("ee51100", this);} // tgen
+
+static void Test_ee51100()
+{
+ extern Class_Descriptor cd_ee51100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51100, buf);
+ ee51100 *dp, &lv = *(dp=new (buf) ee51100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee51100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee51100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(32,16), "ee51100");
+ check_base_class_offset(lv, (dd1100*), ABISELECT(16,8), "ee51100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51100.e");
+ test_class_info(&lv, &cd_ee51100);
+ dp->~ee51100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51100(Test_ee51100, "ee51100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51100C1Ev();
+extern void _ZN7ee51100D1Ev();
+Name_Map name_map_ee51100[] = {
+ NSPAIR(_ZN7ee51100C1Ev),
+ NSPAIR(_ZN7ee51100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee51100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51100[];
+extern void _ZN7ee511003barEv();
+static VTBL_ENTRY vtc_ee51100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51100[0]),
+ (VTBL_ENTRY)&_ZN7ee511003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee51100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee51100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee51100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee51100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee51100[] = {
+ {&(_ZTV7ee51100[5]), 5,13},
+ {&(_ZTV7ee51100[10]), 10,13},
+ {&(_ZTV7ee51100[13]), 13,13},
+ {&(_tg__ZTV6dd1100__7ee51100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee51100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee51100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee51100[];
+extern VTBL_ENTRY _ZTV7ee51100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51100[];
+Class_Descriptor cd_ee51100 = { "ee51100", // class name
+ bases_ee51100, 4,
+ &(vtc_ee51100[0]), // expected_vtbl_contents
+ &(vtt_ee51100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51100),13, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61100 : dd1100 {
+ int e;
+ virtual void foo(); // _ZN7ee611003fooEv
+ virtual void bar(); // _ZN7ee611003barEv
+ ~ee61100(); // tgen
+ ee61100(); // tgen
+};
+//SIG(1 ee61100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61100 ::foo(){vfunc_called(this, "_ZN7ee611003fooEv");}
+void ee61100 ::bar(){vfunc_called(this, "_ZN7ee611003barEv");}
+ee61100 ::~ee61100(){ note_dtor("ee61100", this);} // tgen
+ee61100 ::ee61100(){ note_ctor("ee61100", this);} // tgen
+
+static void Test_ee61100()
+{
+ extern Class_Descriptor cd_ee61100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61100, buf);
+ ee61100 *dp, &lv = *(dp=new (buf) ee61100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee61100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee61100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(16,12), "ee61100");
+ check_base_class_offset(lv, (dd1100*), 0, "ee61100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61100.e");
+ test_class_info(&lv, &cd_ee61100);
+ dp->~ee61100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61100(Test_ee61100, "ee61100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61100C1Ev();
+extern void _ZN7ee61100D1Ev();
+Name_Map name_map_ee61100[] = {
+ NSPAIR(_ZN7ee61100C1Ev),
+ NSPAIR(_ZN7ee61100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee61100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61100[];
+extern void _ZN7ee611003fooEv();
+extern void _ZN7ee611003barEv();
+static VTBL_ENTRY vtc_ee61100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61100[0]),
+ (VTBL_ENTRY)&_ZN7ee611003fooEv,
+ (VTBL_ENTRY)&_ZN7ee611003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee61100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee61100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee61100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee61100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee61100[] = {
+ {&(_ZTV7ee61100[4]), 4,9},
+ {&(_tg__ZTV6dd1100__7ee61100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee61100[3]), 3,3},
+ {&(_ZTV7ee61100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee61100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee61100[];
+extern VTBL_ENTRY _ZTV7ee61100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61100[];
+Class_Descriptor cd_ee61100 = { "ee61100", // class name
+ bases_ee61100, 4,
+ &(vtc_ee61100[0]), // expected_vtbl_contents
+ &(vtt_ee61100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71100 : virtual dd1100 {
+ int e;
+ virtual void foo(); // _ZN7ee711003fooEv
+ virtual void bar(); // _ZN7ee711003barEv
+ ~ee71100(); // tgen
+ ee71100(); // tgen
+};
+//SIG(1 ee71100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71100 ::foo(){vfunc_called(this, "_ZN7ee711003fooEv");}
+void ee71100 ::bar(){vfunc_called(this, "_ZN7ee711003barEv");}
+ee71100 ::~ee71100(){ note_dtor("ee71100", this);} // tgen
+ee71100 ::ee71100(){ note_ctor("ee71100", this);} // tgen
+
+static void Test_ee71100()
+{
+ extern Class_Descriptor cd_ee71100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71100, buf);
+ ee71100 *dp, &lv = *(dp=new (buf) ee71100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee71100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee71100");
+ check_base_class_offset(lv, (cc100*)(dd1100*), ABISELECT(32,16), "ee71100");
+ check_base_class_offset(lv, (dd1100*), ABISELECT(16,8), "ee71100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71100.e");
+ test_class_info(&lv, &cd_ee71100);
+ dp->~ee71100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71100(Test_ee71100, "ee71100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71100C1Ev();
+extern void _ZN7ee71100D1Ev();
+Name_Map name_map_ee71100[] = {
+ NSPAIR(_ZN7ee71100C1Ev),
+ NSPAIR(_ZN7ee71100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd1100;
+extern VTBL_ENTRY _ZTI6dd1100[];
+extern VTBL_ENTRY _ZTV6dd1100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1100[];
+static Base_Class bases_ee71100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1100, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71100[];
+extern void _ZN7ee711003fooEv();
+extern void _ZN7ee711003barEv();
+static VTBL_ENTRY vtc_ee71100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71100[0]),
+ (VTBL_ENTRY)&_ZN7ee711003fooEv,
+ (VTBL_ENTRY)&_ZN7ee711003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71100[0]),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee71100[];
+static VTBL_ENTRY _tg__ZTV6dd1100__7ee71100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd1100__7ee71100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee71100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee71100[] = {
+ {&(_ZTV7ee71100[5]), 5,14},
+ {&(_ZTV7ee71100[11]), 11,14},
+ {&(_ZTV7ee71100[14]), 14,14},
+ {&(_tg__ZTV6dd1100__7ee71100[4]), 4,4},
+ {&(_tg__ZTV5cc100__6dd1100__7ee71100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee71100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee71100[];
+extern VTBL_ENTRY _ZTV7ee71100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71100[];
+Class_Descriptor cd_ee71100 = { "ee71100", // class name
+ bases_ee71100, 4,
+ &(vtc_ee71100[0]), // expected_vtbl_contents
+ &(vtt_ee71100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71100),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2100 : cc100 {
+ int d;
+ virtual void foo(); // _ZN6dd21003fooEv
+ ~dd2100(); // tgen
+ dd2100(); // tgen
+};
+//SIG(-1 dd2100) C1{ BC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd2100 ::foo(){vfunc_called(this, "_ZN6dd21003fooEv");}
+dd2100 ::~dd2100(){ note_dtor("dd2100", this);} // tgen
+dd2100 ::dd2100(){ note_ctor("dd2100", this);} // tgen
+
+static void Test_dd2100()
+{
+ extern Class_Descriptor cd_dd2100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2100, buf);
+ dd2100 *dp, &lv = *(dp=new (buf) dd2100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd2100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(16,12), "dd2100");
+ check_base_class_offset(lv, (cc100*), 0, "dd2100");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2100.d");
+ test_class_info(&lv, &cd_dd2100);
+ dp->~dd2100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2100(Test_dd2100, "dd2100", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2100C1Ev();
+extern void _ZN6dd2100D1Ev();
+Name_Map name_map_dd2100[] = {
+ NSPAIR(_ZN6dd2100C1Ev),
+ NSPAIR(_ZN6dd2100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd2100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY vtc_dd2100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd2100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd2100[] = {
+ {&(_ZTV6dd2100[3]), 3,4},
+ {&(_tg__ZTV5cc100__6dd2100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+Class_Descriptor cd_dd2100 = { "dd2100", // class name
+ bases_dd2100, 3,
+ &(vtc_dd2100[0]), // expected_vtbl_contents
+ &(vtt_dd2100[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2100),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02100 : dd2100 {
+ int e;
+ ~ee02100(); // tgen
+ ee02100(); // tgen
+};
+//SIG(1 ee02100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee02100 ::~ee02100(){ note_dtor("ee02100", this);} // tgen
+ee02100 ::ee02100(){ note_ctor("ee02100", this);} // tgen
+
+static void Test_ee02100()
+{
+ extern Class_Descriptor cd_ee02100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02100, buf);
+ ee02100 *dp, &lv = *(dp=new (buf) ee02100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee02100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(20,16), "ee02100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), 0, "ee02100");
+ check_base_class_offset(lv, (dd2100*), 0, "ee02100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02100.e");
+ test_class_info(&lv, &cd_ee02100);
+ dp->~ee02100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02100(Test_ee02100, "ee02100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02100C1Ev();
+extern void _ZN7ee02100D1Ev();
+Name_Map name_map_ee02100[] = {
+ NSPAIR(_ZN7ee02100C1Ev),
+ NSPAIR(_ZN7ee02100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee02100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY vtc_ee02100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee02100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee02100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee02100[] = {
+ {&(_ZTV7ee02100[3]), 3,4},
+ {&(_tg__ZTV6dd2100__7ee02100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee02100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee02100[];
+extern VTBL_ENTRY _ZTV7ee02100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02100[];
+Class_Descriptor cd_ee02100 = { "ee02100", // class name
+ bases_ee02100, 4,
+ &(vtc_ee02100[0]), // expected_vtbl_contents
+ &(vtt_ee02100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12100 : virtual dd2100 {
+ int e;
+ ~ee12100(); // tgen
+ ee12100(); // tgen
+};
+//SIG(1 ee12100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee12100 ::~ee12100(){ note_dtor("ee12100", this);} // tgen
+ee12100 ::ee12100(){ note_ctor("ee12100", this);} // tgen
+
+static void Test_ee12100()
+{
+ extern Class_Descriptor cd_ee12100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12100, buf);
+ ee12100 *dp, &lv = *(dp=new (buf) ee12100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee12100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(32,20), "ee12100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), ABISELECT(16,8), "ee12100");
+ check_base_class_offset(lv, (dd2100*), ABISELECT(16,8), "ee12100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12100.e");
+ test_class_info(&lv, &cd_ee12100);
+ dp->~ee12100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12100(Test_ee12100, "ee12100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12100C1Ev();
+extern void _ZN7ee12100D1Ev();
+Name_Map name_map_ee12100[] = {
+ NSPAIR(_ZN7ee12100C1Ev),
+ NSPAIR(_ZN7ee12100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee12100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY vtc_ee12100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12100[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee12100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee12100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee12100[] = {
+ {&(_ZTV7ee12100[4]), 4,9},
+ {&(_ZTV7ee12100[8]), 8,9},
+ {&(_tg__ZTV6dd2100__7ee12100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee12100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee12100[];
+extern VTBL_ENTRY _ZTV7ee12100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12100[];
+Class_Descriptor cd_ee12100 = { "ee12100", // class name
+ bases_ee12100, 4,
+ &(vtc_ee12100[0]), // expected_vtbl_contents
+ &(vtt_ee12100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22100 : dd2100 {
+ int e;
+ virtual void foo(); // _ZN7ee221003fooEv
+ ~ee22100(); // tgen
+ ee22100(); // tgen
+};
+//SIG(1 ee22100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22100 ::foo(){vfunc_called(this, "_ZN7ee221003fooEv");}
+ee22100 ::~ee22100(){ note_dtor("ee22100", this);} // tgen
+ee22100 ::ee22100(){ note_ctor("ee22100", this);} // tgen
+
+static void Test_ee22100()
+{
+ extern Class_Descriptor cd_ee22100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22100, buf);
+ ee22100 *dp, &lv = *(dp=new (buf) ee22100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee22100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(20,16), "ee22100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), 0, "ee22100");
+ check_base_class_offset(lv, (dd2100*), 0, "ee22100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22100.e");
+ test_class_info(&lv, &cd_ee22100);
+ dp->~ee22100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22100(Test_ee22100, "ee22100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22100C1Ev();
+extern void _ZN7ee22100D1Ev();
+Name_Map name_map_ee22100[] = {
+ NSPAIR(_ZN7ee22100C1Ev),
+ NSPAIR(_ZN7ee22100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee22100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22100[];
+extern void _ZN7ee221003fooEv();
+static VTBL_ENTRY vtc_ee22100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22100[0]),
+ (VTBL_ENTRY)&_ZN7ee221003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee22100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee22100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee22100[] = {
+ {&(_ZTV7ee22100[3]), 3,4},
+ {&(_tg__ZTV6dd2100__7ee22100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee22100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee22100[];
+extern VTBL_ENTRY _ZTV7ee22100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22100[];
+Class_Descriptor cd_ee22100 = { "ee22100", // class name
+ bases_ee22100, 4,
+ &(vtc_ee22100[0]), // expected_vtbl_contents
+ &(vtt_ee22100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32100 : virtual dd2100 {
+ int e;
+ virtual void foo(); // _ZN7ee321003fooEv
+ ~ee32100(); // tgen
+ ee32100(); // tgen
+};
+//SIG(1 ee32100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32100 ::foo(){vfunc_called(this, "_ZN7ee321003fooEv");}
+ee32100 ::~ee32100(){ note_dtor("ee32100", this);} // tgen
+ee32100 ::ee32100(){ note_ctor("ee32100", this);} // tgen
+
+static void Test_ee32100()
+{
+ extern Class_Descriptor cd_ee32100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32100, buf);
+ ee32100 *dp, &lv = *(dp=new (buf) ee32100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee32100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(32,20), "ee32100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), ABISELECT(16,8), "ee32100");
+ check_base_class_offset(lv, (dd2100*), ABISELECT(16,8), "ee32100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32100.e");
+ test_class_info(&lv, &cd_ee32100);
+ dp->~ee32100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32100(Test_ee32100, "ee32100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32100C1Ev();
+extern void _ZN7ee32100D1Ev();
+Name_Map name_map_ee32100[] = {
+ NSPAIR(_ZN7ee32100C1Ev),
+ NSPAIR(_ZN7ee32100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee32100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32100[];
+extern void _ZN7ee321003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321003fooEv,_ZTv0_n16_N7ee321003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321003fooEv,_ZThn8_N7ee321003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32100[0]),
+ (VTBL_ENTRY)&_ZN7ee321003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321003fooEv,_ZTv0_n16_N7ee321003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee32100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee32100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee32100[] = {
+ {&(_ZTV7ee32100[4]), 4,10},
+ {&(_ZTV7ee32100[9]), 9,10},
+ {&(_tg__ZTV6dd2100__7ee32100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee32100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee32100[];
+extern VTBL_ENTRY _ZTV7ee32100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32100[];
+static VTBL_ENTRY alt_thunk_names15[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321003fooEv,_ZTv0_n16_N7ee321003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321003fooEv,_ZThn8_N7ee321003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32100 = { "ee32100", // class name
+ bases_ee32100, 4,
+ &(vtc_ee32100[0]), // expected_vtbl_contents
+ &(vtt_ee32100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32100),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names15,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42100 : dd2100 {
+ int e;
+ virtual void bar(); // _ZN7ee421003barEv
+ ~ee42100(); // tgen
+ ee42100(); // tgen
+};
+//SIG(1 ee42100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42100 ::bar(){vfunc_called(this, "_ZN7ee421003barEv");}
+ee42100 ::~ee42100(){ note_dtor("ee42100", this);} // tgen
+ee42100 ::ee42100(){ note_ctor("ee42100", this);} // tgen
+
+static void Test_ee42100()
+{
+ extern Class_Descriptor cd_ee42100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42100, buf);
+ ee42100 *dp, &lv = *(dp=new (buf) ee42100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee42100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(20,16), "ee42100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), 0, "ee42100");
+ check_base_class_offset(lv, (dd2100*), 0, "ee42100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42100.e");
+ test_class_info(&lv, &cd_ee42100);
+ dp->~ee42100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42100(Test_ee42100, "ee42100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42100C1Ev();
+extern void _ZN7ee42100D1Ev();
+Name_Map name_map_ee42100[] = {
+ NSPAIR(_ZN7ee42100C1Ev),
+ NSPAIR(_ZN7ee42100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee42100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42100[];
+extern void _ZN6dd21003fooEv();
+extern void _ZN7ee421003barEv();
+static VTBL_ENTRY vtc_ee42100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+ (VTBL_ENTRY)&_ZN7ee421003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee42100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee42100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee42100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee42100[] = {
+ {&(_ZTV7ee42100[3]), 3,5},
+ {&(_tg__ZTV6dd2100__7ee42100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee42100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee42100[];
+extern VTBL_ENTRY _ZTV7ee42100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42100[];
+Class_Descriptor cd_ee42100 = { "ee42100", // class name
+ bases_ee42100, 4,
+ &(vtc_ee42100[0]), // expected_vtbl_contents
+ &(vtt_ee42100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52100 : virtual dd2100 {
+ int e;
+ virtual void bar(); // _ZN7ee521003barEv
+ ~ee52100(); // tgen
+ ee52100(); // tgen
+};
+//SIG(1 ee52100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52100 ::bar(){vfunc_called(this, "_ZN7ee521003barEv");}
+ee52100 ::~ee52100(){ note_dtor("ee52100", this);} // tgen
+ee52100 ::ee52100(){ note_ctor("ee52100", this);} // tgen
+
+static void Test_ee52100()
+{
+ extern Class_Descriptor cd_ee52100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52100, buf);
+ ee52100 *dp, &lv = *(dp=new (buf) ee52100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee52100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(32,20), "ee52100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), ABISELECT(16,8), "ee52100");
+ check_base_class_offset(lv, (dd2100*), ABISELECT(16,8), "ee52100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52100.e");
+ test_class_info(&lv, &cd_ee52100);
+ dp->~ee52100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52100(Test_ee52100, "ee52100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52100C1Ev();
+extern void _ZN7ee52100D1Ev();
+Name_Map name_map_ee52100[] = {
+ NSPAIR(_ZN7ee52100C1Ev),
+ NSPAIR(_ZN7ee52100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee52100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52100[];
+extern void _ZN7ee521003barEv();
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY vtc_ee52100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52100[0]),
+ (VTBL_ENTRY)&_ZN7ee521003barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee52100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee52100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee52100[] = {
+ {&(_ZTV7ee52100[4]), 4,10},
+ {&(_ZTV7ee52100[9]), 9,10},
+ {&(_tg__ZTV6dd2100__7ee52100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee52100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee52100[];
+extern VTBL_ENTRY _ZTV7ee52100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52100[];
+Class_Descriptor cd_ee52100 = { "ee52100", // class name
+ bases_ee52100, 4,
+ &(vtc_ee52100[0]), // expected_vtbl_contents
+ &(vtt_ee52100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52100),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62100 : dd2100 {
+ int e;
+ virtual void foo(); // _ZN7ee621003fooEv
+ virtual void bar(); // _ZN7ee621003barEv
+ ~ee62100(); // tgen
+ ee62100(); // tgen
+};
+//SIG(1 ee62100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62100 ::foo(){vfunc_called(this, "_ZN7ee621003fooEv");}
+void ee62100 ::bar(){vfunc_called(this, "_ZN7ee621003barEv");}
+ee62100 ::~ee62100(){ note_dtor("ee62100", this);} // tgen
+ee62100 ::ee62100(){ note_ctor("ee62100", this);} // tgen
+
+static void Test_ee62100()
+{
+ extern Class_Descriptor cd_ee62100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62100, buf);
+ ee62100 *dp, &lv = *(dp=new (buf) ee62100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee62100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(20,16), "ee62100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), 0, "ee62100");
+ check_base_class_offset(lv, (dd2100*), 0, "ee62100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62100.e");
+ test_class_info(&lv, &cd_ee62100);
+ dp->~ee62100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62100(Test_ee62100, "ee62100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62100C1Ev();
+extern void _ZN7ee62100D1Ev();
+Name_Map name_map_ee62100[] = {
+ NSPAIR(_ZN7ee62100C1Ev),
+ NSPAIR(_ZN7ee62100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee62100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62100[];
+extern void _ZN7ee621003fooEv();
+extern void _ZN7ee621003barEv();
+static VTBL_ENTRY vtc_ee62100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62100[0]),
+ (VTBL_ENTRY)&_ZN7ee621003fooEv,
+ (VTBL_ENTRY)&_ZN7ee621003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee62100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee62100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee62100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee62100[] = {
+ {&(_ZTV7ee62100[3]), 3,5},
+ {&(_tg__ZTV6dd2100__7ee62100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee62100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee62100[];
+extern VTBL_ENTRY _ZTV7ee62100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62100[];
+Class_Descriptor cd_ee62100 = { "ee62100", // class name
+ bases_ee62100, 4,
+ &(vtc_ee62100[0]), // expected_vtbl_contents
+ &(vtt_ee62100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72100 : virtual dd2100 {
+ int e;
+ virtual void foo(); // _ZN7ee721003fooEv
+ virtual void bar(); // _ZN7ee721003barEv
+ ~ee72100(); // tgen
+ ee72100(); // tgen
+};
+//SIG(1 ee72100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72100 ::foo(){vfunc_called(this, "_ZN7ee721003fooEv");}
+void ee72100 ::bar(){vfunc_called(this, "_ZN7ee721003barEv");}
+ee72100 ::~ee72100(){ note_dtor("ee72100", this);} // tgen
+ee72100 ::ee72100(){ note_ctor("ee72100", this);} // tgen
+
+static void Test_ee72100()
+{
+ extern Class_Descriptor cd_ee72100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72100, buf);
+ ee72100 *dp, &lv = *(dp=new (buf) ee72100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee72100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd2100*), ABISELECT(32,20), "ee72100");
+ check_base_class_offset(lv, (cc100*)(dd2100*), ABISELECT(16,8), "ee72100");
+ check_base_class_offset(lv, (dd2100*), ABISELECT(16,8), "ee72100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72100.e");
+ test_class_info(&lv, &cd_ee72100);
+ dp->~ee72100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72100(Test_ee72100, "ee72100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72100C1Ev();
+extern void _ZN7ee72100D1Ev();
+Name_Map name_map_ee72100[] = {
+ NSPAIR(_ZN7ee72100C1Ev),
+ NSPAIR(_ZN7ee72100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd2100;
+extern VTBL_ENTRY _ZTI6dd2100[];
+extern VTBL_ENTRY _ZTV6dd2100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2100[];
+static Base_Class bases_ee72100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72100[];
+extern void _ZN7ee721003fooEv();
+extern void _ZN7ee721003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721003fooEv,_ZTv0_n16_N7ee721003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721003fooEv,_ZThn8_N7ee721003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72100[0]),
+ (VTBL_ENTRY)&_ZN7ee721003fooEv,
+ (VTBL_ENTRY)&_ZN7ee721003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721003fooEv,_ZTv0_n16_N7ee721003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72100[];
+extern void _ZN6dd21003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2100__7ee72100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2100[0]),
+ (VTBL_ENTRY)&_ZN6dd21003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd2100__7ee72100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee72100[] = {
+ {&(_ZTV7ee72100[4]), 4,11},
+ {&(_ZTV7ee72100[10]), 10,11},
+ {&(_tg__ZTV6dd2100__7ee72100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd2100__7ee72100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee72100[];
+extern VTBL_ENTRY _ZTV7ee72100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72100[];
+static VTBL_ENTRY alt_thunk_names16[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721003fooEv,_ZTv0_n16_N7ee721003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721003fooEv,_ZThn8_N7ee721003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72100 = { "ee72100", // class name
+ bases_ee72100, 4,
+ &(vtc_ee72100[0]), // expected_vtbl_contents
+ &(vtt_ee72100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72100),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names16,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3100 : virtual cc100 {
+ int d;
+ virtual void foo(); // _ZN6dd31003fooEv
+ ~dd3100(); // tgen
+ dd3100(); // tgen
+};
+//SIG(-1 dd3100) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd3100 ::foo(){vfunc_called(this, "_ZN6dd31003fooEv");}
+dd3100 ::~dd3100(){ note_dtor("dd3100", this);} // tgen
+dd3100 ::dd3100(){ note_ctor("dd3100", this);} // tgen
+
+static void Test_dd3100()
+{
+ extern Class_Descriptor cd_dd3100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3100, buf);
+ dd3100 *dp, &lv = *(dp=new (buf) dd3100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd3100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,16), "dd3100");
+ check_base_class_offset(lv, (cc100*), ABISELECT(16,8), "dd3100");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3100.d");
+ test_class_info(&lv, &cd_dd3100);
+ dp->~dd3100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3100(Test_dd3100, "dd3100", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3100C1Ev();
+extern void _ZN6dd3100D1Ev();
+Name_Map name_map_dd3100[] = {
+ NSPAIR(_ZN6dd3100C1Ev),
+ NSPAIR(_ZN6dd3100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd3100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY vtc_dd3100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd3100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd3100[] = {
+ {&(_ZTV6dd3100[4]), 4,8},
+ {&(_ZTV6dd3100[8]), 8,8},
+ {&(_tg__ZTV5cc100__6dd3100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+Class_Descriptor cd_dd3100 = { "dd3100", // class name
+ bases_dd3100, 3,
+ &(vtc_dd3100[0]), // expected_vtbl_contents
+ &(vtt_dd3100[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3100),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03100 : dd3100 {
+ int e;
+ ~ee03100(); // tgen
+ ee03100(); // tgen
+};
+//SIG(1 ee03100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee03100 ::~ee03100(){ note_dtor("ee03100", this);} // tgen
+ee03100 ::ee03100(){ note_ctor("ee03100", this);} // tgen
+
+static void Test_ee03100()
+{
+ extern Class_Descriptor cd_ee03100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03100, buf);
+ ee03100 *dp, &lv = *(dp=new (buf) ee03100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee03100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee03100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(16,12), "ee03100");
+ check_base_class_offset(lv, (dd3100*), 0, "ee03100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03100.e");
+ test_class_info(&lv, &cd_ee03100);
+ dp->~ee03100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03100(Test_ee03100, "ee03100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03100C1Ev();
+extern void _ZN7ee03100D1Ev();
+Name_Map name_map_ee03100[] = {
+ NSPAIR(_ZN7ee03100C1Ev),
+ NSPAIR(_ZN7ee03100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee03100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY vtc_ee03100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee03100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee03100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee03100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee03100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee03100[] = {
+ {&(_ZTV7ee03100[4]), 4,8},
+ {&(_tg__ZTV6dd3100__7ee03100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee03100[3]), 3,3},
+ {&(_ZTV7ee03100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee03100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee03100[];
+extern VTBL_ENTRY _ZTV7ee03100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03100[];
+Class_Descriptor cd_ee03100 = { "ee03100", // class name
+ bases_ee03100, 4,
+ &(vtc_ee03100[0]), // expected_vtbl_contents
+ &(vtt_ee03100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13100 : virtual dd3100 {
+ int e;
+ ~ee13100(); // tgen
+ ee13100(); // tgen
+};
+//SIG(1 ee13100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee13100 ::~ee13100(){ note_dtor("ee13100", this);} // tgen
+ee13100 ::ee13100(){ note_ctor("ee13100", this);} // tgen
+
+static void Test_ee13100()
+{
+ extern Class_Descriptor cd_ee13100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13100, buf);
+ ee13100 *dp, &lv = *(dp=new (buf) ee13100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee13100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee13100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(32,16), "ee13100");
+ check_base_class_offset(lv, (dd3100*), ABISELECT(16,8), "ee13100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13100.e");
+ test_class_info(&lv, &cd_ee13100);
+ dp->~ee13100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13100(Test_ee13100, "ee13100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13100C1Ev();
+extern void _ZN7ee13100D1Ev();
+Name_Map name_map_ee13100[] = {
+ NSPAIR(_ZN7ee13100C1Ev),
+ NSPAIR(_ZN7ee13100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee13100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY vtc_ee13100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13100[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee13100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee13100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee13100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee13100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee13100[] = {
+ {&(_ZTV7ee13100[5]), 5,14},
+ {&(_ZTV7ee13100[10]), 10,14},
+ {&(_ZTV7ee13100[14]), 14,14},
+ {&(_tg__ZTV6dd3100__7ee13100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee13100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee13100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee13100[];
+extern VTBL_ENTRY _ZTV7ee13100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13100[];
+Class_Descriptor cd_ee13100 = { "ee13100", // class name
+ bases_ee13100, 4,
+ &(vtc_ee13100[0]), // expected_vtbl_contents
+ &(vtt_ee13100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13100),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23100 : dd3100 {
+ int e;
+ virtual void foo(); // _ZN7ee231003fooEv
+ ~ee23100(); // tgen
+ ee23100(); // tgen
+};
+//SIG(1 ee23100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23100 ::foo(){vfunc_called(this, "_ZN7ee231003fooEv");}
+ee23100 ::~ee23100(){ note_dtor("ee23100", this);} // tgen
+ee23100 ::ee23100(){ note_ctor("ee23100", this);} // tgen
+
+static void Test_ee23100()
+{
+ extern Class_Descriptor cd_ee23100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23100, buf);
+ ee23100 *dp, &lv = *(dp=new (buf) ee23100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee23100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee23100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(16,12), "ee23100");
+ check_base_class_offset(lv, (dd3100*), 0, "ee23100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23100.e");
+ test_class_info(&lv, &cd_ee23100);
+ dp->~ee23100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23100(Test_ee23100, "ee23100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23100C1Ev();
+extern void _ZN7ee23100D1Ev();
+Name_Map name_map_ee23100[] = {
+ NSPAIR(_ZN7ee23100C1Ev),
+ NSPAIR(_ZN7ee23100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee23100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23100[];
+extern void _ZN7ee231003fooEv();
+static VTBL_ENTRY vtc_ee23100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23100[0]),
+ (VTBL_ENTRY)&_ZN7ee231003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee23100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee23100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee23100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee23100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee23100[] = {
+ {&(_ZTV7ee23100[4]), 4,8},
+ {&(_tg__ZTV6dd3100__7ee23100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee23100[3]), 3,3},
+ {&(_ZTV7ee23100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee23100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee23100[];
+extern VTBL_ENTRY _ZTV7ee23100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23100[];
+Class_Descriptor cd_ee23100 = { "ee23100", // class name
+ bases_ee23100, 4,
+ &(vtc_ee23100[0]), // expected_vtbl_contents
+ &(vtt_ee23100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33100 : virtual dd3100 {
+ int e;
+ virtual void foo(); // _ZN7ee331003fooEv
+ ~ee33100(); // tgen
+ ee33100(); // tgen
+};
+//SIG(1 ee33100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33100 ::foo(){vfunc_called(this, "_ZN7ee331003fooEv");}
+ee33100 ::~ee33100(){ note_dtor("ee33100", this);} // tgen
+ee33100 ::ee33100(){ note_ctor("ee33100", this);} // tgen
+
+static void Test_ee33100()
+{
+ extern Class_Descriptor cd_ee33100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33100, buf);
+ ee33100 *dp, &lv = *(dp=new (buf) ee33100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee33100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee33100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(32,16), "ee33100");
+ check_base_class_offset(lv, (dd3100*), ABISELECT(16,8), "ee33100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33100.e");
+ test_class_info(&lv, &cd_ee33100);
+ dp->~ee33100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33100(Test_ee33100, "ee33100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33100C1Ev();
+extern void _ZN7ee33100D1Ev();
+Name_Map name_map_ee33100[] = {
+ NSPAIR(_ZN7ee33100C1Ev),
+ NSPAIR(_ZN7ee33100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee33100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33100[];
+extern void _ZN7ee331003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331003fooEv,_ZTv0_n20_N7ee331003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331003fooEv,_ZThn8_N7ee331003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33100[0]),
+ (VTBL_ENTRY)&_ZN7ee331003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331003fooEv,_ZTv0_n20_N7ee331003fooEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee33100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee33100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee33100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee33100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee33100[] = {
+ {&(_ZTV7ee33100[5]), 5,15},
+ {&(_ZTV7ee33100[11]), 11,15},
+ {&(_ZTV7ee33100[15]), 15,15},
+ {&(_tg__ZTV6dd3100__7ee33100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee33100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee33100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee33100[];
+extern VTBL_ENTRY _ZTV7ee33100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33100[];
+static VTBL_ENTRY alt_thunk_names17[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331003fooEv,_ZTv0_n20_N7ee331003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331003fooEv,_ZThn8_N7ee331003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33100 = { "ee33100", // class name
+ bases_ee33100, 4,
+ &(vtc_ee33100[0]), // expected_vtbl_contents
+ &(vtt_ee33100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33100),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names17,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43100 : dd3100 {
+ int e;
+ virtual void bar(); // _ZN7ee431003barEv
+ ~ee43100(); // tgen
+ ee43100(); // tgen
+};
+//SIG(1 ee43100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43100 ::bar(){vfunc_called(this, "_ZN7ee431003barEv");}
+ee43100 ::~ee43100(){ note_dtor("ee43100", this);} // tgen
+ee43100 ::ee43100(){ note_ctor("ee43100", this);} // tgen
+
+static void Test_ee43100()
+{
+ extern Class_Descriptor cd_ee43100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43100, buf);
+ ee43100 *dp, &lv = *(dp=new (buf) ee43100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee43100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee43100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(16,12), "ee43100");
+ check_base_class_offset(lv, (dd3100*), 0, "ee43100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43100.e");
+ test_class_info(&lv, &cd_ee43100);
+ dp->~ee43100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43100(Test_ee43100, "ee43100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43100C1Ev();
+extern void _ZN7ee43100D1Ev();
+Name_Map name_map_ee43100[] = {
+ NSPAIR(_ZN7ee43100C1Ev),
+ NSPAIR(_ZN7ee43100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee43100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43100[];
+extern void _ZN6dd31003fooEv();
+extern void _ZN7ee431003barEv();
+static VTBL_ENTRY vtc_ee43100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ (VTBL_ENTRY)&_ZN7ee431003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee43100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee43100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee43100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee43100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee43100[] = {
+ {&(_ZTV7ee43100[4]), 4,9},
+ {&(_tg__ZTV6dd3100__7ee43100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee43100[3]), 3,3},
+ {&(_ZTV7ee43100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee43100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee43100[];
+extern VTBL_ENTRY _ZTV7ee43100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43100[];
+Class_Descriptor cd_ee43100 = { "ee43100", // class name
+ bases_ee43100, 4,
+ &(vtc_ee43100[0]), // expected_vtbl_contents
+ &(vtt_ee43100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53100 : virtual dd3100 {
+ int e;
+ virtual void bar(); // _ZN7ee531003barEv
+ ~ee53100(); // tgen
+ ee53100(); // tgen
+};
+//SIG(1 ee53100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53100 ::bar(){vfunc_called(this, "_ZN7ee531003barEv");}
+ee53100 ::~ee53100(){ note_dtor("ee53100", this);} // tgen
+ee53100 ::ee53100(){ note_ctor("ee53100", this);} // tgen
+
+static void Test_ee53100()
+{
+ extern Class_Descriptor cd_ee53100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53100, buf);
+ ee53100 *dp, &lv = *(dp=new (buf) ee53100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee53100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee53100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(32,16), "ee53100");
+ check_base_class_offset(lv, (dd3100*), ABISELECT(16,8), "ee53100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53100.e");
+ test_class_info(&lv, &cd_ee53100);
+ dp->~ee53100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53100(Test_ee53100, "ee53100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53100C1Ev();
+extern void _ZN7ee53100D1Ev();
+Name_Map name_map_ee53100[] = {
+ NSPAIR(_ZN7ee53100C1Ev),
+ NSPAIR(_ZN7ee53100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee53100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53100[];
+extern void _ZN7ee531003barEv();
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY vtc_ee53100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53100[0]),
+ (VTBL_ENTRY)&_ZN7ee531003barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee53100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee53100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee53100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee53100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee53100[] = {
+ {&(_ZTV7ee53100[5]), 5,15},
+ {&(_ZTV7ee53100[11]), 11,15},
+ {&(_ZTV7ee53100[15]), 15,15},
+ {&(_tg__ZTV6dd3100__7ee53100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee53100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee53100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee53100[];
+extern VTBL_ENTRY _ZTV7ee53100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53100[];
+Class_Descriptor cd_ee53100 = { "ee53100", // class name
+ bases_ee53100, 4,
+ &(vtc_ee53100[0]), // expected_vtbl_contents
+ &(vtt_ee53100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53100),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63100 : dd3100 {
+ int e;
+ virtual void foo(); // _ZN7ee631003fooEv
+ virtual void bar(); // _ZN7ee631003barEv
+ ~ee63100(); // tgen
+ ee63100(); // tgen
+};
+//SIG(1 ee63100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63100 ::foo(){vfunc_called(this, "_ZN7ee631003fooEv");}
+void ee63100 ::bar(){vfunc_called(this, "_ZN7ee631003barEv");}
+ee63100 ::~ee63100(){ note_dtor("ee63100", this);} // tgen
+ee63100 ::ee63100(){ note_ctor("ee63100", this);} // tgen
+
+static void Test_ee63100()
+{
+ extern Class_Descriptor cd_ee63100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63100, buf);
+ ee63100 *dp, &lv = *(dp=new (buf) ee63100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee63100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee63100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(16,12), "ee63100");
+ check_base_class_offset(lv, (dd3100*), 0, "ee63100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63100.e");
+ test_class_info(&lv, &cd_ee63100);
+ dp->~ee63100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63100(Test_ee63100, "ee63100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63100C1Ev();
+extern void _ZN7ee63100D1Ev();
+Name_Map name_map_ee63100[] = {
+ NSPAIR(_ZN7ee63100C1Ev),
+ NSPAIR(_ZN7ee63100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee63100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63100[];
+extern void _ZN7ee631003fooEv();
+extern void _ZN7ee631003barEv();
+static VTBL_ENTRY vtc_ee63100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63100[0]),
+ (VTBL_ENTRY)&_ZN7ee631003fooEv,
+ (VTBL_ENTRY)&_ZN7ee631003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee63100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee63100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee63100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee63100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee63100[] = {
+ {&(_ZTV7ee63100[4]), 4,9},
+ {&(_tg__ZTV6dd3100__7ee63100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee63100[3]), 3,3},
+ {&(_ZTV7ee63100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee63100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee63100[];
+extern VTBL_ENTRY _ZTV7ee63100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63100[];
+Class_Descriptor cd_ee63100 = { "ee63100", // class name
+ bases_ee63100, 4,
+ &(vtc_ee63100[0]), // expected_vtbl_contents
+ &(vtt_ee63100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73100 : virtual dd3100 {
+ int e;
+ virtual void foo(); // _ZN7ee731003fooEv
+ virtual void bar(); // _ZN7ee731003barEv
+ ~ee73100(); // tgen
+ ee73100(); // tgen
+};
+//SIG(1 ee73100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73100 ::foo(){vfunc_called(this, "_ZN7ee731003fooEv");}
+void ee73100 ::bar(){vfunc_called(this, "_ZN7ee731003barEv");}
+ee73100 ::~ee73100(){ note_dtor("ee73100", this);} // tgen
+ee73100 ::ee73100(){ note_ctor("ee73100", this);} // tgen
+
+static void Test_ee73100()
+{
+ extern Class_Descriptor cd_ee73100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73100, buf);
+ ee73100 *dp, &lv = *(dp=new (buf) ee73100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee73100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee73100");
+ check_base_class_offset(lv, (cc100*)(dd3100*), ABISELECT(32,16), "ee73100");
+ check_base_class_offset(lv, (dd3100*), ABISELECT(16,8), "ee73100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73100.e");
+ test_class_info(&lv, &cd_ee73100);
+ dp->~ee73100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73100(Test_ee73100, "ee73100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73100C1Ev();
+extern void _ZN7ee73100D1Ev();
+Name_Map name_map_ee73100[] = {
+ NSPAIR(_ZN7ee73100C1Ev),
+ NSPAIR(_ZN7ee73100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd3100;
+extern VTBL_ENTRY _ZTI6dd3100[];
+extern VTBL_ENTRY _ZTV6dd3100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3100[];
+static Base_Class bases_ee73100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3100, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73100[];
+extern void _ZN7ee731003fooEv();
+extern void _ZN7ee731003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731003fooEv,_ZTv0_n20_N7ee731003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731003fooEv,_ZThn8_N7ee731003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73100[0]),
+ (VTBL_ENTRY)&_ZN7ee731003fooEv,
+ (VTBL_ENTRY)&_ZN7ee731003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731003fooEv,_ZTv0_n20_N7ee731003fooEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee73100[];
+extern void _ZN6dd31003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3100__7ee73100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+ (VTBL_ENTRY)&_ZN6dd31003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd3100__7ee73100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee73100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee73100[] = {
+ {&(_ZTV7ee73100[5]), 5,16},
+ {&(_ZTV7ee73100[12]), 12,16},
+ {&(_ZTV7ee73100[16]), 16,16},
+ {&(_tg__ZTV6dd3100__7ee73100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd3100__7ee73100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee73100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee73100[];
+extern VTBL_ENTRY _ZTV7ee73100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73100[];
+static VTBL_ENTRY alt_thunk_names18[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731003fooEv,_ZTv0_n20_N7ee731003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731003fooEv,_ZThn8_N7ee731003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73100 = { "ee73100", // class name
+ bases_ee73100, 4,
+ &(vtc_ee73100[0]), // expected_vtbl_contents
+ &(vtt_ee73100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73100),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names18,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4100 : cc100 {
+ int d;
+ virtual void bar(); // _ZN6dd41003barEv
+ ~dd4100(); // tgen
+ dd4100(); // tgen
+};
+//SIG(-1 dd4100) C1{ BC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd4100 ::bar(){vfunc_called(this, "_ZN6dd41003barEv");}
+dd4100 ::~dd4100(){ note_dtor("dd4100", this);} // tgen
+dd4100 ::dd4100(){ note_ctor("dd4100", this);} // tgen
+
+static void Test_dd4100()
+{
+ extern Class_Descriptor cd_dd4100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4100, buf);
+ dd4100 *dp, &lv = *(dp=new (buf) dd4100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd4100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(16,12), "dd4100");
+ check_base_class_offset(lv, (cc100*), 0, "dd4100");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4100.d");
+ test_class_info(&lv, &cd_dd4100);
+ dp->~dd4100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4100(Test_dd4100, "dd4100", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4100C1Ev();
+extern void _ZN6dd4100D1Ev();
+Name_Map name_map_dd4100[] = {
+ NSPAIR(_ZN6dd4100C1Ev),
+ NSPAIR(_ZN6dd4100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd4100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY vtc_dd4100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd4100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd4100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd4100[] = {
+ {&(_ZTV6dd4100[3]), 3,4},
+ {&(_tg__ZTV5cc100__6dd4100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+Class_Descriptor cd_dd4100 = { "dd4100", // class name
+ bases_dd4100, 3,
+ &(vtc_dd4100[0]), // expected_vtbl_contents
+ &(vtt_dd4100[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4100),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04100 : dd4100 {
+ int e;
+ ~ee04100(); // tgen
+ ee04100(); // tgen
+};
+//SIG(1 ee04100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee04100 ::~ee04100(){ note_dtor("ee04100", this);} // tgen
+ee04100 ::ee04100(){ note_ctor("ee04100", this);} // tgen
+
+static void Test_ee04100()
+{
+ extern Class_Descriptor cd_ee04100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04100, buf);
+ ee04100 *dp, &lv = *(dp=new (buf) ee04100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee04100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(20,16), "ee04100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), 0, "ee04100");
+ check_base_class_offset(lv, (dd4100*), 0, "ee04100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04100.e");
+ test_class_info(&lv, &cd_ee04100);
+ dp->~ee04100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04100(Test_ee04100, "ee04100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04100C1Ev();
+extern void _ZN7ee04100D1Ev();
+Name_Map name_map_ee04100[] = {
+ NSPAIR(_ZN7ee04100C1Ev),
+ NSPAIR(_ZN7ee04100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee04100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY vtc_ee04100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee04100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee04100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee04100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee04100[] = {
+ {&(_ZTV7ee04100[3]), 3,4},
+ {&(_tg__ZTV6dd4100__7ee04100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee04100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee04100[];
+extern VTBL_ENTRY _ZTV7ee04100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04100[];
+Class_Descriptor cd_ee04100 = { "ee04100", // class name
+ bases_ee04100, 4,
+ &(vtc_ee04100[0]), // expected_vtbl_contents
+ &(vtt_ee04100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14100 : virtual dd4100 {
+ int e;
+ ~ee14100(); // tgen
+ ee14100(); // tgen
+};
+//SIG(1 ee14100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee14100 ::~ee14100(){ note_dtor("ee14100", this);} // tgen
+ee14100 ::ee14100(){ note_ctor("ee14100", this);} // tgen
+
+static void Test_ee14100()
+{
+ extern Class_Descriptor cd_ee14100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14100, buf);
+ ee14100 *dp, &lv = *(dp=new (buf) ee14100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee14100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(32,20), "ee14100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), ABISELECT(16,8), "ee14100");
+ check_base_class_offset(lv, (dd4100*), ABISELECT(16,8), "ee14100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14100.e");
+ test_class_info(&lv, &cd_ee14100);
+ dp->~ee14100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14100(Test_ee14100, "ee14100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14100C1Ev();
+extern void _ZN7ee14100D1Ev();
+Name_Map name_map_ee14100[] = {
+ NSPAIR(_ZN7ee14100C1Ev),
+ NSPAIR(_ZN7ee14100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee14100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY vtc_ee14100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14100[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee14100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee14100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee14100[] = {
+ {&(_ZTV7ee14100[4]), 4,9},
+ {&(_ZTV7ee14100[8]), 8,9},
+ {&(_tg__ZTV6dd4100__7ee14100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee14100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee14100[];
+extern VTBL_ENTRY _ZTV7ee14100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14100[];
+Class_Descriptor cd_ee14100 = { "ee14100", // class name
+ bases_ee14100, 4,
+ &(vtc_ee14100[0]), // expected_vtbl_contents
+ &(vtt_ee14100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24100 : dd4100 {
+ int e;
+ virtual void foo(); // _ZN7ee241003fooEv
+ ~ee24100(); // tgen
+ ee24100(); // tgen
+};
+//SIG(1 ee24100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24100 ::foo(){vfunc_called(this, "_ZN7ee241003fooEv");}
+ee24100 ::~ee24100(){ note_dtor("ee24100", this);} // tgen
+ee24100 ::ee24100(){ note_ctor("ee24100", this);} // tgen
+
+static void Test_ee24100()
+{
+ extern Class_Descriptor cd_ee24100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24100, buf);
+ ee24100 *dp, &lv = *(dp=new (buf) ee24100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee24100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(20,16), "ee24100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), 0, "ee24100");
+ check_base_class_offset(lv, (dd4100*), 0, "ee24100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24100.e");
+ test_class_info(&lv, &cd_ee24100);
+ dp->~ee24100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24100(Test_ee24100, "ee24100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24100C1Ev();
+extern void _ZN7ee24100D1Ev();
+Name_Map name_map_ee24100[] = {
+ NSPAIR(_ZN7ee24100C1Ev),
+ NSPAIR(_ZN7ee24100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee24100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24100[];
+extern void _ZN6dd41003barEv();
+extern void _ZN7ee241003fooEv();
+static VTBL_ENTRY vtc_ee24100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+ (VTBL_ENTRY)&_ZN7ee241003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee24100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee24100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee24100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee24100[] = {
+ {&(_ZTV7ee24100[3]), 3,5},
+ {&(_tg__ZTV6dd4100__7ee24100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee24100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee24100[];
+extern VTBL_ENTRY _ZTV7ee24100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24100[];
+Class_Descriptor cd_ee24100 = { "ee24100", // class name
+ bases_ee24100, 4,
+ &(vtc_ee24100[0]), // expected_vtbl_contents
+ &(vtt_ee24100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34100 : virtual dd4100 {
+ int e;
+ virtual void foo(); // _ZN7ee341003fooEv
+ ~ee34100(); // tgen
+ ee34100(); // tgen
+};
+//SIG(1 ee34100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34100 ::foo(){vfunc_called(this, "_ZN7ee341003fooEv");}
+ee34100 ::~ee34100(){ note_dtor("ee34100", this);} // tgen
+ee34100 ::ee34100(){ note_ctor("ee34100", this);} // tgen
+
+static void Test_ee34100()
+{
+ extern Class_Descriptor cd_ee34100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34100, buf);
+ ee34100 *dp, &lv = *(dp=new (buf) ee34100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee34100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(32,20), "ee34100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), ABISELECT(16,8), "ee34100");
+ check_base_class_offset(lv, (dd4100*), ABISELECT(16,8), "ee34100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34100.e");
+ test_class_info(&lv, &cd_ee34100);
+ dp->~ee34100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34100(Test_ee34100, "ee34100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34100C1Ev();
+extern void _ZN7ee34100D1Ev();
+Name_Map name_map_ee34100[] = {
+ NSPAIR(_ZN7ee34100C1Ev),
+ NSPAIR(_ZN7ee34100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee34100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34100[];
+extern void _ZN7ee341003fooEv();
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY vtc_ee34100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34100[0]),
+ (VTBL_ENTRY)&_ZN7ee341003fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee34100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee34100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee34100[] = {
+ {&(_ZTV7ee34100[4]), 4,10},
+ {&(_ZTV7ee34100[9]), 9,10},
+ {&(_tg__ZTV6dd4100__7ee34100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee34100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee34100[];
+extern VTBL_ENTRY _ZTV7ee34100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34100[];
+Class_Descriptor cd_ee34100 = { "ee34100", // class name
+ bases_ee34100, 4,
+ &(vtc_ee34100[0]), // expected_vtbl_contents
+ &(vtt_ee34100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34100),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44100 : dd4100 {
+ int e;
+ virtual void bar(); // _ZN7ee441003barEv
+ ~ee44100(); // tgen
+ ee44100(); // tgen
+};
+//SIG(1 ee44100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44100 ::bar(){vfunc_called(this, "_ZN7ee441003barEv");}
+ee44100 ::~ee44100(){ note_dtor("ee44100", this);} // tgen
+ee44100 ::ee44100(){ note_ctor("ee44100", this);} // tgen
+
+static void Test_ee44100()
+{
+ extern Class_Descriptor cd_ee44100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44100, buf);
+ ee44100 *dp, &lv = *(dp=new (buf) ee44100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee44100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(20,16), "ee44100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), 0, "ee44100");
+ check_base_class_offset(lv, (dd4100*), 0, "ee44100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44100.e");
+ test_class_info(&lv, &cd_ee44100);
+ dp->~ee44100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44100(Test_ee44100, "ee44100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44100C1Ev();
+extern void _ZN7ee44100D1Ev();
+Name_Map name_map_ee44100[] = {
+ NSPAIR(_ZN7ee44100C1Ev),
+ NSPAIR(_ZN7ee44100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee44100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44100[];
+extern void _ZN7ee441003barEv();
+static VTBL_ENTRY vtc_ee44100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44100[0]),
+ (VTBL_ENTRY)&_ZN7ee441003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee44100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee44100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee44100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee44100[] = {
+ {&(_ZTV7ee44100[3]), 3,4},
+ {&(_tg__ZTV6dd4100__7ee44100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee44100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee44100[];
+extern VTBL_ENTRY _ZTV7ee44100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44100[];
+Class_Descriptor cd_ee44100 = { "ee44100", // class name
+ bases_ee44100, 4,
+ &(vtc_ee44100[0]), // expected_vtbl_contents
+ &(vtt_ee44100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44100),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54100 : virtual dd4100 {
+ int e;
+ virtual void bar(); // _ZN7ee541003barEv
+ ~ee54100(); // tgen
+ ee54100(); // tgen
+};
+//SIG(1 ee54100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54100 ::bar(){vfunc_called(this, "_ZN7ee541003barEv");}
+ee54100 ::~ee54100(){ note_dtor("ee54100", this);} // tgen
+ee54100 ::ee54100(){ note_ctor("ee54100", this);} // tgen
+
+static void Test_ee54100()
+{
+ extern Class_Descriptor cd_ee54100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54100, buf);
+ ee54100 *dp, &lv = *(dp=new (buf) ee54100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee54100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(32,20), "ee54100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), ABISELECT(16,8), "ee54100");
+ check_base_class_offset(lv, (dd4100*), ABISELECT(16,8), "ee54100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54100.e");
+ test_class_info(&lv, &cd_ee54100);
+ dp->~ee54100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54100(Test_ee54100, "ee54100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54100C1Ev();
+extern void _ZN7ee54100D1Ev();
+Name_Map name_map_ee54100[] = {
+ NSPAIR(_ZN7ee54100C1Ev),
+ NSPAIR(_ZN7ee54100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee54100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54100[];
+extern void _ZN7ee541003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541003barEv,_ZTv0_n16_N7ee541003barEv)();
+extern void ABISELECT(_ZThn16_N7ee541003barEv,_ZThn8_N7ee541003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54100[0]),
+ (VTBL_ENTRY)&_ZN7ee541003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541003barEv,_ZTv0_n16_N7ee541003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee54100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee54100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee54100[] = {
+ {&(_ZTV7ee54100[4]), 4,10},
+ {&(_ZTV7ee54100[9]), 9,10},
+ {&(_tg__ZTV6dd4100__7ee54100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee54100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee54100[];
+extern VTBL_ENTRY _ZTV7ee54100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54100[];
+static VTBL_ENTRY alt_thunk_names19[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541003barEv,_ZTv0_n16_N7ee541003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541003barEv,_ZThn8_N7ee541003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54100 = { "ee54100", // class name
+ bases_ee54100, 4,
+ &(vtc_ee54100[0]), // expected_vtbl_contents
+ &(vtt_ee54100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54100),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names19,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64100 : dd4100 {
+ int e;
+ virtual void foo(); // _ZN7ee641003fooEv
+ virtual void bar(); // _ZN7ee641003barEv
+ ~ee64100(); // tgen
+ ee64100(); // tgen
+};
+//SIG(1 ee64100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64100 ::foo(){vfunc_called(this, "_ZN7ee641003fooEv");}
+void ee64100 ::bar(){vfunc_called(this, "_ZN7ee641003barEv");}
+ee64100 ::~ee64100(){ note_dtor("ee64100", this);} // tgen
+ee64100 ::ee64100(){ note_ctor("ee64100", this);} // tgen
+
+static void Test_ee64100()
+{
+ extern Class_Descriptor cd_ee64100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64100, buf);
+ ee64100 *dp, &lv = *(dp=new (buf) ee64100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee64100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(20,16), "ee64100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), 0, "ee64100");
+ check_base_class_offset(lv, (dd4100*), 0, "ee64100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64100.e");
+ test_class_info(&lv, &cd_ee64100);
+ dp->~ee64100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64100(Test_ee64100, "ee64100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64100C1Ev();
+extern void _ZN7ee64100D1Ev();
+Name_Map name_map_ee64100[] = {
+ NSPAIR(_ZN7ee64100C1Ev),
+ NSPAIR(_ZN7ee64100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee64100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64100[];
+extern void _ZN7ee641003barEv();
+extern void _ZN7ee641003fooEv();
+static VTBL_ENTRY vtc_ee64100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64100[0]),
+ (VTBL_ENTRY)&_ZN7ee641003barEv,
+ (VTBL_ENTRY)&_ZN7ee641003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee64100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee64100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee64100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee64100[] = {
+ {&(_ZTV7ee64100[3]), 3,5},
+ {&(_tg__ZTV6dd4100__7ee64100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee64100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee64100[];
+extern VTBL_ENTRY _ZTV7ee64100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64100[];
+Class_Descriptor cd_ee64100 = { "ee64100", // class name
+ bases_ee64100, 4,
+ &(vtc_ee64100[0]), // expected_vtbl_contents
+ &(vtt_ee64100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74100 : virtual dd4100 {
+ int e;
+ virtual void foo(); // _ZN7ee741003fooEv
+ virtual void bar(); // _ZN7ee741003barEv
+ ~ee74100(); // tgen
+ ee74100(); // tgen
+};
+//SIG(1 ee74100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74100 ::foo(){vfunc_called(this, "_ZN7ee741003fooEv");}
+void ee74100 ::bar(){vfunc_called(this, "_ZN7ee741003barEv");}
+ee74100 ::~ee74100(){ note_dtor("ee74100", this);} // tgen
+ee74100 ::ee74100(){ note_ctor("ee74100", this);} // tgen
+
+static void Test_ee74100()
+{
+ extern Class_Descriptor cd_ee74100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74100, buf);
+ ee74100 *dp, &lv = *(dp=new (buf) ee74100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee74100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd4100*), ABISELECT(32,20), "ee74100");
+ check_base_class_offset(lv, (cc100*)(dd4100*), ABISELECT(16,8), "ee74100");
+ check_base_class_offset(lv, (dd4100*), ABISELECT(16,8), "ee74100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74100.e");
+ test_class_info(&lv, &cd_ee74100);
+ dp->~ee74100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74100(Test_ee74100, "ee74100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74100C1Ev();
+extern void _ZN7ee74100D1Ev();
+Name_Map name_map_ee74100[] = {
+ NSPAIR(_ZN7ee74100C1Ev),
+ NSPAIR(_ZN7ee74100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd4100;
+extern VTBL_ENTRY _ZTI6dd4100[];
+extern VTBL_ENTRY _ZTV6dd4100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4100[];
+static Base_Class bases_ee74100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74100[];
+extern void _ZN7ee741003fooEv();
+extern void _ZN7ee741003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741003barEv,_ZTv0_n16_N7ee741003barEv)();
+extern void ABISELECT(_ZThn16_N7ee741003barEv,_ZThn8_N7ee741003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74100[0]),
+ (VTBL_ENTRY)&_ZN7ee741003fooEv,
+ (VTBL_ENTRY)&_ZN7ee741003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741003barEv,_ZTv0_n16_N7ee741003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74100[];
+extern void _ZN6dd41003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4100__7ee74100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4100[0]),
+ (VTBL_ENTRY)&_ZN6dd41003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd4100__7ee74100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee74100[] = {
+ {&(_ZTV7ee74100[4]), 4,11},
+ {&(_ZTV7ee74100[10]), 10,11},
+ {&(_tg__ZTV6dd4100__7ee74100[3]), 3,4},
+ {&(_tg__ZTV5cc1006dd4100__7ee74100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee74100[];
+extern VTBL_ENTRY _ZTV7ee74100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74100[];
+static VTBL_ENTRY alt_thunk_names20[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741003barEv,_ZTv0_n16_N7ee741003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741003barEv,_ZThn8_N7ee741003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74100 = { "ee74100", // class name
+ bases_ee74100, 4,
+ &(vtc_ee74100[0]), // expected_vtbl_contents
+ &(vtt_ee74100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74100),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names20,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5100 : virtual cc100 {
+ int d;
+ virtual void bar(); // _ZN6dd51003barEv
+ ~dd5100(); // tgen
+ dd5100(); // tgen
+};
+//SIG(-1 dd5100) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 Fi}
+
+
+void dd5100 ::bar(){vfunc_called(this, "_ZN6dd51003barEv");}
+dd5100 ::~dd5100(){ note_dtor("dd5100", this);} // tgen
+dd5100 ::dd5100(){ note_ctor("dd5100", this);} // tgen
+
+static void Test_dd5100()
+{
+ extern Class_Descriptor cd_dd5100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5100, buf);
+ dd5100 *dp, &lv = *(dp=new (buf) dd5100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd5100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,16), "dd5100");
+ check_base_class_offset(lv, (cc100*), ABISELECT(16,8), "dd5100");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5100.d");
+ test_class_info(&lv, &cd_dd5100);
+ dp->~dd5100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5100(Test_dd5100, "dd5100", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5100C1Ev();
+extern void _ZN6dd5100D1Ev();
+Name_Map name_map_dd5100[] = {
+ NSPAIR(_ZN6dd5100C1Ev),
+ NSPAIR(_ZN6dd5100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd5100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY vtc_dd5100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd5100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd5100[] = {
+ {&(_ZTV6dd5100[4]), 4,8},
+ {&(_ZTV6dd5100[8]), 8,8},
+ {&(_tg__ZTV5cc100__6dd5100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+Class_Descriptor cd_dd5100 = { "dd5100", // class name
+ bases_dd5100, 3,
+ &(vtc_dd5100[0]), // expected_vtbl_contents
+ &(vtt_dd5100[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5100),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05100 : dd5100 {
+ int e;
+ ~ee05100(); // tgen
+ ee05100(); // tgen
+};
+//SIG(1 ee05100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee05100 ::~ee05100(){ note_dtor("ee05100", this);} // tgen
+ee05100 ::ee05100(){ note_ctor("ee05100", this);} // tgen
+
+static void Test_ee05100()
+{
+ extern Class_Descriptor cd_ee05100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05100, buf);
+ ee05100 *dp, &lv = *(dp=new (buf) ee05100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee05100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee05100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(16,12), "ee05100");
+ check_base_class_offset(lv, (dd5100*), 0, "ee05100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05100.e");
+ test_class_info(&lv, &cd_ee05100);
+ dp->~ee05100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05100(Test_ee05100, "ee05100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05100C1Ev();
+extern void _ZN7ee05100D1Ev();
+Name_Map name_map_ee05100[] = {
+ NSPAIR(_ZN7ee05100C1Ev),
+ NSPAIR(_ZN7ee05100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee05100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY vtc_ee05100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee05100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee05100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee05100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee05100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee05100[] = {
+ {&(_ZTV7ee05100[4]), 4,8},
+ {&(_tg__ZTV6dd5100__7ee05100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee05100[3]), 3,3},
+ {&(_ZTV7ee05100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee05100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee05100[];
+extern VTBL_ENTRY _ZTV7ee05100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05100[];
+Class_Descriptor cd_ee05100 = { "ee05100", // class name
+ bases_ee05100, 4,
+ &(vtc_ee05100[0]), // expected_vtbl_contents
+ &(vtt_ee05100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15100 : virtual dd5100 {
+ int e;
+ ~ee15100(); // tgen
+ ee15100(); // tgen
+};
+//SIG(1 ee15100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee15100 ::~ee15100(){ note_dtor("ee15100", this);} // tgen
+ee15100 ::ee15100(){ note_ctor("ee15100", this);} // tgen
+
+static void Test_ee15100()
+{
+ extern Class_Descriptor cd_ee15100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15100, buf);
+ ee15100 *dp, &lv = *(dp=new (buf) ee15100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee15100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee15100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(32,16), "ee15100");
+ check_base_class_offset(lv, (dd5100*), ABISELECT(16,8), "ee15100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15100.e");
+ test_class_info(&lv, &cd_ee15100);
+ dp->~ee15100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15100(Test_ee15100, "ee15100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15100C1Ev();
+extern void _ZN7ee15100D1Ev();
+Name_Map name_map_ee15100[] = {
+ NSPAIR(_ZN7ee15100C1Ev),
+ NSPAIR(_ZN7ee15100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee15100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY vtc_ee15100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15100[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee15100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee15100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee15100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee15100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee15100[] = {
+ {&(_ZTV7ee15100[5]), 5,14},
+ {&(_ZTV7ee15100[10]), 10,14},
+ {&(_ZTV7ee15100[14]), 14,14},
+ {&(_tg__ZTV6dd5100__7ee15100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee15100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee15100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee15100[];
+extern VTBL_ENTRY _ZTV7ee15100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15100[];
+Class_Descriptor cd_ee15100 = { "ee15100", // class name
+ bases_ee15100, 4,
+ &(vtc_ee15100[0]), // expected_vtbl_contents
+ &(vtt_ee15100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15100),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25100 : dd5100 {
+ int e;
+ virtual void foo(); // _ZN7ee251003fooEv
+ ~ee25100(); // tgen
+ ee25100(); // tgen
+};
+//SIG(1 ee25100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25100 ::foo(){vfunc_called(this, "_ZN7ee251003fooEv");}
+ee25100 ::~ee25100(){ note_dtor("ee25100", this);} // tgen
+ee25100 ::ee25100(){ note_ctor("ee25100", this);} // tgen
+
+static void Test_ee25100()
+{
+ extern Class_Descriptor cd_ee25100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25100, buf);
+ ee25100 *dp, &lv = *(dp=new (buf) ee25100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee25100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee25100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(16,12), "ee25100");
+ check_base_class_offset(lv, (dd5100*), 0, "ee25100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25100.e");
+ test_class_info(&lv, &cd_ee25100);
+ dp->~ee25100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25100(Test_ee25100, "ee25100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25100C1Ev();
+extern void _ZN7ee25100D1Ev();
+Name_Map name_map_ee25100[] = {
+ NSPAIR(_ZN7ee25100C1Ev),
+ NSPAIR(_ZN7ee25100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee25100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25100[];
+extern void _ZN6dd51003barEv();
+extern void _ZN7ee251003fooEv();
+static VTBL_ENTRY vtc_ee25100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ (VTBL_ENTRY)&_ZN7ee251003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee25100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee25100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee25100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee25100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee25100[] = {
+ {&(_ZTV7ee25100[4]), 4,9},
+ {&(_tg__ZTV6dd5100__7ee25100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee25100[3]), 3,3},
+ {&(_ZTV7ee25100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee25100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee25100[];
+extern VTBL_ENTRY _ZTV7ee25100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25100[];
+Class_Descriptor cd_ee25100 = { "ee25100", // class name
+ bases_ee25100, 4,
+ &(vtc_ee25100[0]), // expected_vtbl_contents
+ &(vtt_ee25100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35100 : virtual dd5100 {
+ int e;
+ virtual void foo(); // _ZN7ee351003fooEv
+ ~ee35100(); // tgen
+ ee35100(); // tgen
+};
+//SIG(1 ee35100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35100 ::foo(){vfunc_called(this, "_ZN7ee351003fooEv");}
+ee35100 ::~ee35100(){ note_dtor("ee35100", this);} // tgen
+ee35100 ::ee35100(){ note_ctor("ee35100", this);} // tgen
+
+static void Test_ee35100()
+{
+ extern Class_Descriptor cd_ee35100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35100, buf);
+ ee35100 *dp, &lv = *(dp=new (buf) ee35100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee35100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee35100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(32,16), "ee35100");
+ check_base_class_offset(lv, (dd5100*), ABISELECT(16,8), "ee35100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35100.e");
+ test_class_info(&lv, &cd_ee35100);
+ dp->~ee35100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35100(Test_ee35100, "ee35100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35100C1Ev();
+extern void _ZN7ee35100D1Ev();
+Name_Map name_map_ee35100[] = {
+ NSPAIR(_ZN7ee35100C1Ev),
+ NSPAIR(_ZN7ee35100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee35100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35100[];
+extern void _ZN7ee351003fooEv();
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY vtc_ee35100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35100[0]),
+ (VTBL_ENTRY)&_ZN7ee351003fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee35100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee35100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee35100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee35100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee35100[] = {
+ {&(_ZTV7ee35100[5]), 5,15},
+ {&(_ZTV7ee35100[11]), 11,15},
+ {&(_ZTV7ee35100[15]), 15,15},
+ {&(_tg__ZTV6dd5100__7ee35100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee35100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee35100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee35100[];
+extern VTBL_ENTRY _ZTV7ee35100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35100[];
+Class_Descriptor cd_ee35100 = { "ee35100", // class name
+ bases_ee35100, 4,
+ &(vtc_ee35100[0]), // expected_vtbl_contents
+ &(vtt_ee35100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35100),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45100 : dd5100 {
+ int e;
+ virtual void bar(); // _ZN7ee451003barEv
+ ~ee45100(); // tgen
+ ee45100(); // tgen
+};
+//SIG(1 ee45100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45100 ::bar(){vfunc_called(this, "_ZN7ee451003barEv");}
+ee45100 ::~ee45100(){ note_dtor("ee45100", this);} // tgen
+ee45100 ::ee45100(){ note_ctor("ee45100", this);} // tgen
+
+static void Test_ee45100()
+{
+ extern Class_Descriptor cd_ee45100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45100, buf);
+ ee45100 *dp, &lv = *(dp=new (buf) ee45100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee45100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee45100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(16,12), "ee45100");
+ check_base_class_offset(lv, (dd5100*), 0, "ee45100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45100.e");
+ test_class_info(&lv, &cd_ee45100);
+ dp->~ee45100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45100(Test_ee45100, "ee45100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45100C1Ev();
+extern void _ZN7ee45100D1Ev();
+Name_Map name_map_ee45100[] = {
+ NSPAIR(_ZN7ee45100C1Ev),
+ NSPAIR(_ZN7ee45100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee45100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45100[];
+extern void _ZN7ee451003barEv();
+static VTBL_ENTRY vtc_ee45100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45100[0]),
+ (VTBL_ENTRY)&_ZN7ee451003barEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee45100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee45100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee45100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee45100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee45100[] = {
+ {&(_ZTV7ee45100[4]), 4,8},
+ {&(_tg__ZTV6dd5100__7ee45100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee45100[3]), 3,3},
+ {&(_ZTV7ee45100[8]), 8,8},
+ {&(_tg__ZTV5cc100__7ee45100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee45100[];
+extern VTBL_ENTRY _ZTV7ee45100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45100[];
+Class_Descriptor cd_ee45100 = { "ee45100", // class name
+ bases_ee45100, 4,
+ &(vtc_ee45100[0]), // expected_vtbl_contents
+ &(vtt_ee45100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45100),8, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55100 : virtual dd5100 {
+ int e;
+ virtual void bar(); // _ZN7ee551003barEv
+ ~ee55100(); // tgen
+ ee55100(); // tgen
+};
+//SIG(1 ee55100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55100 ::bar(){vfunc_called(this, "_ZN7ee551003barEv");}
+ee55100 ::~ee55100(){ note_dtor("ee55100", this);} // tgen
+ee55100 ::ee55100(){ note_ctor("ee55100", this);} // tgen
+
+static void Test_ee55100()
+{
+ extern Class_Descriptor cd_ee55100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55100, buf);
+ ee55100 *dp, &lv = *(dp=new (buf) ee55100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee55100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee55100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(32,16), "ee55100");
+ check_base_class_offset(lv, (dd5100*), ABISELECT(16,8), "ee55100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55100.e");
+ test_class_info(&lv, &cd_ee55100);
+ dp->~ee55100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55100(Test_ee55100, "ee55100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55100C1Ev();
+extern void _ZN7ee55100D1Ev();
+Name_Map name_map_ee55100[] = {
+ NSPAIR(_ZN7ee55100C1Ev),
+ NSPAIR(_ZN7ee55100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee55100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55100[];
+extern void _ZN7ee551003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551003barEv,_ZTv0_n20_N7ee551003barEv)();
+extern void ABISELECT(_ZThn16_N7ee551003barEv,_ZThn8_N7ee551003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55100[0]),
+ (VTBL_ENTRY)&_ZN7ee551003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551003barEv,_ZTv0_n20_N7ee551003barEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee55100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee55100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee55100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee55100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee55100[] = {
+ {&(_ZTV7ee55100[5]), 5,15},
+ {&(_ZTV7ee55100[11]), 11,15},
+ {&(_ZTV7ee55100[15]), 15,15},
+ {&(_tg__ZTV6dd5100__7ee55100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee55100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee55100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee55100[];
+extern VTBL_ENTRY _ZTV7ee55100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55100[];
+static VTBL_ENTRY alt_thunk_names21[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551003barEv,_ZTv0_n20_N7ee551003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551003barEv,_ZThn8_N7ee551003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55100 = { "ee55100", // class name
+ bases_ee55100, 4,
+ &(vtc_ee55100[0]), // expected_vtbl_contents
+ &(vtt_ee55100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55100),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names21,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65100 : dd5100 {
+ int e;
+ virtual void foo(); // _ZN7ee651003fooEv
+ virtual void bar(); // _ZN7ee651003barEv
+ ~ee65100(); // tgen
+ ee65100(); // tgen
+};
+//SIG(1 ee65100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65100 ::foo(){vfunc_called(this, "_ZN7ee651003fooEv");}
+void ee65100 ::bar(){vfunc_called(this, "_ZN7ee651003barEv");}
+ee65100 ::~ee65100(){ note_dtor("ee65100", this);} // tgen
+ee65100 ::ee65100(){ note_ctor("ee65100", this);} // tgen
+
+static void Test_ee65100()
+{
+ extern Class_Descriptor cd_ee65100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65100, buf);
+ ee65100 *dp, &lv = *(dp=new (buf) ee65100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee65100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee65100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(16,12), "ee65100");
+ check_base_class_offset(lv, (dd5100*), 0, "ee65100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65100.e");
+ test_class_info(&lv, &cd_ee65100);
+ dp->~ee65100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65100(Test_ee65100, "ee65100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65100C1Ev();
+extern void _ZN7ee65100D1Ev();
+Name_Map name_map_ee65100[] = {
+ NSPAIR(_ZN7ee65100C1Ev),
+ NSPAIR(_ZN7ee65100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee65100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65100[];
+extern void _ZN7ee651003barEv();
+extern void _ZN7ee651003fooEv();
+static VTBL_ENTRY vtc_ee65100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65100[0]),
+ (VTBL_ENTRY)&_ZN7ee651003barEv,
+ (VTBL_ENTRY)&_ZN7ee651003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee65100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee65100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee65100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee65100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee65100[] = {
+ {&(_ZTV7ee65100[4]), 4,9},
+ {&(_tg__ZTV6dd5100__7ee65100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee65100[3]), 3,3},
+ {&(_ZTV7ee65100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee65100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee65100[];
+extern VTBL_ENTRY _ZTV7ee65100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65100[];
+Class_Descriptor cd_ee65100 = { "ee65100", // class name
+ bases_ee65100, 4,
+ &(vtc_ee65100[0]), // expected_vtbl_contents
+ &(vtt_ee65100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75100 : virtual dd5100 {
+ int e;
+ virtual void foo(); // _ZN7ee751003fooEv
+ virtual void bar(); // _ZN7ee751003barEv
+ ~ee75100(); // tgen
+ ee75100(); // tgen
+};
+//SIG(1 ee75100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75100 ::foo(){vfunc_called(this, "_ZN7ee751003fooEv");}
+void ee75100 ::bar(){vfunc_called(this, "_ZN7ee751003barEv");}
+ee75100 ::~ee75100(){ note_dtor("ee75100", this);} // tgen
+ee75100 ::ee75100(){ note_ctor("ee75100", this);} // tgen
+
+static void Test_ee75100()
+{
+ extern Class_Descriptor cd_ee75100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75100, buf);
+ ee75100 *dp, &lv = *(dp=new (buf) ee75100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee75100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee75100");
+ check_base_class_offset(lv, (cc100*)(dd5100*), ABISELECT(32,16), "ee75100");
+ check_base_class_offset(lv, (dd5100*), ABISELECT(16,8), "ee75100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75100.e");
+ test_class_info(&lv, &cd_ee75100);
+ dp->~ee75100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75100(Test_ee75100, "ee75100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75100C1Ev();
+extern void _ZN7ee75100D1Ev();
+Name_Map name_map_ee75100[] = {
+ NSPAIR(_ZN7ee75100C1Ev),
+ NSPAIR(_ZN7ee75100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd5100;
+extern VTBL_ENTRY _ZTI6dd5100[];
+extern VTBL_ENTRY _ZTV6dd5100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5100[];
+static Base_Class bases_ee75100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5100, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75100[];
+extern void _ZN7ee751003fooEv();
+extern void _ZN7ee751003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751003barEv,_ZTv0_n20_N7ee751003barEv)();
+extern void ABISELECT(_ZThn16_N7ee751003barEv,_ZThn8_N7ee751003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75100[0]),
+ (VTBL_ENTRY)&_ZN7ee751003fooEv,
+ (VTBL_ENTRY)&_ZN7ee751003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751003barEv,_ZTv0_n20_N7ee751003barEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee75100[];
+extern void _ZN6dd51003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5100__7ee75100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+ (VTBL_ENTRY)&_ZN6dd51003barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd5100__7ee75100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee75100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee75100[] = {
+ {&(_ZTV7ee75100[5]), 5,16},
+ {&(_ZTV7ee75100[12]), 12,16},
+ {&(_ZTV7ee75100[16]), 16,16},
+ {&(_tg__ZTV6dd5100__7ee75100[4]), 4,5},
+ {&(_tg__ZTV5cc100__6dd5100__7ee75100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee75100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee75100[];
+extern VTBL_ENTRY _ZTV7ee75100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75100[];
+static VTBL_ENTRY alt_thunk_names22[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751003barEv,_ZTv0_n20_N7ee751003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751003barEv,_ZThn8_N7ee751003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75100 = { "ee75100", // class name
+ bases_ee75100, 4,
+ &(vtc_ee75100[0]), // expected_vtbl_contents
+ &(vtt_ee75100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75100),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names22,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6100 : cc100 {
+ int d;
+ virtual void bar(); // _ZN6dd61003barEv
+ virtual void foo(); // _ZN6dd61003fooEv
+ ~dd6100(); // tgen
+ dd6100(); // tgen
+};
+//SIG(-1 dd6100) C1{ BC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd6100 ::bar(){vfunc_called(this, "_ZN6dd61003barEv");}
+void dd6100 ::foo(){vfunc_called(this, "_ZN6dd61003fooEv");}
+dd6100 ::~dd6100(){ note_dtor("dd6100", this);} // tgen
+dd6100 ::dd6100(){ note_ctor("dd6100", this);} // tgen
+
+static void Test_dd6100()
+{
+ extern Class_Descriptor cd_dd6100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6100, buf);
+ dd6100 *dp, &lv = *(dp=new (buf) dd6100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd6100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(16,12), "dd6100");
+ check_base_class_offset(lv, (cc100*), 0, "dd6100");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6100.d");
+ test_class_info(&lv, &cd_dd6100);
+ dp->~dd6100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6100(Test_dd6100, "dd6100", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6100C1Ev();
+extern void _ZN6dd6100D1Ev();
+Name_Map name_map_dd6100[] = {
+ NSPAIR(_ZN6dd6100C1Ev),
+ NSPAIR(_ZN6dd6100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd6100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_dd6100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd6100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd6100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd6100[] = {
+ {&(_ZTV6dd6100[3]), 3,5},
+ {&(_tg__ZTV5cc100__6dd6100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+Class_Descriptor cd_dd6100 = { "dd6100", // class name
+ bases_dd6100, 3,
+ &(vtc_dd6100[0]), // expected_vtbl_contents
+ &(vtt_dd6100[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6100),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06100 : dd6100 {
+ int e;
+ ~ee06100(); // tgen
+ ee06100(); // tgen
+};
+//SIG(1 ee06100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06100 ::~ee06100(){ note_dtor("ee06100", this);} // tgen
+ee06100 ::ee06100(){ note_ctor("ee06100", this);} // tgen
+
+static void Test_ee06100()
+{
+ extern Class_Descriptor cd_ee06100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06100, buf);
+ ee06100 *dp, &lv = *(dp=new (buf) ee06100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee06100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(20,16), "ee06100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), 0, "ee06100");
+ check_base_class_offset(lv, (dd6100*), 0, "ee06100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06100.e");
+ test_class_info(&lv, &cd_ee06100);
+ dp->~ee06100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06100(Test_ee06100, "ee06100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06100C1Ev();
+extern void _ZN7ee06100D1Ev();
+Name_Map name_map_ee06100[] = {
+ NSPAIR(_ZN7ee06100C1Ev),
+ NSPAIR(_ZN7ee06100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee06100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_ee06100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee06100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee06100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee06100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee06100[] = {
+ {&(_ZTV7ee06100[3]), 3,5},
+ {&(_tg__ZTV6dd6100__7ee06100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee06100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee06100[];
+extern VTBL_ENTRY _ZTV7ee06100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06100[];
+Class_Descriptor cd_ee06100 = { "ee06100", // class name
+ bases_ee06100, 4,
+ &(vtc_ee06100[0]), // expected_vtbl_contents
+ &(vtt_ee06100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16100 : virtual dd6100 {
+ int e;
+ ~ee16100(); // tgen
+ ee16100(); // tgen
+};
+//SIG(1 ee16100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16100 ::~ee16100(){ note_dtor("ee16100", this);} // tgen
+ee16100 ::ee16100(){ note_ctor("ee16100", this);} // tgen
+
+static void Test_ee16100()
+{
+ extern Class_Descriptor cd_ee16100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16100, buf);
+ ee16100 *dp, &lv = *(dp=new (buf) ee16100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee16100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(32,20), "ee16100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), ABISELECT(16,8), "ee16100");
+ check_base_class_offset(lv, (dd6100*), ABISELECT(16,8), "ee16100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16100.e");
+ test_class_info(&lv, &cd_ee16100);
+ dp->~ee16100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16100(Test_ee16100, "ee16100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16100C1Ev();
+extern void _ZN7ee16100D1Ev();
+Name_Map name_map_ee16100[] = {
+ NSPAIR(_ZN7ee16100C1Ev),
+ NSPAIR(_ZN7ee16100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee16100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_ee16100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16100[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee16100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee16100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee16100[] = {
+ {&(_ZTV7ee16100[4]), 4,11},
+ {&(_ZTV7ee16100[9]), 9,11},
+ {&(_tg__ZTV6dd6100__7ee16100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee16100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee16100[];
+extern VTBL_ENTRY _ZTV7ee16100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16100[];
+Class_Descriptor cd_ee16100 = { "ee16100", // class name
+ bases_ee16100, 4,
+ &(vtc_ee16100[0]), // expected_vtbl_contents
+ &(vtt_ee16100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16100),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26100 : dd6100 {
+ int e;
+ virtual void foo(); // _ZN7ee261003fooEv
+ ~ee26100(); // tgen
+ ee26100(); // tgen
+};
+//SIG(1 ee26100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26100 ::foo(){vfunc_called(this, "_ZN7ee261003fooEv");}
+ee26100 ::~ee26100(){ note_dtor("ee26100", this);} // tgen
+ee26100 ::ee26100(){ note_ctor("ee26100", this);} // tgen
+
+static void Test_ee26100()
+{
+ extern Class_Descriptor cd_ee26100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26100, buf);
+ ee26100 *dp, &lv = *(dp=new (buf) ee26100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee26100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(20,16), "ee26100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), 0, "ee26100");
+ check_base_class_offset(lv, (dd6100*), 0, "ee26100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26100.e");
+ test_class_info(&lv, &cd_ee26100);
+ dp->~ee26100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26100(Test_ee26100, "ee26100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26100C1Ev();
+extern void _ZN7ee26100D1Ev();
+Name_Map name_map_ee26100[] = {
+ NSPAIR(_ZN7ee26100C1Ev),
+ NSPAIR(_ZN7ee26100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee26100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN7ee261003fooEv();
+static VTBL_ENTRY vtc_ee26100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN7ee261003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee26100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee26100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee26100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee26100[] = {
+ {&(_ZTV7ee26100[3]), 3,5},
+ {&(_tg__ZTV6dd6100__7ee26100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee26100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee26100[];
+extern VTBL_ENTRY _ZTV7ee26100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26100[];
+Class_Descriptor cd_ee26100 = { "ee26100", // class name
+ bases_ee26100, 4,
+ &(vtc_ee26100[0]), // expected_vtbl_contents
+ &(vtt_ee26100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36100 : virtual dd6100 {
+ int e;
+ virtual void foo(); // _ZN7ee361003fooEv
+ ~ee36100(); // tgen
+ ee36100(); // tgen
+};
+//SIG(1 ee36100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36100 ::foo(){vfunc_called(this, "_ZN7ee361003fooEv");}
+ee36100 ::~ee36100(){ note_dtor("ee36100", this);} // tgen
+ee36100 ::ee36100(){ note_ctor("ee36100", this);} // tgen
+
+static void Test_ee36100()
+{
+ extern Class_Descriptor cd_ee36100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36100, buf);
+ ee36100 *dp, &lv = *(dp=new (buf) ee36100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee36100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(32,20), "ee36100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), ABISELECT(16,8), "ee36100");
+ check_base_class_offset(lv, (dd6100*), ABISELECT(16,8), "ee36100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36100.e");
+ test_class_info(&lv, &cd_ee36100);
+ dp->~ee36100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36100(Test_ee36100, "ee36100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36100C1Ev();
+extern void _ZN7ee36100D1Ev();
+Name_Map name_map_ee36100[] = {
+ NSPAIR(_ZN7ee36100C1Ev),
+ NSPAIR(_ZN7ee36100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee36100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36100[];
+extern void _ZN7ee361003fooEv();
+extern void _ZN6dd61003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361003fooEv,_ZTv0_n20_N7ee361003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361003fooEv,_ZThn8_N7ee361003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36100[0]),
+ (VTBL_ENTRY)&_ZN7ee361003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361003fooEv,_ZTv0_n20_N7ee361003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee36100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee36100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee36100[] = {
+ {&(_ZTV7ee36100[4]), 4,12},
+ {&(_ZTV7ee36100[10]), 10,12},
+ {&(_tg__ZTV6dd6100__7ee36100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee36100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee36100[];
+extern VTBL_ENTRY _ZTV7ee36100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36100[];
+static VTBL_ENTRY alt_thunk_names23[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361003fooEv,_ZTv0_n20_N7ee361003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361003fooEv,_ZThn8_N7ee361003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36100 = { "ee36100", // class name
+ bases_ee36100, 4,
+ &(vtc_ee36100[0]), // expected_vtbl_contents
+ &(vtt_ee36100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36100),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names23,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46100 : dd6100 {
+ int e;
+ virtual void bar(); // _ZN7ee461003barEv
+ ~ee46100(); // tgen
+ ee46100(); // tgen
+};
+//SIG(1 ee46100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46100 ::bar(){vfunc_called(this, "_ZN7ee461003barEv");}
+ee46100 ::~ee46100(){ note_dtor("ee46100", this);} // tgen
+ee46100 ::ee46100(){ note_ctor("ee46100", this);} // tgen
+
+static void Test_ee46100()
+{
+ extern Class_Descriptor cd_ee46100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46100, buf);
+ ee46100 *dp, &lv = *(dp=new (buf) ee46100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee46100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(20,16), "ee46100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), 0, "ee46100");
+ check_base_class_offset(lv, (dd6100*), 0, "ee46100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46100.e");
+ test_class_info(&lv, &cd_ee46100);
+ dp->~ee46100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46100(Test_ee46100, "ee46100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46100C1Ev();
+extern void _ZN7ee46100D1Ev();
+Name_Map name_map_ee46100[] = {
+ NSPAIR(_ZN7ee46100C1Ev),
+ NSPAIR(_ZN7ee46100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee46100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46100[];
+extern void _ZN7ee461003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_ee46100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46100[0]),
+ (VTBL_ENTRY)&_ZN7ee461003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee46100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee46100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee46100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee46100[] = {
+ {&(_ZTV7ee46100[3]), 3,5},
+ {&(_tg__ZTV6dd6100__7ee46100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee46100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee46100[];
+extern VTBL_ENTRY _ZTV7ee46100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46100[];
+Class_Descriptor cd_ee46100 = { "ee46100", // class name
+ bases_ee46100, 4,
+ &(vtc_ee46100[0]), // expected_vtbl_contents
+ &(vtt_ee46100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56100 : virtual dd6100 {
+ int e;
+ virtual void bar(); // _ZN7ee561003barEv
+ ~ee56100(); // tgen
+ ee56100(); // tgen
+};
+//SIG(1 ee56100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56100 ::bar(){vfunc_called(this, "_ZN7ee561003barEv");}
+ee56100 ::~ee56100(){ note_dtor("ee56100", this);} // tgen
+ee56100 ::ee56100(){ note_ctor("ee56100", this);} // tgen
+
+static void Test_ee56100()
+{
+ extern Class_Descriptor cd_ee56100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56100, buf);
+ ee56100 *dp, &lv = *(dp=new (buf) ee56100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee56100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(32,20), "ee56100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), ABISELECT(16,8), "ee56100");
+ check_base_class_offset(lv, (dd6100*), ABISELECT(16,8), "ee56100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56100.e");
+ test_class_info(&lv, &cd_ee56100);
+ dp->~ee56100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56100(Test_ee56100, "ee56100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56100C1Ev();
+extern void _ZN7ee56100D1Ev();
+Name_Map name_map_ee56100[] = {
+ NSPAIR(_ZN7ee56100C1Ev),
+ NSPAIR(_ZN7ee56100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee56100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56100[];
+extern void _ZN7ee561003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561003barEv,_ZTv0_n16_N7ee561003barEv)();
+extern void ABISELECT(_ZThn16_N7ee561003barEv,_ZThn8_N7ee561003barEv)() __attribute__((weak));
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY vtc_ee56100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56100[0]),
+ (VTBL_ENTRY)&_ZN7ee561003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561003barEv,_ZTv0_n16_N7ee561003barEv),
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee56100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee56100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee56100[] = {
+ {&(_ZTV7ee56100[4]), 4,12},
+ {&(_ZTV7ee56100[10]), 10,12},
+ {&(_tg__ZTV6dd6100__7ee56100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee56100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee56100[];
+extern VTBL_ENTRY _ZTV7ee56100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56100[];
+static VTBL_ENTRY alt_thunk_names24[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561003barEv,_ZTv0_n16_N7ee561003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561003barEv,_ZThn8_N7ee561003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56100 = { "ee56100", // class name
+ bases_ee56100, 4,
+ &(vtc_ee56100[0]), // expected_vtbl_contents
+ &(vtt_ee56100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56100),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names24,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66100 : dd6100 {
+ int e;
+ virtual void foo(); // _ZN7ee661003fooEv
+ virtual void bar(); // _ZN7ee661003barEv
+ ~ee66100(); // tgen
+ ee66100(); // tgen
+};
+//SIG(1 ee66100) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66100 ::foo(){vfunc_called(this, "_ZN7ee661003fooEv");}
+void ee66100 ::bar(){vfunc_called(this, "_ZN7ee661003barEv");}
+ee66100 ::~ee66100(){ note_dtor("ee66100", this);} // tgen
+ee66100 ::ee66100(){ note_ctor("ee66100", this);} // tgen
+
+static void Test_ee66100()
+{
+ extern Class_Descriptor cd_ee66100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66100, buf);
+ ee66100 *dp, &lv = *(dp=new (buf) ee66100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee66100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(20,16), "ee66100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), 0, "ee66100");
+ check_base_class_offset(lv, (dd6100*), 0, "ee66100");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66100.e");
+ test_class_info(&lv, &cd_ee66100);
+ dp->~ee66100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66100(Test_ee66100, "ee66100", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66100C1Ev();
+extern void _ZN7ee66100D1Ev();
+Name_Map name_map_ee66100[] = {
+ NSPAIR(_ZN7ee66100C1Ev),
+ NSPAIR(_ZN7ee66100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee66100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66100[];
+extern void _ZN7ee661003barEv();
+extern void _ZN7ee661003fooEv();
+static VTBL_ENTRY vtc_ee66100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66100[0]),
+ (VTBL_ENTRY)&_ZN7ee661003barEv,
+ (VTBL_ENTRY)&_ZN7ee661003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee66100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee66100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee66100[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee66100[] = {
+ {&(_ZTV7ee66100[3]), 3,5},
+ {&(_tg__ZTV6dd6100__7ee66100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee66100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee66100[];
+extern VTBL_ENTRY _ZTV7ee66100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66100[];
+Class_Descriptor cd_ee66100 = { "ee66100", // class name
+ bases_ee66100, 4,
+ &(vtc_ee66100[0]), // expected_vtbl_contents
+ &(vtt_ee66100[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66100),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66100),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76100 : virtual dd6100 {
+ int e;
+ virtual void foo(); // _ZN7ee761003fooEv
+ virtual void bar(); // _ZN7ee761003barEv
+ ~ee76100(); // tgen
+ ee76100(); // tgen
+};
+//SIG(1 ee76100) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76100 ::foo(){vfunc_called(this, "_ZN7ee761003fooEv");}
+void ee76100 ::bar(){vfunc_called(this, "_ZN7ee761003barEv");}
+ee76100 ::~ee76100(){ note_dtor("ee76100", this);} // tgen
+ee76100 ::ee76100(){ note_ctor("ee76100", this);} // tgen
+
+static void Test_ee76100()
+{
+ extern Class_Descriptor cd_ee76100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76100, buf);
+ ee76100 *dp, &lv = *(dp=new (buf) ee76100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee76100");
+ check_base_class_offset(lv, (bb00*)(cc100*)(dd6100*), ABISELECT(32,20), "ee76100");
+ check_base_class_offset(lv, (cc100*)(dd6100*), ABISELECT(16,8), "ee76100");
+ check_base_class_offset(lv, (dd6100*), ABISELECT(16,8), "ee76100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76100.e");
+ test_class_info(&lv, &cd_ee76100);
+ dp->~ee76100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76100(Test_ee76100, "ee76100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76100C1Ev();
+extern void _ZN7ee76100D1Ev();
+Name_Map name_map_ee76100[] = {
+ NSPAIR(_ZN7ee76100C1Ev),
+ NSPAIR(_ZN7ee76100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd6100;
+extern VTBL_ENTRY _ZTI6dd6100[];
+extern VTBL_ENTRY _ZTV6dd6100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6100[];
+static Base_Class bases_ee76100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76100[];
+extern void _ZN7ee761003fooEv();
+extern void _ZN7ee761003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761003barEv,_ZTv0_n16_N7ee761003barEv)();
+extern void ABISELECT(_ZThn16_N7ee761003barEv,_ZThn8_N7ee761003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761003fooEv,_ZTv0_n20_N7ee761003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761003fooEv,_ZThn8_N7ee761003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76100[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76100[0]),
+ (VTBL_ENTRY)&_ZN7ee761003fooEv,
+ (VTBL_ENTRY)&_ZN7ee761003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761003barEv,_ZTv0_n16_N7ee761003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761003fooEv,_ZTv0_n20_N7ee761003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76100[];
+extern void _ZN6dd61003barEv();
+extern void _ZN6dd61003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6100__7ee76100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6100[0]),
+ (VTBL_ENTRY)&_ZN6dd61003barEv,
+ (VTBL_ENTRY)&_ZN6dd61003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1006dd6100__7ee76100[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee76100[] = {
+ {&(_ZTV7ee76100[4]), 4,13},
+ {&(_ZTV7ee76100[11]), 11,13},
+ {&(_tg__ZTV6dd6100__7ee76100[3]), 3,5},
+ {&(_tg__ZTV5cc1006dd6100__7ee76100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee76100[];
+extern VTBL_ENTRY _ZTV7ee76100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76100[];
+static VTBL_ENTRY alt_thunk_names25[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761003fooEv,_ZTv0_n20_N7ee761003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761003fooEv,_ZThn8_N7ee761003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761003barEv,_ZTv0_n16_N7ee761003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761003barEv,_ZThn8_N7ee761003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76100 = { "ee76100", // class name
+ bases_ee76100, 4,
+ &(vtc_ee76100[0]), // expected_vtbl_contents
+ &(vtt_ee76100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76100),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76100),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names25,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7100 : virtual cc100 {
+ int d;
+ virtual void bar(); // _ZN6dd71003barEv
+ virtual void foo(); // _ZN6dd71003fooEv
+ ~dd7100(); // tgen
+ dd7100(); // tgen
+};
+//SIG(-1 dd7100) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd7100 ::bar(){vfunc_called(this, "_ZN6dd71003barEv");}
+void dd7100 ::foo(){vfunc_called(this, "_ZN6dd71003fooEv");}
+dd7100 ::~dd7100(){ note_dtor("dd7100", this);} // tgen
+dd7100 ::dd7100(){ note_ctor("dd7100", this);} // tgen
+
+static void Test_dd7100()
+{
+ extern Class_Descriptor cd_dd7100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7100, buf);
+ dd7100 *dp, &lv = *(dp=new (buf) dd7100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd7100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,16), "dd7100");
+ check_base_class_offset(lv, (cc100*), ABISELECT(16,8), "dd7100");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7100.d");
+ test_class_info(&lv, &cd_dd7100);
+ dp->~dd7100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7100(Test_dd7100, "dd7100", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7100C1Ev();
+extern void _ZN6dd7100D1Ev();
+Name_Map name_map_dd7100[] = {
+ NSPAIR(_ZN6dd7100C1Ev),
+ NSPAIR(_ZN6dd7100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+static Base_Class bases_dd7100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_dd7100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+extern VTBL_ENTRY _ZTV6dd7100[];
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_dd7100[] = {
+ {&(_ZTV6dd7100[4]), 4,9},
+ {&(_ZTV6dd7100[9]), 9,9},
+ {&(_tg__ZTV5cc100__6dd7100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+Class_Descriptor cd_dd7100 = { "dd7100", // class name
+ bases_dd7100, 3,
+ &(vtc_dd7100[0]), // expected_vtbl_contents
+ &(vtt_dd7100[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7100),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07100 : dd7100 {
+ int e;
+ ~ee07100(); // tgen
+ ee07100(); // tgen
+};
+//SIG(1 ee07100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07100 ::~ee07100(){ note_dtor("ee07100", this);} // tgen
+ee07100 ::ee07100(){ note_ctor("ee07100", this);} // tgen
+
+static void Test_ee07100()
+{
+ extern Class_Descriptor cd_ee07100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07100, buf);
+ ee07100 *dp, &lv = *(dp=new (buf) ee07100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee07100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee07100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(16,12), "ee07100");
+ check_base_class_offset(lv, (dd7100*), 0, "ee07100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07100.e");
+ test_class_info(&lv, &cd_ee07100);
+ dp->~ee07100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07100(Test_ee07100, "ee07100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07100C1Ev();
+extern void _ZN7ee07100D1Ev();
+Name_Map name_map_ee07100[] = {
+ NSPAIR(_ZN7ee07100C1Ev),
+ NSPAIR(_ZN7ee07100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee07100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_ee07100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee07100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee07100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee07100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee07100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee07100[] = {
+ {&(_ZTV7ee07100[4]), 4,9},
+ {&(_tg__ZTV6dd7100__7ee07100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee07100[3]), 3,3},
+ {&(_ZTV7ee07100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee07100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee07100[];
+extern VTBL_ENTRY _ZTV7ee07100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07100[];
+Class_Descriptor cd_ee07100 = { "ee07100", // class name
+ bases_ee07100, 4,
+ &(vtc_ee07100[0]), // expected_vtbl_contents
+ &(vtt_ee07100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17100 : virtual dd7100 {
+ int e;
+ ~ee17100(); // tgen
+ ee17100(); // tgen
+};
+//SIG(1 ee17100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17100 ::~ee17100(){ note_dtor("ee17100", this);} // tgen
+ee17100 ::ee17100(){ note_ctor("ee17100", this);} // tgen
+
+static void Test_ee17100()
+{
+ extern Class_Descriptor cd_ee17100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17100, buf);
+ ee17100 *dp, &lv = *(dp=new (buf) ee17100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee17100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee17100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(32,16), "ee17100");
+ check_base_class_offset(lv, (dd7100*), ABISELECT(16,8), "ee17100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17100.e");
+ test_class_info(&lv, &cd_ee17100);
+ dp->~ee17100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17100(Test_ee17100, "ee17100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17100C1Ev();
+extern void _ZN7ee17100D1Ev();
+Name_Map name_map_ee17100[] = {
+ NSPAIR(_ZN7ee17100C1Ev),
+ NSPAIR(_ZN7ee17100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee17100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_ee17100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17100[0]),
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee17100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee17100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee17100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee17100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee17100[] = {
+ {&(_ZTV7ee17100[5]), 5,16},
+ {&(_ZTV7ee17100[11]), 11,16},
+ {&(_ZTV7ee17100[16]), 16,16},
+ {&(_tg__ZTV6dd7100__7ee17100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee17100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee17100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee17100[];
+extern VTBL_ENTRY _ZTV7ee17100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17100[];
+Class_Descriptor cd_ee17100 = { "ee17100", // class name
+ bases_ee17100, 4,
+ &(vtc_ee17100[0]), // expected_vtbl_contents
+ &(vtt_ee17100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17100),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27100 : dd7100 {
+ int e;
+ virtual void foo(); // _ZN7ee271003fooEv
+ ~ee27100(); // tgen
+ ee27100(); // tgen
+};
+//SIG(1 ee27100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27100 ::foo(){vfunc_called(this, "_ZN7ee271003fooEv");}
+ee27100 ::~ee27100(){ note_dtor("ee27100", this);} // tgen
+ee27100 ::ee27100(){ note_ctor("ee27100", this);} // tgen
+
+static void Test_ee27100()
+{
+ extern Class_Descriptor cd_ee27100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27100, buf);
+ ee27100 *dp, &lv = *(dp=new (buf) ee27100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee27100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee27100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(16,12), "ee27100");
+ check_base_class_offset(lv, (dd7100*), 0, "ee27100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27100.e");
+ test_class_info(&lv, &cd_ee27100);
+ dp->~ee27100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27100(Test_ee27100, "ee27100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27100C1Ev();
+extern void _ZN7ee27100D1Ev();
+Name_Map name_map_ee27100[] = {
+ NSPAIR(_ZN7ee27100C1Ev),
+ NSPAIR(_ZN7ee27100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee27100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN7ee271003fooEv();
+static VTBL_ENTRY vtc_ee27100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN7ee271003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee27100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee27100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee27100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee27100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee27100[] = {
+ {&(_ZTV7ee27100[4]), 4,9},
+ {&(_tg__ZTV6dd7100__7ee27100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee27100[3]), 3,3},
+ {&(_ZTV7ee27100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee27100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee27100[];
+extern VTBL_ENTRY _ZTV7ee27100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27100[];
+Class_Descriptor cd_ee27100 = { "ee27100", // class name
+ bases_ee27100, 4,
+ &(vtc_ee27100[0]), // expected_vtbl_contents
+ &(vtt_ee27100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37100 : virtual dd7100 {
+ int e;
+ virtual void foo(); // _ZN7ee371003fooEv
+ ~ee37100(); // tgen
+ ee37100(); // tgen
+};
+//SIG(1 ee37100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37100 ::foo(){vfunc_called(this, "_ZN7ee371003fooEv");}
+ee37100 ::~ee37100(){ note_dtor("ee37100", this);} // tgen
+ee37100 ::ee37100(){ note_ctor("ee37100", this);} // tgen
+
+static void Test_ee37100()
+{
+ extern Class_Descriptor cd_ee37100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37100, buf);
+ ee37100 *dp, &lv = *(dp=new (buf) ee37100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee37100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee37100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(32,16), "ee37100");
+ check_base_class_offset(lv, (dd7100*), ABISELECT(16,8), "ee37100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37100.e");
+ test_class_info(&lv, &cd_ee37100);
+ dp->~ee37100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37100(Test_ee37100, "ee37100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37100C1Ev();
+extern void _ZN7ee37100D1Ev();
+Name_Map name_map_ee37100[] = {
+ NSPAIR(_ZN7ee37100C1Ev),
+ NSPAIR(_ZN7ee37100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee37100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37100[];
+extern void _ZN7ee371003fooEv();
+extern void _ZN6dd71003barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371003fooEv,_ZTv0_n24_N7ee371003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371003fooEv,_ZThn8_N7ee371003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37100[0]),
+ (VTBL_ENTRY)&_ZN7ee371003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371003fooEv,_ZTv0_n24_N7ee371003fooEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee37100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee37100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee37100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee37100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee37100[] = {
+ {&(_ZTV7ee37100[5]), 5,17},
+ {&(_ZTV7ee37100[12]), 12,17},
+ {&(_ZTV7ee37100[17]), 17,17},
+ {&(_tg__ZTV6dd7100__7ee37100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee37100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee37100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee37100[];
+extern VTBL_ENTRY _ZTV7ee37100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37100[];
+static VTBL_ENTRY alt_thunk_names26[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371003fooEv,_ZTv0_n24_N7ee371003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371003fooEv,_ZThn8_N7ee371003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37100 = { "ee37100", // class name
+ bases_ee37100, 4,
+ &(vtc_ee37100[0]), // expected_vtbl_contents
+ &(vtt_ee37100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37100),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names26,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47100 : dd7100 {
+ int e;
+ virtual void bar(); // _ZN7ee471003barEv
+ ~ee47100(); // tgen
+ ee47100(); // tgen
+};
+//SIG(1 ee47100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47100 ::bar(){vfunc_called(this, "_ZN7ee471003barEv");}
+ee47100 ::~ee47100(){ note_dtor("ee47100", this);} // tgen
+ee47100 ::ee47100(){ note_ctor("ee47100", this);} // tgen
+
+static void Test_ee47100()
+{
+ extern Class_Descriptor cd_ee47100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47100, buf);
+ ee47100 *dp, &lv = *(dp=new (buf) ee47100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee47100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee47100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(16,12), "ee47100");
+ check_base_class_offset(lv, (dd7100*), 0, "ee47100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47100.e");
+ test_class_info(&lv, &cd_ee47100);
+ dp->~ee47100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47100(Test_ee47100, "ee47100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47100C1Ev();
+extern void _ZN7ee47100D1Ev();
+Name_Map name_map_ee47100[] = {
+ NSPAIR(_ZN7ee47100C1Ev),
+ NSPAIR(_ZN7ee47100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee47100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47100[];
+extern void _ZN7ee471003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_ee47100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47100[0]),
+ (VTBL_ENTRY)&_ZN7ee471003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee47100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee47100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee47100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee47100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee47100[] = {
+ {&(_ZTV7ee47100[4]), 4,9},
+ {&(_tg__ZTV6dd7100__7ee47100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee47100[3]), 3,3},
+ {&(_ZTV7ee47100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee47100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee47100[];
+extern VTBL_ENTRY _ZTV7ee47100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47100[];
+Class_Descriptor cd_ee47100 = { "ee47100", // class name
+ bases_ee47100, 4,
+ &(vtc_ee47100[0]), // expected_vtbl_contents
+ &(vtt_ee47100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57100 : virtual dd7100 {
+ int e;
+ virtual void bar(); // _ZN7ee571003barEv
+ ~ee57100(); // tgen
+ ee57100(); // tgen
+};
+//SIG(1 ee57100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57100 ::bar(){vfunc_called(this, "_ZN7ee571003barEv");}
+ee57100 ::~ee57100(){ note_dtor("ee57100", this);} // tgen
+ee57100 ::ee57100(){ note_ctor("ee57100", this);} // tgen
+
+static void Test_ee57100()
+{
+ extern Class_Descriptor cd_ee57100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57100, buf);
+ ee57100 *dp, &lv = *(dp=new (buf) ee57100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee57100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee57100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(32,16), "ee57100");
+ check_base_class_offset(lv, (dd7100*), ABISELECT(16,8), "ee57100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57100.e");
+ test_class_info(&lv, &cd_ee57100);
+ dp->~ee57100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57100(Test_ee57100, "ee57100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57100C1Ev();
+extern void _ZN7ee57100D1Ev();
+Name_Map name_map_ee57100[] = {
+ NSPAIR(_ZN7ee57100C1Ev),
+ NSPAIR(_ZN7ee57100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee57100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57100[];
+extern void _ZN7ee571003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571003barEv,_ZTv0_n20_N7ee571003barEv)();
+extern void ABISELECT(_ZThn16_N7ee571003barEv,_ZThn8_N7ee571003barEv)() __attribute__((weak));
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY vtc_ee57100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57100[0]),
+ (VTBL_ENTRY)&_ZN7ee571003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571003barEv,_ZTv0_n20_N7ee571003barEv),
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee57100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee57100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee57100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee57100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee57100[] = {
+ {&(_ZTV7ee57100[5]), 5,17},
+ {&(_ZTV7ee57100[12]), 12,17},
+ {&(_ZTV7ee57100[17]), 17,17},
+ {&(_tg__ZTV6dd7100__7ee57100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee57100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee57100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee57100[];
+extern VTBL_ENTRY _ZTV7ee57100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57100[];
+static VTBL_ENTRY alt_thunk_names27[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571003barEv,_ZTv0_n20_N7ee571003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571003barEv,_ZThn8_N7ee571003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57100 = { "ee57100", // class name
+ bases_ee57100, 4,
+ &(vtc_ee57100[0]), // expected_vtbl_contents
+ &(vtt_ee57100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57100),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names27,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67100 : dd7100 {
+ int e;
+ virtual void foo(); // _ZN7ee671003fooEv
+ virtual void bar(); // _ZN7ee671003barEv
+ ~ee67100(); // tgen
+ ee67100(); // tgen
+};
+//SIG(1 ee67100) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67100 ::foo(){vfunc_called(this, "_ZN7ee671003fooEv");}
+void ee67100 ::bar(){vfunc_called(this, "_ZN7ee671003barEv");}
+ee67100 ::~ee67100(){ note_dtor("ee67100", this);} // tgen
+ee67100 ::ee67100(){ note_ctor("ee67100", this);} // tgen
+
+static void Test_ee67100()
+{
+ extern Class_Descriptor cd_ee67100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67100, buf);
+ ee67100 *dp, &lv = *(dp=new (buf) ee67100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee67100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(28,20), "ee67100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(16,12), "ee67100");
+ check_base_class_offset(lv, (dd7100*), 0, "ee67100");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67100.e");
+ test_class_info(&lv, &cd_ee67100);
+ dp->~ee67100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67100(Test_ee67100, "ee67100", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67100C1Ev();
+extern void _ZN7ee67100D1Ev();
+Name_Map name_map_ee67100[] = {
+ NSPAIR(_ZN7ee67100C1Ev),
+ NSPAIR(_ZN7ee67100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee67100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67100[];
+extern void _ZN7ee671003barEv();
+extern void _ZN7ee671003fooEv();
+static VTBL_ENTRY vtc_ee67100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67100[0]),
+ (VTBL_ENTRY)&_ZN7ee671003barEv,
+ (VTBL_ENTRY)&_ZN7ee671003fooEv,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee67100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee67100[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee67100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee67100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee67100[] = {
+ {&(_ZTV7ee67100[4]), 4,9},
+ {&(_tg__ZTV6dd7100__7ee67100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee67100[3]), 3,3},
+ {&(_ZTV7ee67100[9]), 9,9},
+ {&(_tg__ZTV5cc100__7ee67100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee67100[];
+extern VTBL_ENTRY _ZTV7ee67100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67100[];
+Class_Descriptor cd_ee67100 = { "ee67100", // class name
+ bases_ee67100, 4,
+ &(vtc_ee67100[0]), // expected_vtbl_contents
+ &(vtt_ee67100[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67100),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67100),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67100),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77100 : virtual dd7100 {
+ int e;
+ virtual void foo(); // _ZN7ee771003fooEv
+ virtual void bar(); // _ZN7ee771003barEv
+ ~ee77100(); // tgen
+ ee77100(); // tgen
+};
+//SIG(1 ee77100) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77100 ::foo(){vfunc_called(this, "_ZN7ee771003fooEv");}
+void ee77100 ::bar(){vfunc_called(this, "_ZN7ee771003barEv");}
+ee77100 ::~ee77100(){ note_dtor("ee77100", this);} // tgen
+ee77100 ::ee77100(){ note_ctor("ee77100", this);} // tgen
+
+static void Test_ee77100()
+{
+ extern Class_Descriptor cd_ee77100;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77100, buf);
+ ee77100 *dp, &lv = *(dp=new (buf) ee77100());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77100)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77100)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee77100");
+ check_base_class_offset(lv, (bb00*)(cc100*), ABISELECT(44,24), "ee77100");
+ check_base_class_offset(lv, (cc100*)(dd7100*), ABISELECT(32,16), "ee77100");
+ check_base_class_offset(lv, (dd7100*), ABISELECT(16,8), "ee77100");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77100.e");
+ test_class_info(&lv, &cd_ee77100);
+ dp->~ee77100();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77100(Test_ee77100, "ee77100", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77100C1Ev();
+extern void _ZN7ee77100D1Ev();
+Name_Map name_map_ee77100[] = {
+ NSPAIR(_ZN7ee77100C1Ev),
+ NSPAIR(_ZN7ee77100D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc100;
+extern VTBL_ENTRY _ZTI5cc100[];
+extern VTBL_ENTRY _ZTV5cc100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc100[];
+extern Class_Descriptor cd_dd7100;
+extern VTBL_ENTRY _ZTI6dd7100[];
+extern VTBL_ENTRY _ZTV6dd7100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7100[];
+static Base_Class bases_ee77100[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc100, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7100, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77100[];
+extern void _ZN7ee771003fooEv();
+extern void _ZN7ee771003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771003barEv,_ZTv0_n20_N7ee771003barEv)();
+extern void ABISELECT(_ZThn16_N7ee771003barEv,_ZThn8_N7ee771003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771003fooEv,_ZTv0_n24_N7ee771003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771003fooEv,_ZThn8_N7ee771003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77100[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77100[0]),
+ (VTBL_ENTRY)&_ZN7ee771003fooEv,
+ (VTBL_ENTRY)&_ZN7ee771003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77100[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771003barEv,_ZTv0_n20_N7ee771003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771003fooEv,_ZTv0_n24_N7ee771003fooEv),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77100[0]),
+};
+extern VTBL_ENTRY _ZTV7ee77100[];
+extern void _ZN6dd71003barEv();
+extern void _ZN6dd71003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7100__7ee77100[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+ (VTBL_ENTRY)&_ZN6dd71003barEv,
+ (VTBL_ENTRY)&_ZN6dd71003fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc100__6dd7100__7ee77100[] = {
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7100[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc100__7ee77100[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc100[0]),
+};
+static VTT_ENTRY vtt_ee77100[] = {
+ {&(_ZTV7ee77100[5]), 5,18},
+ {&(_ZTV7ee77100[13]), 13,18},
+ {&(_ZTV7ee77100[18]), 18,18},
+ {&(_tg__ZTV6dd7100__7ee77100[4]), 4,6},
+ {&(_tg__ZTV5cc100__6dd7100__7ee77100[3]), 3,3},
+ {&(_tg__ZTV5cc100__7ee77100[3]), 3,3},
+};
+extern VTBL_ENTRY _ZTI7ee77100[];
+extern VTBL_ENTRY _ZTV7ee77100[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77100[];
+static VTBL_ENTRY alt_thunk_names28[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771003fooEv,_ZTv0_n24_N7ee771003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771003fooEv,_ZThn8_N7ee771003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771003barEv,_ZTv0_n20_N7ee771003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771003barEv,_ZThn8_N7ee771003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77100 = { "ee77100", // class name
+ bases_ee77100, 4,
+ &(vtc_ee77100[0]), // expected_vtbl_contents
+ &(vtt_ee77100[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77100),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77100),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77100),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names28,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc200 : bb00 {
+ int c;
+ virtual void foo(); // _ZN5cc2003fooEv
+ ~cc200(); // tgen
+ cc200(); // tgen
+};
+//SIG(-1 cc200) C1{ BC2{ BC3{ Fi} Fi} v1 Fi}
+
+
+void cc200 ::foo(){vfunc_called(this, "_ZN5cc2003fooEv");}
+cc200 ::~cc200(){ note_dtor("cc200", this);} // tgen
+cc200 ::cc200(){ note_ctor("cc200", this);} // tgen
+
+static void Test_cc200()
+{
+ extern Class_Descriptor cd_cc200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc200, buf);
+ cc200 *dp, &lv = *(dp=new (buf) cc200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc200)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(8,4), "cc200");
+ check_base_class_offset(lv, (bb00*), ABISELECT(8,4), "cc200");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc200.c");
+ test_class_info(&lv, &cd_cc200);
+ dp->~cc200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc200(Test_cc200, "cc200", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc200C1Ev();
+extern void _ZN5cc200D1Ev();
+Name_Map name_map_cc200[] = {
+ NSPAIR(_ZN5cc200C1Ev),
+ NSPAIR(_ZN5cc200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_cc200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+Class_Descriptor cd_cc200 = { "cc200", // class name
+ bases_cc200, 2,
+ &(vtc_cc200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0200 : cc200 {
+ int d;
+ ~dd0200(); // tgen
+ dd0200(); // tgen
+};
+//SIG(-1 dd0200) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd0200 ::~dd0200(){ note_dtor("dd0200", this);} // tgen
+dd0200 ::dd0200(){ note_ctor("dd0200", this);} // tgen
+
+static void Test_dd0200()
+{
+ extern Class_Descriptor cd_dd0200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0200, buf);
+ dd0200 *dp, &lv = *(dp=new (buf) dd0200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(8,4), "dd0200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(8,4), "dd0200");
+ check_base_class_offset(lv, (cc200*), 0, "dd0200");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0200.d");
+ test_class_info(&lv, &cd_dd0200);
+ dp->~dd0200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0200(Test_dd0200, "dd0200", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0200C1Ev();
+extern void _ZN6dd0200D1Ev();
+Name_Map name_map_dd0200[] = {
+ NSPAIR(_ZN6dd0200C1Ev),
+ NSPAIR(_ZN6dd0200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd0200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_dd0200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+Class_Descriptor cd_dd0200 = { "dd0200", // class name
+ bases_dd0200, 3,
+ &(vtc_dd0200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00200 : dd0200 {
+ int e;
+ ~ee00200(); // tgen
+ ee00200(); // tgen
+};
+//SIG(1 ee00200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00200 ::~ee00200(){ note_dtor("ee00200", this);} // tgen
+ee00200 ::ee00200(){ note_ctor("ee00200", this);} // tgen
+
+static void Test_ee00200()
+{
+ extern Class_Descriptor cd_ee00200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00200, buf);
+ ee00200 *dp, &lv = *(dp=new (buf) ee00200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee00200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee00200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), 0, "ee00200");
+ check_base_class_offset(lv, (dd0200*), 0, "ee00200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00200.e");
+ test_class_info(&lv, &cd_ee00200);
+ dp->~ee00200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00200(Test_ee00200, "ee00200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00200C1Ev();
+extern void _ZN7ee00200D1Ev();
+Name_Map name_map_ee00200[] = {
+ NSPAIR(_ZN7ee00200C1Ev),
+ NSPAIR(_ZN7ee00200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee00200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee00200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00200[];
+extern VTBL_ENTRY _ZTV7ee00200[];
+Class_Descriptor cd_ee00200 = { "ee00200", // class name
+ bases_ee00200, 4,
+ &(vtc_ee00200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10200 : virtual dd0200 {
+ int e;
+ ~ee10200(); // tgen
+ ee10200(); // tgen
+};
+//SIG(1 ee10200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10200 ::~ee10200(){ note_dtor("ee10200", this);} // tgen
+ee10200 ::ee10200(){ note_ctor("ee10200", this);} // tgen
+
+static void Test_ee10200()
+{
+ extern Class_Descriptor cd_ee10200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10200, buf);
+ ee10200 *dp, &lv = *(dp=new (buf) ee10200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee10200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee10200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), ABISELECT(16,8), "ee10200");
+ check_base_class_offset(lv, (dd0200*), ABISELECT(16,8), "ee10200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10200.e");
+ test_class_info(&lv, &cd_ee10200);
+ dp->~ee10200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10200(Test_ee10200, "ee10200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10200C1Ev();
+extern void _ZN7ee10200D1Ev();
+Name_Map name_map_ee10200[] = {
+ NSPAIR(_ZN7ee10200C1Ev),
+ NSPAIR(_ZN7ee10200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee10200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee10200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10200[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10200[];
+static VTT_ENTRY vtt_ee10200[] = {
+ {&(_ZTV7ee10200[3]), 3,7},
+ {&(_ZTV7ee10200[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10200[];
+extern VTBL_ENTRY _ZTV7ee10200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10200[];
+Class_Descriptor cd_ee10200 = { "ee10200", // class name
+ bases_ee10200, 4,
+ &(vtc_ee10200[0]), // expected_vtbl_contents
+ &(vtt_ee10200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10200),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20200 : dd0200 {
+ int e;
+ virtual void foo(); // _ZN7ee202003fooEv
+ ~ee20200(); // tgen
+ ee20200(); // tgen
+};
+//SIG(1 ee20200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20200 ::foo(){vfunc_called(this, "_ZN7ee202003fooEv");}
+ee20200 ::~ee20200(){ note_dtor("ee20200", this);} // tgen
+ee20200 ::ee20200(){ note_ctor("ee20200", this);} // tgen
+
+static void Test_ee20200()
+{
+ extern Class_Descriptor cd_ee20200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20200, buf);
+ ee20200 *dp, &lv = *(dp=new (buf) ee20200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee20200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee20200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), 0, "ee20200");
+ check_base_class_offset(lv, (dd0200*), 0, "ee20200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20200.e");
+ test_class_info(&lv, &cd_ee20200);
+ dp->~ee20200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20200(Test_ee20200, "ee20200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20200C1Ev();
+extern void _ZN7ee20200D1Ev();
+Name_Map name_map_ee20200[] = {
+ NSPAIR(_ZN7ee20200C1Ev),
+ NSPAIR(_ZN7ee20200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee20200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20200[];
+extern void _ZN7ee202003fooEv();
+static VTBL_ENTRY vtc_ee20200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20200[0]),
+ (VTBL_ENTRY)&_ZN7ee202003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20200[];
+extern VTBL_ENTRY _ZTV7ee20200[];
+Class_Descriptor cd_ee20200 = { "ee20200", // class name
+ bases_ee20200, 4,
+ &(vtc_ee20200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30200 : virtual dd0200 {
+ int e;
+ virtual void foo(); // _ZN7ee302003fooEv
+ ~ee30200(); // tgen
+ ee30200(); // tgen
+};
+//SIG(1 ee30200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30200 ::foo(){vfunc_called(this, "_ZN7ee302003fooEv");}
+ee30200 ::~ee30200(){ note_dtor("ee30200", this);} // tgen
+ee30200 ::ee30200(){ note_ctor("ee30200", this);} // tgen
+
+static void Test_ee30200()
+{
+ extern Class_Descriptor cd_ee30200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30200, buf);
+ ee30200 *dp, &lv = *(dp=new (buf) ee30200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee30200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee30200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), ABISELECT(16,8), "ee30200");
+ check_base_class_offset(lv, (dd0200*), ABISELECT(16,8), "ee30200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30200.e");
+ test_class_info(&lv, &cd_ee30200);
+ dp->~ee30200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30200(Test_ee30200, "ee30200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30200C1Ev();
+extern void _ZN7ee30200D1Ev();
+Name_Map name_map_ee30200[] = {
+ NSPAIR(_ZN7ee30200C1Ev),
+ NSPAIR(_ZN7ee30200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee30200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30200[];
+extern void _ZN7ee302003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302003fooEv,_ZTv0_n12_N7ee302003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302003fooEv,_ZThn8_N7ee302003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30200[0]),
+ (VTBL_ENTRY)&_ZN7ee302003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302003fooEv,_ZTv0_n12_N7ee302003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30200[];
+static VTT_ENTRY vtt_ee30200[] = {
+ {&(_ZTV7ee30200[3]), 3,8},
+ {&(_ZTV7ee30200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30200[];
+extern VTBL_ENTRY _ZTV7ee30200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30200[];
+static VTBL_ENTRY alt_thunk_names29[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302003fooEv,_ZTv0_n12_N7ee302003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302003fooEv,_ZThn8_N7ee302003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30200 = { "ee30200", // class name
+ bases_ee30200, 4,
+ &(vtc_ee30200[0]), // expected_vtbl_contents
+ &(vtt_ee30200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names29,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40200 : dd0200 {
+ int e;
+ virtual void bar(); // _ZN7ee402003barEv
+ ~ee40200(); // tgen
+ ee40200(); // tgen
+};
+//SIG(1 ee40200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40200 ::bar(){vfunc_called(this, "_ZN7ee402003barEv");}
+ee40200 ::~ee40200(){ note_dtor("ee40200", this);} // tgen
+ee40200 ::ee40200(){ note_ctor("ee40200", this);} // tgen
+
+static void Test_ee40200()
+{
+ extern Class_Descriptor cd_ee40200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40200, buf);
+ ee40200 *dp, &lv = *(dp=new (buf) ee40200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee40200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee40200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), 0, "ee40200");
+ check_base_class_offset(lv, (dd0200*), 0, "ee40200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40200.e");
+ test_class_info(&lv, &cd_ee40200);
+ dp->~ee40200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40200(Test_ee40200, "ee40200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40200C1Ev();
+extern void _ZN7ee40200D1Ev();
+Name_Map name_map_ee40200[] = {
+ NSPAIR(_ZN7ee40200C1Ev),
+ NSPAIR(_ZN7ee40200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee40200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN7ee402003barEv();
+static VTBL_ENTRY vtc_ee40200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN7ee402003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40200[];
+extern VTBL_ENTRY _ZTV7ee40200[];
+Class_Descriptor cd_ee40200 = { "ee40200", // class name
+ bases_ee40200, 4,
+ &(vtc_ee40200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50200 : virtual dd0200 {
+ int e;
+ virtual void bar(); // _ZN7ee502003barEv
+ ~ee50200(); // tgen
+ ee50200(); // tgen
+};
+//SIG(1 ee50200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50200 ::bar(){vfunc_called(this, "_ZN7ee502003barEv");}
+ee50200 ::~ee50200(){ note_dtor("ee50200", this);} // tgen
+ee50200 ::ee50200(){ note_ctor("ee50200", this);} // tgen
+
+static void Test_ee50200()
+{
+ extern Class_Descriptor cd_ee50200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50200, buf);
+ ee50200 *dp, &lv = *(dp=new (buf) ee50200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee50200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee50200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), ABISELECT(16,8), "ee50200");
+ check_base_class_offset(lv, (dd0200*), ABISELECT(16,8), "ee50200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50200.e");
+ test_class_info(&lv, &cd_ee50200);
+ dp->~ee50200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50200(Test_ee50200, "ee50200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50200C1Ev();
+extern void _ZN7ee50200D1Ev();
+Name_Map name_map_ee50200[] = {
+ NSPAIR(_ZN7ee50200C1Ev),
+ NSPAIR(_ZN7ee50200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee50200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50200[];
+extern void _ZN7ee502003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee50200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50200[0]),
+ (VTBL_ENTRY)&_ZN7ee502003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50200[];
+static VTT_ENTRY vtt_ee50200[] = {
+ {&(_ZTV7ee50200[3]), 3,8},
+ {&(_ZTV7ee50200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50200[];
+extern VTBL_ENTRY _ZTV7ee50200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50200[];
+Class_Descriptor cd_ee50200 = { "ee50200", // class name
+ bases_ee50200, 4,
+ &(vtc_ee50200[0]), // expected_vtbl_contents
+ &(vtt_ee50200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60200 : dd0200 {
+ int e;
+ virtual void foo(); // _ZN7ee602003fooEv
+ virtual void bar(); // _ZN7ee602003barEv
+ ~ee60200(); // tgen
+ ee60200(); // tgen
+};
+//SIG(1 ee60200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60200 ::foo(){vfunc_called(this, "_ZN7ee602003fooEv");}
+void ee60200 ::bar(){vfunc_called(this, "_ZN7ee602003barEv");}
+ee60200 ::~ee60200(){ note_dtor("ee60200", this);} // tgen
+ee60200 ::ee60200(){ note_ctor("ee60200", this);} // tgen
+
+static void Test_ee60200()
+{
+ extern Class_Descriptor cd_ee60200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60200, buf);
+ ee60200 *dp, &lv = *(dp=new (buf) ee60200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee60200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(8,4), "ee60200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), 0, "ee60200");
+ check_base_class_offset(lv, (dd0200*), 0, "ee60200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60200.e");
+ test_class_info(&lv, &cd_ee60200);
+ dp->~ee60200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60200(Test_ee60200, "ee60200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60200C1Ev();
+extern void _ZN7ee60200D1Ev();
+Name_Map name_map_ee60200[] = {
+ NSPAIR(_ZN7ee60200C1Ev),
+ NSPAIR(_ZN7ee60200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee60200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60200[];
+extern void _ZN7ee602003fooEv();
+extern void _ZN7ee602003barEv();
+static VTBL_ENTRY vtc_ee60200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60200[0]),
+ (VTBL_ENTRY)&_ZN7ee602003fooEv,
+ (VTBL_ENTRY)&_ZN7ee602003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60200[];
+extern VTBL_ENTRY _ZTV7ee60200[];
+Class_Descriptor cd_ee60200 = { "ee60200", // class name
+ bases_ee60200, 4,
+ &(vtc_ee60200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70200 : virtual dd0200 {
+ int e;
+ virtual void foo(); // _ZN7ee702003fooEv
+ virtual void bar(); // _ZN7ee702003barEv
+ ~ee70200(); // tgen
+ ee70200(); // tgen
+};
+//SIG(1 ee70200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70200 ::foo(){vfunc_called(this, "_ZN7ee702003fooEv");}
+void ee70200 ::bar(){vfunc_called(this, "_ZN7ee702003barEv");}
+ee70200 ::~ee70200(){ note_dtor("ee70200", this);} // tgen
+ee70200 ::ee70200(){ note_ctor("ee70200", this);} // tgen
+
+static void Test_ee70200()
+{
+ extern Class_Descriptor cd_ee70200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70200, buf);
+ ee70200 *dp, &lv = *(dp=new (buf) ee70200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee70200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd0200*), ABISELECT(24,12), "ee70200");
+ check_base_class_offset(lv, (cc200*)(dd0200*), ABISELECT(16,8), "ee70200");
+ check_base_class_offset(lv, (dd0200*), ABISELECT(16,8), "ee70200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70200.e");
+ test_class_info(&lv, &cd_ee70200);
+ dp->~ee70200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70200(Test_ee70200, "ee70200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70200C1Ev();
+extern void _ZN7ee70200D1Ev();
+Name_Map name_map_ee70200[] = {
+ NSPAIR(_ZN7ee70200C1Ev),
+ NSPAIR(_ZN7ee70200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd0200;
+extern VTBL_ENTRY _ZTI6dd0200[];
+extern VTBL_ENTRY _ZTV6dd0200[];
+static Base_Class bases_ee70200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70200[];
+extern void _ZN7ee702003fooEv();
+extern void _ZN7ee702003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702003fooEv,_ZTv0_n12_N7ee702003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702003fooEv,_ZThn8_N7ee702003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70200[0]),
+ (VTBL_ENTRY)&_ZN7ee702003fooEv,
+ (VTBL_ENTRY)&_ZN7ee702003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702003fooEv,_ZTv0_n12_N7ee702003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70200[];
+static VTT_ENTRY vtt_ee70200[] = {
+ {&(_ZTV7ee70200[3]), 3,9},
+ {&(_ZTV7ee70200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70200[];
+extern VTBL_ENTRY _ZTV7ee70200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70200[];
+static VTBL_ENTRY alt_thunk_names30[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702003fooEv,_ZTv0_n12_N7ee702003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702003fooEv,_ZThn8_N7ee702003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70200 = { "ee70200", // class name
+ bases_ee70200, 4,
+ &(vtc_ee70200[0]), // expected_vtbl_contents
+ &(vtt_ee70200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names30,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1200 : virtual cc200 {
+ int d;
+ ~dd1200(); // tgen
+ dd1200(); // tgen
+};
+//SIG(-1 dd1200) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd1200 ::~dd1200(){ note_dtor("dd1200", this);} // tgen
+dd1200 ::dd1200(){ note_ctor("dd1200", this);} // tgen
+
+static void Test_dd1200()
+{
+ extern Class_Descriptor cd_dd1200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1200, buf);
+ dd1200 *dp, &lv = *(dp=new (buf) dd1200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,12), "dd1200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,12), "dd1200");
+ check_base_class_offset(lv, (cc200*), ABISELECT(16,8), "dd1200");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1200.d");
+ test_class_info(&lv, &cd_dd1200);
+ dp->~dd1200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1200(Test_dd1200, "dd1200", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1200C1Ev();
+extern void _ZN6dd1200D1Ev();
+Name_Map name_map_dd1200[] = {
+ NSPAIR(_ZN6dd1200C1Ev),
+ NSPAIR(_ZN6dd1200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd1200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_dd1200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1200[];
+static VTT_ENTRY vtt_dd1200[] = {
+ {&(_ZTV6dd1200[3]), 3,7},
+ {&(_ZTV6dd1200[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+Class_Descriptor cd_dd1200 = { "dd1200", // class name
+ bases_dd1200, 3,
+ &(vtc_dd1200[0]), // expected_vtbl_contents
+ &(vtt_dd1200[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1200),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1200),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01200 : dd1200 {
+ int e;
+ ~ee01200(); // tgen
+ ee01200(); // tgen
+};
+//SIG(1 ee01200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01200 ::~ee01200(){ note_dtor("ee01200", this);} // tgen
+ee01200 ::ee01200(){ note_ctor("ee01200", this);} // tgen
+
+static void Test_ee01200()
+{
+ extern Class_Descriptor cd_ee01200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01200, buf);
+ ee01200 *dp, &lv = *(dp=new (buf) ee01200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee01200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee01200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(16,12), "ee01200");
+ check_base_class_offset(lv, (dd1200*), 0, "ee01200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01200.e");
+ test_class_info(&lv, &cd_ee01200);
+ dp->~ee01200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01200(Test_ee01200, "ee01200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01200C1Ev();
+extern void _ZN7ee01200D1Ev();
+Name_Map name_map_ee01200[] = {
+ NSPAIR(_ZN7ee01200C1Ev),
+ NSPAIR(_ZN7ee01200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee01200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee01200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01200[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee01200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee01200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee01200[] = {
+ {&(_ZTV7ee01200[3]), 3,7},
+ {&(_tg__ZTV6dd1200__7ee01200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee01200[3]), 3,4},
+ {&(_ZTV7ee01200[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01200[];
+extern VTBL_ENTRY _ZTV7ee01200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01200[];
+Class_Descriptor cd_ee01200 = { "ee01200", // class name
+ bases_ee01200, 4,
+ &(vtc_ee01200[0]), // expected_vtbl_contents
+ &(vtt_ee01200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01200),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11200 : virtual dd1200 {
+ int e;
+ ~ee11200(); // tgen
+ ee11200(); // tgen
+};
+//SIG(1 ee11200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11200 ::~ee11200(){ note_dtor("ee11200", this);} // tgen
+ee11200 ::ee11200(){ note_ctor("ee11200", this);} // tgen
+
+static void Test_ee11200()
+{
+ extern Class_Descriptor cd_ee11200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11200, buf);
+ ee11200 *dp, &lv = *(dp=new (buf) ee11200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee11200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee11200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(32,16), "ee11200");
+ check_base_class_offset(lv, (dd1200*), ABISELECT(16,8), "ee11200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11200.e");
+ test_class_info(&lv, &cd_ee11200);
+ dp->~ee11200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11200(Test_ee11200, "ee11200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11200C1Ev();
+extern void _ZN7ee11200D1Ev();
+Name_Map name_map_ee11200[] = {
+ NSPAIR(_ZN7ee11200C1Ev),
+ NSPAIR(_ZN7ee11200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee11200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11200[];
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee11200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11200[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11200[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee11200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee11200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee11200[] = {
+ {&(_ZTV7ee11200[4]), 4,11},
+ {&(_ZTV7ee11200[7]), 7,11},
+ {&(_ZTV7ee11200[10]), 10,11},
+ {&(_tg__ZTV6dd1200__7ee11200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee11200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11200[];
+extern VTBL_ENTRY _ZTV7ee11200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11200[];
+Class_Descriptor cd_ee11200 = { "ee11200", // class name
+ bases_ee11200, 4,
+ &(vtc_ee11200[0]), // expected_vtbl_contents
+ &(vtt_ee11200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11200),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21200 : dd1200 {
+ int e;
+ virtual void foo(); // _ZN7ee212003fooEv
+ ~ee21200(); // tgen
+ ee21200(); // tgen
+};
+//SIG(1 ee21200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21200 ::foo(){vfunc_called(this, "_ZN7ee212003fooEv");}
+ee21200 ::~ee21200(){ note_dtor("ee21200", this);} // tgen
+ee21200 ::ee21200(){ note_ctor("ee21200", this);} // tgen
+
+static void Test_ee21200()
+{
+ extern Class_Descriptor cd_ee21200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21200, buf);
+ ee21200 *dp, &lv = *(dp=new (buf) ee21200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee21200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee21200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(16,12), "ee21200");
+ check_base_class_offset(lv, (dd1200*), 0, "ee21200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21200.e");
+ test_class_info(&lv, &cd_ee21200);
+ dp->~ee21200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21200(Test_ee21200, "ee21200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21200C1Ev();
+extern void _ZN7ee21200D1Ev();
+Name_Map name_map_ee21200[] = {
+ NSPAIR(_ZN7ee21200C1Ev),
+ NSPAIR(_ZN7ee21200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee21200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21200[];
+extern void _ZN7ee212003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212003fooEv,_ZTv0_n12_N7ee212003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212003fooEv,_ZThn12_N7ee212003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21200[0]),
+ (VTBL_ENTRY)&_ZN7ee212003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212003fooEv,_ZTv0_n12_N7ee212003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee21200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee21200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee21200[] = {
+ {&(_ZTV7ee21200[3]), 3,8},
+ {&(_tg__ZTV6dd1200__7ee21200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee21200[3]), 3,4},
+ {&(_ZTV7ee21200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21200[];
+extern VTBL_ENTRY _ZTV7ee21200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21200[];
+static VTBL_ENTRY alt_thunk_names31[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212003fooEv,_ZTv0_n12_N7ee212003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212003fooEv,_ZThn12_N7ee212003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21200 = { "ee21200", // class name
+ bases_ee21200, 4,
+ &(vtc_ee21200[0]), // expected_vtbl_contents
+ &(vtt_ee21200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names31,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31200 : virtual dd1200 {
+ int e;
+ virtual void foo(); // _ZN7ee312003fooEv
+ ~ee31200(); // tgen
+ ee31200(); // tgen
+};
+//SIG(1 ee31200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31200 ::foo(){vfunc_called(this, "_ZN7ee312003fooEv");}
+ee31200 ::~ee31200(){ note_dtor("ee31200", this);} // tgen
+ee31200 ::ee31200(){ note_ctor("ee31200", this);} // tgen
+
+static void Test_ee31200()
+{
+ extern Class_Descriptor cd_ee31200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31200, buf);
+ ee31200 *dp, &lv = *(dp=new (buf) ee31200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee31200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee31200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(32,16), "ee31200");
+ check_base_class_offset(lv, (dd1200*), ABISELECT(16,8), "ee31200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31200.e");
+ test_class_info(&lv, &cd_ee31200);
+ dp->~ee31200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31200(Test_ee31200, "ee31200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31200C1Ev();
+extern void _ZN7ee31200D1Ev();
+Name_Map name_map_ee31200[] = {
+ NSPAIR(_ZN7ee31200C1Ev),
+ NSPAIR(_ZN7ee31200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee31200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31200[];
+extern void _ZN7ee312003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312003fooEv,_ZTv0_n12_N7ee312003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312003fooEv,_ZThn16_N7ee312003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31200[0]),
+ (VTBL_ENTRY)&_ZN7ee312003fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31200[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312003fooEv,_ZTv0_n12_N7ee312003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee31200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee31200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee31200[] = {
+ {&(_ZTV7ee31200[4]), 4,12},
+ {&(_ZTV7ee31200[8]), 8,12},
+ {&(_ZTV7ee31200[11]), 11,12},
+ {&(_tg__ZTV6dd1200__7ee31200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee31200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31200[];
+extern VTBL_ENTRY _ZTV7ee31200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31200[];
+static VTBL_ENTRY alt_thunk_names32[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312003fooEv,_ZTv0_n12_N7ee312003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312003fooEv,_ZThn16_N7ee312003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31200 = { "ee31200", // class name
+ bases_ee31200, 4,
+ &(vtc_ee31200[0]), // expected_vtbl_contents
+ &(vtt_ee31200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31200),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names32,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41200 : dd1200 {
+ int e;
+ virtual void bar(); // _ZN7ee412003barEv
+ ~ee41200(); // tgen
+ ee41200(); // tgen
+};
+//SIG(1 ee41200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41200 ::bar(){vfunc_called(this, "_ZN7ee412003barEv");}
+ee41200 ::~ee41200(){ note_dtor("ee41200", this);} // tgen
+ee41200 ::ee41200(){ note_ctor("ee41200", this);} // tgen
+
+static void Test_ee41200()
+{
+ extern Class_Descriptor cd_ee41200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41200, buf);
+ ee41200 *dp, &lv = *(dp=new (buf) ee41200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee41200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee41200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(16,12), "ee41200");
+ check_base_class_offset(lv, (dd1200*), 0, "ee41200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41200.e");
+ test_class_info(&lv, &cd_ee41200);
+ dp->~ee41200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41200(Test_ee41200, "ee41200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41200C1Ev();
+extern void _ZN7ee41200D1Ev();
+Name_Map name_map_ee41200[] = {
+ NSPAIR(_ZN7ee41200C1Ev),
+ NSPAIR(_ZN7ee41200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee41200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41200[];
+extern void _ZN7ee412003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee41200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41200[0]),
+ (VTBL_ENTRY)&_ZN7ee412003barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee41200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee41200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee41200[] = {
+ {&(_ZTV7ee41200[3]), 3,8},
+ {&(_tg__ZTV6dd1200__7ee41200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee41200[3]), 3,4},
+ {&(_ZTV7ee41200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41200[];
+extern VTBL_ENTRY _ZTV7ee41200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41200[];
+Class_Descriptor cd_ee41200 = { "ee41200", // class name
+ bases_ee41200, 4,
+ &(vtc_ee41200[0]), // expected_vtbl_contents
+ &(vtt_ee41200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51200 : virtual dd1200 {
+ int e;
+ virtual void bar(); // _ZN7ee512003barEv
+ ~ee51200(); // tgen
+ ee51200(); // tgen
+};
+//SIG(1 ee51200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51200 ::bar(){vfunc_called(this, "_ZN7ee512003barEv");}
+ee51200 ::~ee51200(){ note_dtor("ee51200", this);} // tgen
+ee51200 ::ee51200(){ note_ctor("ee51200", this);} // tgen
+
+static void Test_ee51200()
+{
+ extern Class_Descriptor cd_ee51200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51200, buf);
+ ee51200 *dp, &lv = *(dp=new (buf) ee51200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee51200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee51200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(32,16), "ee51200");
+ check_base_class_offset(lv, (dd1200*), ABISELECT(16,8), "ee51200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51200.e");
+ test_class_info(&lv, &cd_ee51200);
+ dp->~ee51200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51200(Test_ee51200, "ee51200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51200C1Ev();
+extern void _ZN7ee51200D1Ev();
+Name_Map name_map_ee51200[] = {
+ NSPAIR(_ZN7ee51200C1Ev),
+ NSPAIR(_ZN7ee51200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee51200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51200[];
+extern void _ZN7ee512003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee51200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51200[0]),
+ (VTBL_ENTRY)&_ZN7ee512003barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51200[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee51200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee51200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee51200[] = {
+ {&(_ZTV7ee51200[4]), 4,12},
+ {&(_ZTV7ee51200[8]), 8,12},
+ {&(_ZTV7ee51200[11]), 11,12},
+ {&(_tg__ZTV6dd1200__7ee51200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee51200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51200[];
+extern VTBL_ENTRY _ZTV7ee51200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51200[];
+Class_Descriptor cd_ee51200 = { "ee51200", // class name
+ bases_ee51200, 4,
+ &(vtc_ee51200[0]), // expected_vtbl_contents
+ &(vtt_ee51200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51200),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61200 : dd1200 {
+ int e;
+ virtual void foo(); // _ZN7ee612003fooEv
+ virtual void bar(); // _ZN7ee612003barEv
+ ~ee61200(); // tgen
+ ee61200(); // tgen
+};
+//SIG(1 ee61200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61200 ::foo(){vfunc_called(this, "_ZN7ee612003fooEv");}
+void ee61200 ::bar(){vfunc_called(this, "_ZN7ee612003barEv");}
+ee61200 ::~ee61200(){ note_dtor("ee61200", this);} // tgen
+ee61200 ::ee61200(){ note_ctor("ee61200", this);} // tgen
+
+static void Test_ee61200()
+{
+ extern Class_Descriptor cd_ee61200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61200, buf);
+ ee61200 *dp, &lv = *(dp=new (buf) ee61200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee61200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee61200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(16,12), "ee61200");
+ check_base_class_offset(lv, (dd1200*), 0, "ee61200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61200.e");
+ test_class_info(&lv, &cd_ee61200);
+ dp->~ee61200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61200(Test_ee61200, "ee61200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61200C1Ev();
+extern void _ZN7ee61200D1Ev();
+Name_Map name_map_ee61200[] = {
+ NSPAIR(_ZN7ee61200C1Ev),
+ NSPAIR(_ZN7ee61200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee61200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61200[];
+extern void _ZN7ee612003fooEv();
+extern void _ZN7ee612003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612003fooEv,_ZTv0_n12_N7ee612003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612003fooEv,_ZThn12_N7ee612003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61200[0]),
+ (VTBL_ENTRY)&_ZN7ee612003fooEv,
+ (VTBL_ENTRY)&_ZN7ee612003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612003fooEv,_ZTv0_n12_N7ee612003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee61200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee61200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee61200[] = {
+ {&(_ZTV7ee61200[3]), 3,9},
+ {&(_tg__ZTV6dd1200__7ee61200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee61200[3]), 3,4},
+ {&(_ZTV7ee61200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61200[];
+extern VTBL_ENTRY _ZTV7ee61200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61200[];
+static VTBL_ENTRY alt_thunk_names33[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612003fooEv,_ZTv0_n12_N7ee612003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612003fooEv,_ZThn12_N7ee612003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61200 = { "ee61200", // class name
+ bases_ee61200, 4,
+ &(vtc_ee61200[0]), // expected_vtbl_contents
+ &(vtt_ee61200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names33,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71200 : virtual dd1200 {
+ int e;
+ virtual void foo(); // _ZN7ee712003fooEv
+ virtual void bar(); // _ZN7ee712003barEv
+ ~ee71200(); // tgen
+ ee71200(); // tgen
+};
+//SIG(1 ee71200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71200 ::foo(){vfunc_called(this, "_ZN7ee712003fooEv");}
+void ee71200 ::bar(){vfunc_called(this, "_ZN7ee712003barEv");}
+ee71200 ::~ee71200(){ note_dtor("ee71200", this);} // tgen
+ee71200 ::ee71200(){ note_ctor("ee71200", this);} // tgen
+
+static void Test_ee71200()
+{
+ extern Class_Descriptor cd_ee71200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71200, buf);
+ ee71200 *dp, &lv = *(dp=new (buf) ee71200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee71200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee71200");
+ check_base_class_offset(lv, (cc200*)(dd1200*), ABISELECT(32,16), "ee71200");
+ check_base_class_offset(lv, (dd1200*), ABISELECT(16,8), "ee71200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71200.e");
+ test_class_info(&lv, &cd_ee71200);
+ dp->~ee71200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71200(Test_ee71200, "ee71200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71200C1Ev();
+extern void _ZN7ee71200D1Ev();
+Name_Map name_map_ee71200[] = {
+ NSPAIR(_ZN7ee71200C1Ev),
+ NSPAIR(_ZN7ee71200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd1200;
+extern VTBL_ENTRY _ZTI6dd1200[];
+extern VTBL_ENTRY _ZTV6dd1200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1200[];
+static Base_Class bases_ee71200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1200, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71200[];
+extern void _ZN7ee712003fooEv();
+extern void _ZN7ee712003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712003fooEv,_ZTv0_n12_N7ee712003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712003fooEv,_ZThn16_N7ee712003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71200[0]),
+ (VTBL_ENTRY)&_ZN7ee712003fooEv,
+ (VTBL_ENTRY)&_ZN7ee712003barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71200[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712003fooEv,_ZTv0_n12_N7ee712003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71200[];
+static VTBL_ENTRY _tg__ZTV6dd1200__7ee71200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd1200__7ee71200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee71200[] = {
+ {&(_ZTV7ee71200[4]), 4,13},
+ {&(_ZTV7ee71200[9]), 9,13},
+ {&(_ZTV7ee71200[12]), 12,13},
+ {&(_tg__ZTV6dd1200__7ee71200[3]), 3,3},
+ {&(_tg__ZTV5cc200__6dd1200__7ee71200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71200[];
+extern VTBL_ENTRY _ZTV7ee71200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71200[];
+static VTBL_ENTRY alt_thunk_names34[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712003fooEv,_ZTv0_n12_N7ee712003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712003fooEv,_ZThn16_N7ee712003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71200 = { "ee71200", // class name
+ bases_ee71200, 4,
+ &(vtc_ee71200[0]), // expected_vtbl_contents
+ &(vtt_ee71200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71200),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names34,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2200 : cc200 {
+ int d;
+ virtual void foo(); // _ZN6dd22003fooEv
+ ~dd2200(); // tgen
+ dd2200(); // tgen
+};
+//SIG(-1 dd2200) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd2200 ::foo(){vfunc_called(this, "_ZN6dd22003fooEv");}
+dd2200 ::~dd2200(){ note_dtor("dd2200", this);} // tgen
+dd2200 ::dd2200(){ note_ctor("dd2200", this);} // tgen
+
+static void Test_dd2200()
+{
+ extern Class_Descriptor cd_dd2200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2200, buf);
+ dd2200 *dp, &lv = *(dp=new (buf) dd2200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(8,4), "dd2200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(8,4), "dd2200");
+ check_base_class_offset(lv, (cc200*), 0, "dd2200");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2200.d");
+ test_class_info(&lv, &cd_dd2200);
+ dp->~dd2200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2200(Test_dd2200, "dd2200", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2200C1Ev();
+extern void _ZN6dd2200D1Ev();
+Name_Map name_map_dd2200[] = {
+ NSPAIR(_ZN6dd2200C1Ev),
+ NSPAIR(_ZN6dd2200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd2200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern void _ZN6dd22003fooEv();
+static VTBL_ENTRY vtc_dd2200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+Class_Descriptor cd_dd2200 = { "dd2200", // class name
+ bases_dd2200, 3,
+ &(vtc_dd2200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02200 : dd2200 {
+ int e;
+ ~ee02200(); // tgen
+ ee02200(); // tgen
+};
+//SIG(1 ee02200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02200 ::~ee02200(){ note_dtor("ee02200", this);} // tgen
+ee02200 ::ee02200(){ note_ctor("ee02200", this);} // tgen
+
+static void Test_ee02200()
+{
+ extern Class_Descriptor cd_ee02200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02200, buf);
+ ee02200 *dp, &lv = *(dp=new (buf) ee02200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee02200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee02200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), 0, "ee02200");
+ check_base_class_offset(lv, (dd2200*), 0, "ee02200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02200.e");
+ test_class_info(&lv, &cd_ee02200);
+ dp->~ee02200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02200(Test_ee02200, "ee02200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02200C1Ev();
+extern void _ZN7ee02200D1Ev();
+Name_Map name_map_ee02200[] = {
+ NSPAIR(_ZN7ee02200C1Ev),
+ NSPAIR(_ZN7ee02200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee02200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02200[];
+extern void _ZN6dd22003fooEv();
+static VTBL_ENTRY vtc_ee02200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02200[];
+extern VTBL_ENTRY _ZTV7ee02200[];
+Class_Descriptor cd_ee02200 = { "ee02200", // class name
+ bases_ee02200, 4,
+ &(vtc_ee02200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12200 : virtual dd2200 {
+ int e;
+ ~ee12200(); // tgen
+ ee12200(); // tgen
+};
+//SIG(1 ee12200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12200 ::~ee12200(){ note_dtor("ee12200", this);} // tgen
+ee12200 ::ee12200(){ note_ctor("ee12200", this);} // tgen
+
+static void Test_ee12200()
+{
+ extern Class_Descriptor cd_ee12200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12200, buf);
+ ee12200 *dp, &lv = *(dp=new (buf) ee12200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee12200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee12200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), ABISELECT(16,8), "ee12200");
+ check_base_class_offset(lv, (dd2200*), ABISELECT(16,8), "ee12200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12200.e");
+ test_class_info(&lv, &cd_ee12200);
+ dp->~ee12200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12200(Test_ee12200, "ee12200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12200C1Ev();
+extern void _ZN7ee12200D1Ev();
+Name_Map name_map_ee12200[] = {
+ NSPAIR(_ZN7ee12200C1Ev),
+ NSPAIR(_ZN7ee12200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee12200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12200[];
+extern void _ZN6dd22003fooEv();
+static VTBL_ENTRY vtc_ee12200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12200[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12200[];
+static VTT_ENTRY vtt_ee12200[] = {
+ {&(_ZTV7ee12200[3]), 3,7},
+ {&(_ZTV7ee12200[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12200[];
+extern VTBL_ENTRY _ZTV7ee12200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12200[];
+Class_Descriptor cd_ee12200 = { "ee12200", // class name
+ bases_ee12200, 4,
+ &(vtc_ee12200[0]), // expected_vtbl_contents
+ &(vtt_ee12200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12200),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22200 : dd2200 {
+ int e;
+ virtual void foo(); // _ZN7ee222003fooEv
+ ~ee22200(); // tgen
+ ee22200(); // tgen
+};
+//SIG(1 ee22200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22200 ::foo(){vfunc_called(this, "_ZN7ee222003fooEv");}
+ee22200 ::~ee22200(){ note_dtor("ee22200", this);} // tgen
+ee22200 ::ee22200(){ note_ctor("ee22200", this);} // tgen
+
+static void Test_ee22200()
+{
+ extern Class_Descriptor cd_ee22200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22200, buf);
+ ee22200 *dp, &lv = *(dp=new (buf) ee22200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee22200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee22200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), 0, "ee22200");
+ check_base_class_offset(lv, (dd2200*), 0, "ee22200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22200.e");
+ test_class_info(&lv, &cd_ee22200);
+ dp->~ee22200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22200(Test_ee22200, "ee22200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22200C1Ev();
+extern void _ZN7ee22200D1Ev();
+Name_Map name_map_ee22200[] = {
+ NSPAIR(_ZN7ee22200C1Ev),
+ NSPAIR(_ZN7ee22200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee22200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22200[];
+extern void _ZN7ee222003fooEv();
+static VTBL_ENTRY vtc_ee22200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22200[0]),
+ (VTBL_ENTRY)&_ZN7ee222003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22200[];
+extern VTBL_ENTRY _ZTV7ee22200[];
+Class_Descriptor cd_ee22200 = { "ee22200", // class name
+ bases_ee22200, 4,
+ &(vtc_ee22200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22200),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32200 : virtual dd2200 {
+ int e;
+ virtual void foo(); // _ZN7ee322003fooEv
+ ~ee32200(); // tgen
+ ee32200(); // tgen
+};
+//SIG(1 ee32200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32200 ::foo(){vfunc_called(this, "_ZN7ee322003fooEv");}
+ee32200 ::~ee32200(){ note_dtor("ee32200", this);} // tgen
+ee32200 ::ee32200(){ note_ctor("ee32200", this);} // tgen
+
+static void Test_ee32200()
+{
+ extern Class_Descriptor cd_ee32200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32200, buf);
+ ee32200 *dp, &lv = *(dp=new (buf) ee32200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee32200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee32200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), ABISELECT(16,8), "ee32200");
+ check_base_class_offset(lv, (dd2200*), ABISELECT(16,8), "ee32200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32200.e");
+ test_class_info(&lv, &cd_ee32200);
+ dp->~ee32200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32200(Test_ee32200, "ee32200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32200C1Ev();
+extern void _ZN7ee32200D1Ev();
+Name_Map name_map_ee32200[] = {
+ NSPAIR(_ZN7ee32200C1Ev),
+ NSPAIR(_ZN7ee32200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee32200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32200[];
+extern void _ZN7ee322003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322003fooEv,_ZTv0_n12_N7ee322003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322003fooEv,_ZThn8_N7ee322003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32200[0]),
+ (VTBL_ENTRY)&_ZN7ee322003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322003fooEv,_ZTv0_n12_N7ee322003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32200[];
+static VTT_ENTRY vtt_ee32200[] = {
+ {&(_ZTV7ee32200[3]), 3,8},
+ {&(_ZTV7ee32200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32200[];
+extern VTBL_ENTRY _ZTV7ee32200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32200[];
+static VTBL_ENTRY alt_thunk_names35[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322003fooEv,_ZTv0_n12_N7ee322003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322003fooEv,_ZThn8_N7ee322003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32200 = { "ee32200", // class name
+ bases_ee32200, 4,
+ &(vtc_ee32200[0]), // expected_vtbl_contents
+ &(vtt_ee32200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names35,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42200 : dd2200 {
+ int e;
+ virtual void bar(); // _ZN7ee422003barEv
+ ~ee42200(); // tgen
+ ee42200(); // tgen
+};
+//SIG(1 ee42200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42200 ::bar(){vfunc_called(this, "_ZN7ee422003barEv");}
+ee42200 ::~ee42200(){ note_dtor("ee42200", this);} // tgen
+ee42200 ::ee42200(){ note_ctor("ee42200", this);} // tgen
+
+static void Test_ee42200()
+{
+ extern Class_Descriptor cd_ee42200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42200, buf);
+ ee42200 *dp, &lv = *(dp=new (buf) ee42200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee42200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee42200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), 0, "ee42200");
+ check_base_class_offset(lv, (dd2200*), 0, "ee42200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42200.e");
+ test_class_info(&lv, &cd_ee42200);
+ dp->~ee42200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42200(Test_ee42200, "ee42200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42200C1Ev();
+extern void _ZN7ee42200D1Ev();
+Name_Map name_map_ee42200[] = {
+ NSPAIR(_ZN7ee42200C1Ev),
+ NSPAIR(_ZN7ee42200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee42200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42200[];
+extern void _ZN6dd22003fooEv();
+extern void _ZN7ee422003barEv();
+static VTBL_ENTRY vtc_ee42200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+ (VTBL_ENTRY)&_ZN7ee422003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42200[];
+extern VTBL_ENTRY _ZTV7ee42200[];
+Class_Descriptor cd_ee42200 = { "ee42200", // class name
+ bases_ee42200, 4,
+ &(vtc_ee42200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52200 : virtual dd2200 {
+ int e;
+ virtual void bar(); // _ZN7ee522003barEv
+ ~ee52200(); // tgen
+ ee52200(); // tgen
+};
+//SIG(1 ee52200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52200 ::bar(){vfunc_called(this, "_ZN7ee522003barEv");}
+ee52200 ::~ee52200(){ note_dtor("ee52200", this);} // tgen
+ee52200 ::ee52200(){ note_ctor("ee52200", this);} // tgen
+
+static void Test_ee52200()
+{
+ extern Class_Descriptor cd_ee52200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52200, buf);
+ ee52200 *dp, &lv = *(dp=new (buf) ee52200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee52200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee52200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), ABISELECT(16,8), "ee52200");
+ check_base_class_offset(lv, (dd2200*), ABISELECT(16,8), "ee52200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52200.e");
+ test_class_info(&lv, &cd_ee52200);
+ dp->~ee52200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52200(Test_ee52200, "ee52200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52200C1Ev();
+extern void _ZN7ee52200D1Ev();
+Name_Map name_map_ee52200[] = {
+ NSPAIR(_ZN7ee52200C1Ev),
+ NSPAIR(_ZN7ee52200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee52200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52200[];
+extern void _ZN7ee522003barEv();
+extern void _ZN6dd22003fooEv();
+static VTBL_ENTRY vtc_ee52200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52200[0]),
+ (VTBL_ENTRY)&_ZN7ee522003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52200[0]),
+ (VTBL_ENTRY)&_ZN6dd22003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52200[];
+static VTT_ENTRY vtt_ee52200[] = {
+ {&(_ZTV7ee52200[3]), 3,8},
+ {&(_ZTV7ee52200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52200[];
+extern VTBL_ENTRY _ZTV7ee52200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52200[];
+Class_Descriptor cd_ee52200 = { "ee52200", // class name
+ bases_ee52200, 4,
+ &(vtc_ee52200[0]), // expected_vtbl_contents
+ &(vtt_ee52200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62200 : dd2200 {
+ int e;
+ virtual void foo(); // _ZN7ee622003fooEv
+ virtual void bar(); // _ZN7ee622003barEv
+ ~ee62200(); // tgen
+ ee62200(); // tgen
+};
+//SIG(1 ee62200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62200 ::foo(){vfunc_called(this, "_ZN7ee622003fooEv");}
+void ee62200 ::bar(){vfunc_called(this, "_ZN7ee622003barEv");}
+ee62200 ::~ee62200(){ note_dtor("ee62200", this);} // tgen
+ee62200 ::ee62200(){ note_ctor("ee62200", this);} // tgen
+
+static void Test_ee62200()
+{
+ extern Class_Descriptor cd_ee62200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62200, buf);
+ ee62200 *dp, &lv = *(dp=new (buf) ee62200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee62200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(8,4), "ee62200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), 0, "ee62200");
+ check_base_class_offset(lv, (dd2200*), 0, "ee62200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62200.e");
+ test_class_info(&lv, &cd_ee62200);
+ dp->~ee62200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62200(Test_ee62200, "ee62200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62200C1Ev();
+extern void _ZN7ee62200D1Ev();
+Name_Map name_map_ee62200[] = {
+ NSPAIR(_ZN7ee62200C1Ev),
+ NSPAIR(_ZN7ee62200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee62200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62200[];
+extern void _ZN7ee622003fooEv();
+extern void _ZN7ee622003barEv();
+static VTBL_ENTRY vtc_ee62200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62200[0]),
+ (VTBL_ENTRY)&_ZN7ee622003fooEv,
+ (VTBL_ENTRY)&_ZN7ee622003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62200[];
+extern VTBL_ENTRY _ZTV7ee62200[];
+Class_Descriptor cd_ee62200 = { "ee62200", // class name
+ bases_ee62200, 4,
+ &(vtc_ee62200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72200 : virtual dd2200 {
+ int e;
+ virtual void foo(); // _ZN7ee722003fooEv
+ virtual void bar(); // _ZN7ee722003barEv
+ ~ee72200(); // tgen
+ ee72200(); // tgen
+};
+//SIG(1 ee72200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72200 ::foo(){vfunc_called(this, "_ZN7ee722003fooEv");}
+void ee72200 ::bar(){vfunc_called(this, "_ZN7ee722003barEv");}
+ee72200 ::~ee72200(){ note_dtor("ee72200", this);} // tgen
+ee72200 ::ee72200(){ note_ctor("ee72200", this);} // tgen
+
+static void Test_ee72200()
+{
+ extern Class_Descriptor cd_ee72200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72200, buf);
+ ee72200 *dp, &lv = *(dp=new (buf) ee72200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee72200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd2200*), ABISELECT(24,12), "ee72200");
+ check_base_class_offset(lv, (cc200*)(dd2200*), ABISELECT(16,8), "ee72200");
+ check_base_class_offset(lv, (dd2200*), ABISELECT(16,8), "ee72200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72200.e");
+ test_class_info(&lv, &cd_ee72200);
+ dp->~ee72200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72200(Test_ee72200, "ee72200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72200C1Ev();
+extern void _ZN7ee72200D1Ev();
+Name_Map name_map_ee72200[] = {
+ NSPAIR(_ZN7ee72200C1Ev),
+ NSPAIR(_ZN7ee72200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd2200;
+extern VTBL_ENTRY _ZTI6dd2200[];
+extern VTBL_ENTRY _ZTV6dd2200[];
+static Base_Class bases_ee72200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72200[];
+extern void _ZN7ee722003fooEv();
+extern void _ZN7ee722003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722003fooEv,_ZTv0_n12_N7ee722003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722003fooEv,_ZThn8_N7ee722003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72200[0]),
+ (VTBL_ENTRY)&_ZN7ee722003fooEv,
+ (VTBL_ENTRY)&_ZN7ee722003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722003fooEv,_ZTv0_n12_N7ee722003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72200[];
+static VTT_ENTRY vtt_ee72200[] = {
+ {&(_ZTV7ee72200[3]), 3,9},
+ {&(_ZTV7ee72200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72200[];
+extern VTBL_ENTRY _ZTV7ee72200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72200[];
+static VTBL_ENTRY alt_thunk_names36[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722003fooEv,_ZTv0_n12_N7ee722003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722003fooEv,_ZThn8_N7ee722003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72200 = { "ee72200", // class name
+ bases_ee72200, 4,
+ &(vtc_ee72200[0]), // expected_vtbl_contents
+ &(vtt_ee72200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names36,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3200 : virtual cc200 {
+ int d;
+ virtual void foo(); // _ZN6dd32003fooEv
+ ~dd3200(); // tgen
+ dd3200(); // tgen
+};
+//SIG(-1 dd3200) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd3200 ::foo(){vfunc_called(this, "_ZN6dd32003fooEv");}
+dd3200 ::~dd3200(){ note_dtor("dd3200", this);} // tgen
+dd3200 ::dd3200(){ note_ctor("dd3200", this);} // tgen
+
+static void Test_dd3200()
+{
+ extern Class_Descriptor cd_dd3200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3200, buf);
+ dd3200 *dp, &lv = *(dp=new (buf) dd3200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,12), "dd3200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,12), "dd3200");
+ check_base_class_offset(lv, (cc200*), ABISELECT(16,8), "dd3200");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3200.d");
+ test_class_info(&lv, &cd_dd3200);
+ dp->~dd3200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3200(Test_dd3200, "dd3200", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3200C1Ev();
+extern void _ZN6dd3200D1Ev();
+Name_Map name_map_dd3200[] = {
+ NSPAIR(_ZN6dd3200C1Ev),
+ NSPAIR(_ZN6dd3200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd3200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern void _ZN6dd32003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3200[];
+static VTT_ENTRY vtt_dd3200[] = {
+ {&(_ZTV6dd3200[3]), 3,8},
+ {&(_ZTV6dd3200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static VTBL_ENTRY alt_thunk_names37[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3200 = { "dd3200", // class name
+ bases_dd3200, 3,
+ &(vtc_dd3200[0]), // expected_vtbl_contents
+ &(vtt_dd3200[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3200),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names37,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03200 : dd3200 {
+ int e;
+ ~ee03200(); // tgen
+ ee03200(); // tgen
+};
+//SIG(1 ee03200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03200 ::~ee03200(){ note_dtor("ee03200", this);} // tgen
+ee03200 ::ee03200(){ note_ctor("ee03200", this);} // tgen
+
+static void Test_ee03200()
+{
+ extern Class_Descriptor cd_ee03200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03200, buf);
+ ee03200 *dp, &lv = *(dp=new (buf) ee03200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee03200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee03200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(16,12), "ee03200");
+ check_base_class_offset(lv, (dd3200*), 0, "ee03200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03200.e");
+ test_class_info(&lv, &cd_ee03200);
+ dp->~ee03200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03200(Test_ee03200, "ee03200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03200C1Ev();
+extern void _ZN7ee03200D1Ev();
+Name_Map name_map_ee03200[] = {
+ NSPAIR(_ZN7ee03200C1Ev),
+ NSPAIR(_ZN7ee03200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee03200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03200[];
+extern void _ZN6dd32003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee03200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee03200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee03200[] = {
+ {&(_ZTV7ee03200[3]), 3,8},
+ {&(_tg__ZTV6dd3200__7ee03200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee03200[3]), 3,4},
+ {&(_ZTV7ee03200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03200[];
+extern VTBL_ENTRY _ZTV7ee03200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03200[];
+static VTBL_ENTRY alt_thunk_names38[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03200 = { "ee03200", // class name
+ bases_ee03200, 4,
+ &(vtc_ee03200[0]), // expected_vtbl_contents
+ &(vtt_ee03200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names38,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13200 : virtual dd3200 {
+ int e;
+ ~ee13200(); // tgen
+ ee13200(); // tgen
+};
+//SIG(1 ee13200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13200 ::~ee13200(){ note_dtor("ee13200", this);} // tgen
+ee13200 ::ee13200(){ note_ctor("ee13200", this);} // tgen
+
+static void Test_ee13200()
+{
+ extern Class_Descriptor cd_ee13200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13200, buf);
+ ee13200 *dp, &lv = *(dp=new (buf) ee13200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee13200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee13200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(32,16), "ee13200");
+ check_base_class_offset(lv, (dd3200*), ABISELECT(16,8), "ee13200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13200.e");
+ test_class_info(&lv, &cd_ee13200);
+ dp->~ee13200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13200(Test_ee13200, "ee13200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13200C1Ev();
+extern void _ZN7ee13200D1Ev();
+Name_Map name_map_ee13200[] = {
+ NSPAIR(_ZN7ee13200C1Ev),
+ NSPAIR(_ZN7ee13200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee13200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13200[];
+extern void _ZN6dd32003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13200[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee13200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee13200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee13200[] = {
+ {&(_ZTV7ee13200[4]), 4,13},
+ {&(_ZTV7ee13200[8]), 8,13},
+ {&(_ZTV7ee13200[12]), 12,13},
+ {&(_tg__ZTV6dd3200__7ee13200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee13200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13200[];
+extern VTBL_ENTRY _ZTV7ee13200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13200[];
+static VTBL_ENTRY alt_thunk_names39[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13200 = { "ee13200", // class name
+ bases_ee13200, 4,
+ &(vtc_ee13200[0]), // expected_vtbl_contents
+ &(vtt_ee13200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13200),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names39,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23200 : dd3200 {
+ int e;
+ virtual void foo(); // _ZN7ee232003fooEv
+ ~ee23200(); // tgen
+ ee23200(); // tgen
+};
+//SIG(1 ee23200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23200 ::foo(){vfunc_called(this, "_ZN7ee232003fooEv");}
+ee23200 ::~ee23200(){ note_dtor("ee23200", this);} // tgen
+ee23200 ::ee23200(){ note_ctor("ee23200", this);} // tgen
+
+static void Test_ee23200()
+{
+ extern Class_Descriptor cd_ee23200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23200, buf);
+ ee23200 *dp, &lv = *(dp=new (buf) ee23200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee23200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee23200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(16,12), "ee23200");
+ check_base_class_offset(lv, (dd3200*), 0, "ee23200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23200.e");
+ test_class_info(&lv, &cd_ee23200);
+ dp->~ee23200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23200(Test_ee23200, "ee23200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23200C1Ev();
+extern void _ZN7ee23200D1Ev();
+Name_Map name_map_ee23200[] = {
+ NSPAIR(_ZN7ee23200C1Ev),
+ NSPAIR(_ZN7ee23200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee23200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23200[];
+extern void _ZN7ee232003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232003fooEv,_ZTv0_n12_N7ee232003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232003fooEv,_ZThn12_N7ee232003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23200[0]),
+ (VTBL_ENTRY)&_ZN7ee232003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232003fooEv,_ZTv0_n12_N7ee232003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee23200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee23200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee23200[] = {
+ {&(_ZTV7ee23200[3]), 3,8},
+ {&(_tg__ZTV6dd3200__7ee23200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee23200[3]), 3,4},
+ {&(_ZTV7ee23200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23200[];
+extern VTBL_ENTRY _ZTV7ee23200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23200[];
+static VTBL_ENTRY alt_thunk_names40[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232003fooEv,_ZTv0_n12_N7ee232003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232003fooEv,_ZThn12_N7ee232003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23200 = { "ee23200", // class name
+ bases_ee23200, 4,
+ &(vtc_ee23200[0]), // expected_vtbl_contents
+ &(vtt_ee23200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names40,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33200 : virtual dd3200 {
+ int e;
+ virtual void foo(); // _ZN7ee332003fooEv
+ ~ee33200(); // tgen
+ ee33200(); // tgen
+};
+//SIG(1 ee33200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33200 ::foo(){vfunc_called(this, "_ZN7ee332003fooEv");}
+ee33200 ::~ee33200(){ note_dtor("ee33200", this);} // tgen
+ee33200 ::ee33200(){ note_ctor("ee33200", this);} // tgen
+
+static void Test_ee33200()
+{
+ extern Class_Descriptor cd_ee33200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33200, buf);
+ ee33200 *dp, &lv = *(dp=new (buf) ee33200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee33200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee33200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(32,16), "ee33200");
+ check_base_class_offset(lv, (dd3200*), ABISELECT(16,8), "ee33200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33200.e");
+ test_class_info(&lv, &cd_ee33200);
+ dp->~ee33200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33200(Test_ee33200, "ee33200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33200C1Ev();
+extern void _ZN7ee33200D1Ev();
+Name_Map name_map_ee33200[] = {
+ NSPAIR(_ZN7ee33200C1Ev),
+ NSPAIR(_ZN7ee33200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee33200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33200[];
+extern void _ZN7ee332003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332003fooEv,_ZTv0_n16_N7ee332003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332003fooEv,_ZThn8_N7ee332003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332003fooEv,_ZTv0_n12_N7ee332003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332003fooEv,_ZThn16_N7ee332003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33200[0]),
+ (VTBL_ENTRY)&_ZN7ee332003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332003fooEv,_ZTv0_n16_N7ee332003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332003fooEv,_ZTv0_n12_N7ee332003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee33200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee33200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee33200[] = {
+ {&(_ZTV7ee33200[4]), 4,14},
+ {&(_ZTV7ee33200[9]), 9,14},
+ {&(_ZTV7ee33200[13]), 13,14},
+ {&(_tg__ZTV6dd3200__7ee33200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee33200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33200[];
+extern VTBL_ENTRY _ZTV7ee33200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33200[];
+static VTBL_ENTRY alt_thunk_names41[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332003fooEv,_ZTv0_n12_N7ee332003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332003fooEv,_ZThn16_N7ee332003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332003fooEv,_ZTv0_n16_N7ee332003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332003fooEv,_ZThn8_N7ee332003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33200 = { "ee33200", // class name
+ bases_ee33200, 4,
+ &(vtc_ee33200[0]), // expected_vtbl_contents
+ &(vtt_ee33200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33200),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names41,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43200 : dd3200 {
+ int e;
+ virtual void bar(); // _ZN7ee432003barEv
+ ~ee43200(); // tgen
+ ee43200(); // tgen
+};
+//SIG(1 ee43200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43200 ::bar(){vfunc_called(this, "_ZN7ee432003barEv");}
+ee43200 ::~ee43200(){ note_dtor("ee43200", this);} // tgen
+ee43200 ::ee43200(){ note_ctor("ee43200", this);} // tgen
+
+static void Test_ee43200()
+{
+ extern Class_Descriptor cd_ee43200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43200, buf);
+ ee43200 *dp, &lv = *(dp=new (buf) ee43200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee43200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee43200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(16,12), "ee43200");
+ check_base_class_offset(lv, (dd3200*), 0, "ee43200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43200.e");
+ test_class_info(&lv, &cd_ee43200);
+ dp->~ee43200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43200(Test_ee43200, "ee43200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43200C1Ev();
+extern void _ZN7ee43200D1Ev();
+Name_Map name_map_ee43200[] = {
+ NSPAIR(_ZN7ee43200C1Ev),
+ NSPAIR(_ZN7ee43200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee43200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43200[];
+extern void _ZN6dd32003fooEv();
+extern void _ZN7ee432003barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ (VTBL_ENTRY)&_ZN7ee432003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee43200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee43200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee43200[] = {
+ {&(_ZTV7ee43200[3]), 3,9},
+ {&(_tg__ZTV6dd3200__7ee43200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee43200[3]), 3,4},
+ {&(_ZTV7ee43200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43200[];
+extern VTBL_ENTRY _ZTV7ee43200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43200[];
+static VTBL_ENTRY alt_thunk_names42[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43200 = { "ee43200", // class name
+ bases_ee43200, 4,
+ &(vtc_ee43200[0]), // expected_vtbl_contents
+ &(vtt_ee43200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names42,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53200 : virtual dd3200 {
+ int e;
+ virtual void bar(); // _ZN7ee532003barEv
+ ~ee53200(); // tgen
+ ee53200(); // tgen
+};
+//SIG(1 ee53200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53200 ::bar(){vfunc_called(this, "_ZN7ee532003barEv");}
+ee53200 ::~ee53200(){ note_dtor("ee53200", this);} // tgen
+ee53200 ::ee53200(){ note_ctor("ee53200", this);} // tgen
+
+static void Test_ee53200()
+{
+ extern Class_Descriptor cd_ee53200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53200, buf);
+ ee53200 *dp, &lv = *(dp=new (buf) ee53200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee53200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee53200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(32,16), "ee53200");
+ check_base_class_offset(lv, (dd3200*), ABISELECT(16,8), "ee53200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53200.e");
+ test_class_info(&lv, &cd_ee53200);
+ dp->~ee53200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53200(Test_ee53200, "ee53200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53200C1Ev();
+extern void _ZN7ee53200D1Ev();
+Name_Map name_map_ee53200[] = {
+ NSPAIR(_ZN7ee53200C1Ev),
+ NSPAIR(_ZN7ee53200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee53200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53200[];
+extern void _ZN7ee532003barEv();
+extern void _ZN6dd32003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53200[0]),
+ (VTBL_ENTRY)&_ZN7ee532003barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee53200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee53200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee53200[] = {
+ {&(_ZTV7ee53200[4]), 4,14},
+ {&(_ZTV7ee53200[9]), 9,14},
+ {&(_ZTV7ee53200[13]), 13,14},
+ {&(_tg__ZTV6dd3200__7ee53200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee53200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53200[];
+extern VTBL_ENTRY _ZTV7ee53200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53200[];
+static VTBL_ENTRY alt_thunk_names43[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53200 = { "ee53200", // class name
+ bases_ee53200, 4,
+ &(vtc_ee53200[0]), // expected_vtbl_contents
+ &(vtt_ee53200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53200),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names43,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63200 : dd3200 {
+ int e;
+ virtual void foo(); // _ZN7ee632003fooEv
+ virtual void bar(); // _ZN7ee632003barEv
+ ~ee63200(); // tgen
+ ee63200(); // tgen
+};
+//SIG(1 ee63200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63200 ::foo(){vfunc_called(this, "_ZN7ee632003fooEv");}
+void ee63200 ::bar(){vfunc_called(this, "_ZN7ee632003barEv");}
+ee63200 ::~ee63200(){ note_dtor("ee63200", this);} // tgen
+ee63200 ::ee63200(){ note_ctor("ee63200", this);} // tgen
+
+static void Test_ee63200()
+{
+ extern Class_Descriptor cd_ee63200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63200, buf);
+ ee63200 *dp, &lv = *(dp=new (buf) ee63200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee63200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee63200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(16,12), "ee63200");
+ check_base_class_offset(lv, (dd3200*), 0, "ee63200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63200.e");
+ test_class_info(&lv, &cd_ee63200);
+ dp->~ee63200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63200(Test_ee63200, "ee63200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63200C1Ev();
+extern void _ZN7ee63200D1Ev();
+Name_Map name_map_ee63200[] = {
+ NSPAIR(_ZN7ee63200C1Ev),
+ NSPAIR(_ZN7ee63200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee63200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63200[];
+extern void _ZN7ee632003fooEv();
+extern void _ZN7ee632003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632003fooEv,_ZTv0_n12_N7ee632003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632003fooEv,_ZThn12_N7ee632003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63200[0]),
+ (VTBL_ENTRY)&_ZN7ee632003fooEv,
+ (VTBL_ENTRY)&_ZN7ee632003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632003fooEv,_ZTv0_n12_N7ee632003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee63200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee63200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee63200[] = {
+ {&(_ZTV7ee63200[3]), 3,9},
+ {&(_tg__ZTV6dd3200__7ee63200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee63200[3]), 3,4},
+ {&(_ZTV7ee63200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63200[];
+extern VTBL_ENTRY _ZTV7ee63200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63200[];
+static VTBL_ENTRY alt_thunk_names44[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn12_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632003fooEv,_ZTv0_n12_N7ee632003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632003fooEv,_ZThn12_N7ee632003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63200 = { "ee63200", // class name
+ bases_ee63200, 4,
+ &(vtc_ee63200[0]), // expected_vtbl_contents
+ &(vtt_ee63200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names44,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73200 : virtual dd3200 {
+ int e;
+ virtual void foo(); // _ZN7ee732003fooEv
+ virtual void bar(); // _ZN7ee732003barEv
+ ~ee73200(); // tgen
+ ee73200(); // tgen
+};
+//SIG(1 ee73200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73200 ::foo(){vfunc_called(this, "_ZN7ee732003fooEv");}
+void ee73200 ::bar(){vfunc_called(this, "_ZN7ee732003barEv");}
+ee73200 ::~ee73200(){ note_dtor("ee73200", this);} // tgen
+ee73200 ::ee73200(){ note_ctor("ee73200", this);} // tgen
+
+static void Test_ee73200()
+{
+ extern Class_Descriptor cd_ee73200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73200, buf);
+ ee73200 *dp, &lv = *(dp=new (buf) ee73200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee73200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee73200");
+ check_base_class_offset(lv, (cc200*)(dd3200*), ABISELECT(32,16), "ee73200");
+ check_base_class_offset(lv, (dd3200*), ABISELECT(16,8), "ee73200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73200.e");
+ test_class_info(&lv, &cd_ee73200);
+ dp->~ee73200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73200(Test_ee73200, "ee73200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73200C1Ev();
+extern void _ZN7ee73200D1Ev();
+Name_Map name_map_ee73200[] = {
+ NSPAIR(_ZN7ee73200C1Ev),
+ NSPAIR(_ZN7ee73200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd3200;
+extern VTBL_ENTRY _ZTI6dd3200[];
+extern VTBL_ENTRY _ZTV6dd3200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3200[];
+static Base_Class bases_ee73200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3200, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73200[];
+extern void _ZN7ee732003fooEv();
+extern void _ZN7ee732003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732003fooEv,_ZTv0_n16_N7ee732003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732003fooEv,_ZThn8_N7ee732003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732003fooEv,_ZTv0_n12_N7ee732003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732003fooEv,_ZThn16_N7ee732003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73200[0]),
+ (VTBL_ENTRY)&_ZN7ee732003fooEv,
+ (VTBL_ENTRY)&_ZN7ee732003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732003fooEv,_ZTv0_n16_N7ee732003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732003fooEv,_ZTv0_n12_N7ee732003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73200[];
+extern void _ZN6dd32003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3200__7ee73200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&_ZN6dd32003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd3200__7ee73200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv),
+};
+static VTT_ENTRY vtt_ee73200[] = {
+ {&(_ZTV7ee73200[4]), 4,15},
+ {&(_ZTV7ee73200[10]), 10,15},
+ {&(_ZTV7ee73200[14]), 14,15},
+ {&(_tg__ZTV6dd3200__7ee73200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd3200__7ee73200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73200[];
+extern VTBL_ENTRY _ZTV7ee73200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73200[];
+static VTBL_ENTRY alt_thunk_names45[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32003fooEv,_ZTv0_n12_N6dd32003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32003fooEv,_ZThn8_N6dd32003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732003fooEv,_ZTv0_n12_N7ee732003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732003fooEv,_ZThn16_N7ee732003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732003fooEv,_ZTv0_n16_N7ee732003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732003fooEv,_ZThn8_N7ee732003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73200 = { "ee73200", // class name
+ bases_ee73200, 4,
+ &(vtc_ee73200[0]), // expected_vtbl_contents
+ &(vtt_ee73200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73200),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names45,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4200 : cc200 {
+ int d;
+ virtual void bar(); // _ZN6dd42003barEv
+ ~dd4200(); // tgen
+ dd4200(); // tgen
+};
+//SIG(-1 dd4200) C1{ BC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd4200 ::bar(){vfunc_called(this, "_ZN6dd42003barEv");}
+dd4200 ::~dd4200(){ note_dtor("dd4200", this);} // tgen
+dd4200 ::dd4200(){ note_ctor("dd4200", this);} // tgen
+
+static void Test_dd4200()
+{
+ extern Class_Descriptor cd_dd4200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4200, buf);
+ dd4200 *dp, &lv = *(dp=new (buf) dd4200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(8,4), "dd4200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(8,4), "dd4200");
+ check_base_class_offset(lv, (cc200*), 0, "dd4200");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4200.d");
+ test_class_info(&lv, &cd_dd4200);
+ dp->~dd4200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4200(Test_dd4200, "dd4200", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4200C1Ev();
+extern void _ZN6dd4200D1Ev();
+Name_Map name_map_dd4200[] = {
+ NSPAIR(_ZN6dd4200C1Ev),
+ NSPAIR(_ZN6dd4200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd4200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_dd4200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+Class_Descriptor cd_dd4200 = { "dd4200", // class name
+ bases_dd4200, 3,
+ &(vtc_dd4200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04200 : dd4200 {
+ int e;
+ ~ee04200(); // tgen
+ ee04200(); // tgen
+};
+//SIG(1 ee04200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04200 ::~ee04200(){ note_dtor("ee04200", this);} // tgen
+ee04200 ::ee04200(){ note_ctor("ee04200", this);} // tgen
+
+static void Test_ee04200()
+{
+ extern Class_Descriptor cd_ee04200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04200, buf);
+ ee04200 *dp, &lv = *(dp=new (buf) ee04200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee04200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee04200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), 0, "ee04200");
+ check_base_class_offset(lv, (dd4200*), 0, "ee04200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04200.e");
+ test_class_info(&lv, &cd_ee04200);
+ dp->~ee04200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04200(Test_ee04200, "ee04200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04200C1Ev();
+extern void _ZN7ee04200D1Ev();
+Name_Map name_map_ee04200[] = {
+ NSPAIR(_ZN7ee04200C1Ev),
+ NSPAIR(_ZN7ee04200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee04200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_ee04200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04200[];
+extern VTBL_ENTRY _ZTV7ee04200[];
+Class_Descriptor cd_ee04200 = { "ee04200", // class name
+ bases_ee04200, 4,
+ &(vtc_ee04200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14200 : virtual dd4200 {
+ int e;
+ ~ee14200(); // tgen
+ ee14200(); // tgen
+};
+//SIG(1 ee14200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14200 ::~ee14200(){ note_dtor("ee14200", this);} // tgen
+ee14200 ::ee14200(){ note_ctor("ee14200", this);} // tgen
+
+static void Test_ee14200()
+{
+ extern Class_Descriptor cd_ee14200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14200, buf);
+ ee14200 *dp, &lv = *(dp=new (buf) ee14200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee14200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee14200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), ABISELECT(16,8), "ee14200");
+ check_base_class_offset(lv, (dd4200*), ABISELECT(16,8), "ee14200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14200.e");
+ test_class_info(&lv, &cd_ee14200);
+ dp->~ee14200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14200(Test_ee14200, "ee14200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14200C1Ev();
+extern void _ZN7ee14200D1Ev();
+Name_Map name_map_ee14200[] = {
+ NSPAIR(_ZN7ee14200C1Ev),
+ NSPAIR(_ZN7ee14200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee14200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_ee14200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14200[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14200[];
+static VTT_ENTRY vtt_ee14200[] = {
+ {&(_ZTV7ee14200[3]), 3,9},
+ {&(_ZTV7ee14200[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14200[];
+extern VTBL_ENTRY _ZTV7ee14200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14200[];
+Class_Descriptor cd_ee14200 = { "ee14200", // class name
+ bases_ee14200, 4,
+ &(vtc_ee14200[0]), // expected_vtbl_contents
+ &(vtt_ee14200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24200 : dd4200 {
+ int e;
+ virtual void foo(); // _ZN7ee242003fooEv
+ ~ee24200(); // tgen
+ ee24200(); // tgen
+};
+//SIG(1 ee24200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24200 ::foo(){vfunc_called(this, "_ZN7ee242003fooEv");}
+ee24200 ::~ee24200(){ note_dtor("ee24200", this);} // tgen
+ee24200 ::ee24200(){ note_ctor("ee24200", this);} // tgen
+
+static void Test_ee24200()
+{
+ extern Class_Descriptor cd_ee24200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24200, buf);
+ ee24200 *dp, &lv = *(dp=new (buf) ee24200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee24200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee24200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), 0, "ee24200");
+ check_base_class_offset(lv, (dd4200*), 0, "ee24200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24200.e");
+ test_class_info(&lv, &cd_ee24200);
+ dp->~ee24200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24200(Test_ee24200, "ee24200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24200C1Ev();
+extern void _ZN7ee24200D1Ev();
+Name_Map name_map_ee24200[] = {
+ NSPAIR(_ZN7ee24200C1Ev),
+ NSPAIR(_ZN7ee24200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee24200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24200[];
+extern void _ZN7ee242003fooEv();
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_ee24200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24200[0]),
+ (VTBL_ENTRY)&_ZN7ee242003fooEv,
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24200[];
+extern VTBL_ENTRY _ZTV7ee24200[];
+Class_Descriptor cd_ee24200 = { "ee24200", // class name
+ bases_ee24200, 4,
+ &(vtc_ee24200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34200 : virtual dd4200 {
+ int e;
+ virtual void foo(); // _ZN7ee342003fooEv
+ ~ee34200(); // tgen
+ ee34200(); // tgen
+};
+//SIG(1 ee34200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34200 ::foo(){vfunc_called(this, "_ZN7ee342003fooEv");}
+ee34200 ::~ee34200(){ note_dtor("ee34200", this);} // tgen
+ee34200 ::ee34200(){ note_ctor("ee34200", this);} // tgen
+
+static void Test_ee34200()
+{
+ extern Class_Descriptor cd_ee34200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34200, buf);
+ ee34200 *dp, &lv = *(dp=new (buf) ee34200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee34200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee34200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), ABISELECT(16,8), "ee34200");
+ check_base_class_offset(lv, (dd4200*), ABISELECT(16,8), "ee34200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34200.e");
+ test_class_info(&lv, &cd_ee34200);
+ dp->~ee34200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34200(Test_ee34200, "ee34200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34200C1Ev();
+extern void _ZN7ee34200D1Ev();
+Name_Map name_map_ee34200[] = {
+ NSPAIR(_ZN7ee34200C1Ev),
+ NSPAIR(_ZN7ee34200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee34200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34200[];
+extern void _ZN7ee342003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342003fooEv,_ZTv0_n12_N7ee342003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342003fooEv,_ZThn8_N7ee342003fooEv)() __attribute__((weak));
+extern void _ZN6dd42003barEv();
+static VTBL_ENTRY vtc_ee34200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34200[0]),
+ (VTBL_ENTRY)&_ZN7ee342003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342003fooEv,_ZTv0_n12_N7ee342003fooEv),
+ (VTBL_ENTRY)&_ZN6dd42003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34200[];
+static VTT_ENTRY vtt_ee34200[] = {
+ {&(_ZTV7ee34200[3]), 3,10},
+ {&(_ZTV7ee34200[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34200[];
+extern VTBL_ENTRY _ZTV7ee34200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34200[];
+static VTBL_ENTRY alt_thunk_names46[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342003fooEv,_ZTv0_n12_N7ee342003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342003fooEv,_ZThn8_N7ee342003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34200 = { "ee34200", // class name
+ bases_ee34200, 4,
+ &(vtc_ee34200[0]), // expected_vtbl_contents
+ &(vtt_ee34200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34200),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names46,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44200 : dd4200 {
+ int e;
+ virtual void bar(); // _ZN7ee442003barEv
+ ~ee44200(); // tgen
+ ee44200(); // tgen
+};
+//SIG(1 ee44200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44200 ::bar(){vfunc_called(this, "_ZN7ee442003barEv");}
+ee44200 ::~ee44200(){ note_dtor("ee44200", this);} // tgen
+ee44200 ::ee44200(){ note_ctor("ee44200", this);} // tgen
+
+static void Test_ee44200()
+{
+ extern Class_Descriptor cd_ee44200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44200, buf);
+ ee44200 *dp, &lv = *(dp=new (buf) ee44200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee44200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee44200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), 0, "ee44200");
+ check_base_class_offset(lv, (dd4200*), 0, "ee44200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44200.e");
+ test_class_info(&lv, &cd_ee44200);
+ dp->~ee44200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44200(Test_ee44200, "ee44200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44200C1Ev();
+extern void _ZN7ee44200D1Ev();
+Name_Map name_map_ee44200[] = {
+ NSPAIR(_ZN7ee44200C1Ev),
+ NSPAIR(_ZN7ee44200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee44200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44200[];
+extern void _ZN5cc2003fooEv();
+extern void _ZN7ee442003barEv();
+static VTBL_ENTRY vtc_ee44200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&_ZN7ee442003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44200[];
+extern VTBL_ENTRY _ZTV7ee44200[];
+Class_Descriptor cd_ee44200 = { "ee44200", // class name
+ bases_ee44200, 4,
+ &(vtc_ee44200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54200 : virtual dd4200 {
+ int e;
+ virtual void bar(); // _ZN7ee542003barEv
+ ~ee54200(); // tgen
+ ee54200(); // tgen
+};
+//SIG(1 ee54200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54200 ::bar(){vfunc_called(this, "_ZN7ee542003barEv");}
+ee54200 ::~ee54200(){ note_dtor("ee54200", this);} // tgen
+ee54200 ::ee54200(){ note_ctor("ee54200", this);} // tgen
+
+static void Test_ee54200()
+{
+ extern Class_Descriptor cd_ee54200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54200, buf);
+ ee54200 *dp, &lv = *(dp=new (buf) ee54200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee54200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee54200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), ABISELECT(16,8), "ee54200");
+ check_base_class_offset(lv, (dd4200*), ABISELECT(16,8), "ee54200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54200.e");
+ test_class_info(&lv, &cd_ee54200);
+ dp->~ee54200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54200(Test_ee54200, "ee54200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54200C1Ev();
+extern void _ZN7ee54200D1Ev();
+Name_Map name_map_ee54200[] = {
+ NSPAIR(_ZN7ee54200C1Ev),
+ NSPAIR(_ZN7ee54200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee54200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54200[];
+extern void _ZN7ee542003barEv();
+extern void _ZN5cc2003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542003barEv,_ZTv0_n16_N7ee542003barEv)();
+extern void ABISELECT(_ZThn16_N7ee542003barEv,_ZThn8_N7ee542003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54200[0]),
+ (VTBL_ENTRY)&_ZN7ee542003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542003barEv,_ZTv0_n16_N7ee542003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54200[];
+static VTT_ENTRY vtt_ee54200[] = {
+ {&(_ZTV7ee54200[3]), 3,10},
+ {&(_ZTV7ee54200[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54200[];
+extern VTBL_ENTRY _ZTV7ee54200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54200[];
+static VTBL_ENTRY alt_thunk_names47[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542003barEv,_ZTv0_n16_N7ee542003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542003barEv,_ZThn8_N7ee542003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54200 = { "ee54200", // class name
+ bases_ee54200, 4,
+ &(vtc_ee54200[0]), // expected_vtbl_contents
+ &(vtt_ee54200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54200),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names47,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64200 : dd4200 {
+ int e;
+ virtual void foo(); // _ZN7ee642003fooEv
+ virtual void bar(); // _ZN7ee642003barEv
+ ~ee64200(); // tgen
+ ee64200(); // tgen
+};
+//SIG(1 ee64200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64200 ::foo(){vfunc_called(this, "_ZN7ee642003fooEv");}
+void ee64200 ::bar(){vfunc_called(this, "_ZN7ee642003barEv");}
+ee64200 ::~ee64200(){ note_dtor("ee64200", this);} // tgen
+ee64200 ::ee64200(){ note_ctor("ee64200", this);} // tgen
+
+static void Test_ee64200()
+{
+ extern Class_Descriptor cd_ee64200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64200, buf);
+ ee64200 *dp, &lv = *(dp=new (buf) ee64200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee64200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(8,4), "ee64200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), 0, "ee64200");
+ check_base_class_offset(lv, (dd4200*), 0, "ee64200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64200.e");
+ test_class_info(&lv, &cd_ee64200);
+ dp->~ee64200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64200(Test_ee64200, "ee64200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64200C1Ev();
+extern void _ZN7ee64200D1Ev();
+Name_Map name_map_ee64200[] = {
+ NSPAIR(_ZN7ee64200C1Ev),
+ NSPAIR(_ZN7ee64200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee64200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64200[];
+extern void _ZN7ee642003fooEv();
+extern void _ZN7ee642003barEv();
+static VTBL_ENTRY vtc_ee64200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64200[0]),
+ (VTBL_ENTRY)&_ZN7ee642003fooEv,
+ (VTBL_ENTRY)&_ZN7ee642003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64200[];
+extern VTBL_ENTRY _ZTV7ee64200[];
+Class_Descriptor cd_ee64200 = { "ee64200", // class name
+ bases_ee64200, 4,
+ &(vtc_ee64200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74200 : virtual dd4200 {
+ int e;
+ virtual void foo(); // _ZN7ee742003fooEv
+ virtual void bar(); // _ZN7ee742003barEv
+ ~ee74200(); // tgen
+ ee74200(); // tgen
+};
+//SIG(1 ee74200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74200 ::foo(){vfunc_called(this, "_ZN7ee742003fooEv");}
+void ee74200 ::bar(){vfunc_called(this, "_ZN7ee742003barEv");}
+ee74200 ::~ee74200(){ note_dtor("ee74200", this);} // tgen
+ee74200 ::ee74200(){ note_ctor("ee74200", this);} // tgen
+
+static void Test_ee74200()
+{
+ extern Class_Descriptor cd_ee74200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74200, buf);
+ ee74200 *dp, &lv = *(dp=new (buf) ee74200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee74200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd4200*), ABISELECT(24,12), "ee74200");
+ check_base_class_offset(lv, (cc200*)(dd4200*), ABISELECT(16,8), "ee74200");
+ check_base_class_offset(lv, (dd4200*), ABISELECT(16,8), "ee74200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74200.e");
+ test_class_info(&lv, &cd_ee74200);
+ dp->~ee74200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74200(Test_ee74200, "ee74200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74200C1Ev();
+extern void _ZN7ee74200D1Ev();
+Name_Map name_map_ee74200[] = {
+ NSPAIR(_ZN7ee74200C1Ev),
+ NSPAIR(_ZN7ee74200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd4200;
+extern VTBL_ENTRY _ZTI6dd4200[];
+extern VTBL_ENTRY _ZTV6dd4200[];
+static Base_Class bases_ee74200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74200[];
+extern void _ZN7ee742003fooEv();
+extern void _ZN7ee742003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742003fooEv,_ZTv0_n12_N7ee742003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742003fooEv,_ZThn8_N7ee742003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742003barEv,_ZTv0_n16_N7ee742003barEv)();
+extern void ABISELECT(_ZThn16_N7ee742003barEv,_ZThn8_N7ee742003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74200[0]),
+ (VTBL_ENTRY)&_ZN7ee742003fooEv,
+ (VTBL_ENTRY)&_ZN7ee742003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742003fooEv,_ZTv0_n12_N7ee742003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742003barEv,_ZTv0_n16_N7ee742003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74200[];
+static VTT_ENTRY vtt_ee74200[] = {
+ {&(_ZTV7ee74200[3]), 3,11},
+ {&(_ZTV7ee74200[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74200[];
+extern VTBL_ENTRY _ZTV7ee74200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74200[];
+static VTBL_ENTRY alt_thunk_names48[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742003barEv,_ZTv0_n16_N7ee742003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742003barEv,_ZThn8_N7ee742003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742003fooEv,_ZTv0_n12_N7ee742003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742003fooEv,_ZThn8_N7ee742003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74200 = { "ee74200", // class name
+ bases_ee74200, 4,
+ &(vtc_ee74200[0]), // expected_vtbl_contents
+ &(vtt_ee74200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74200),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names48,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5200 : virtual cc200 {
+ int d;
+ virtual void bar(); // _ZN6dd52003barEv
+ ~dd5200(); // tgen
+ dd5200(); // tgen
+};
+//SIG(-1 dd5200) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd5200 ::bar(){vfunc_called(this, "_ZN6dd52003barEv");}
+dd5200 ::~dd5200(){ note_dtor("dd5200", this);} // tgen
+dd5200 ::dd5200(){ note_ctor("dd5200", this);} // tgen
+
+static void Test_dd5200()
+{
+ extern Class_Descriptor cd_dd5200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5200, buf);
+ dd5200 *dp, &lv = *(dp=new (buf) dd5200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,12), "dd5200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,12), "dd5200");
+ check_base_class_offset(lv, (cc200*), ABISELECT(16,8), "dd5200");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5200.d");
+ test_class_info(&lv, &cd_dd5200);
+ dp->~dd5200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5200(Test_dd5200, "dd5200", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5200C1Ev();
+extern void _ZN6dd5200D1Ev();
+Name_Map name_map_dd5200[] = {
+ NSPAIR(_ZN6dd5200C1Ev),
+ NSPAIR(_ZN6dd5200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd5200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern void _ZN6dd52003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_dd5200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5200[];
+static VTT_ENTRY vtt_dd5200[] = {
+ {&(_ZTV6dd5200[3]), 3,8},
+ {&(_ZTV6dd5200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+Class_Descriptor cd_dd5200 = { "dd5200", // class name
+ bases_dd5200, 3,
+ &(vtc_dd5200[0]), // expected_vtbl_contents
+ &(vtt_dd5200[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5200),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05200 : dd5200 {
+ int e;
+ ~ee05200(); // tgen
+ ee05200(); // tgen
+};
+//SIG(1 ee05200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05200 ::~ee05200(){ note_dtor("ee05200", this);} // tgen
+ee05200 ::ee05200(){ note_ctor("ee05200", this);} // tgen
+
+static void Test_ee05200()
+{
+ extern Class_Descriptor cd_ee05200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05200, buf);
+ ee05200 *dp, &lv = *(dp=new (buf) ee05200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee05200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee05200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(16,12), "ee05200");
+ check_base_class_offset(lv, (dd5200*), 0, "ee05200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05200.e");
+ test_class_info(&lv, &cd_ee05200);
+ dp->~ee05200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05200(Test_ee05200, "ee05200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05200C1Ev();
+extern void _ZN7ee05200D1Ev();
+Name_Map name_map_ee05200[] = {
+ NSPAIR(_ZN7ee05200C1Ev),
+ NSPAIR(_ZN7ee05200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee05200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05200[];
+extern void _ZN6dd52003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee05200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee05200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee05200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee05200[] = {
+ {&(_ZTV7ee05200[3]), 3,8},
+ {&(_tg__ZTV6dd5200__7ee05200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee05200[3]), 3,4},
+ {&(_ZTV7ee05200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05200[];
+extern VTBL_ENTRY _ZTV7ee05200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05200[];
+Class_Descriptor cd_ee05200 = { "ee05200", // class name
+ bases_ee05200, 4,
+ &(vtc_ee05200[0]), // expected_vtbl_contents
+ &(vtt_ee05200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15200 : virtual dd5200 {
+ int e;
+ ~ee15200(); // tgen
+ ee15200(); // tgen
+};
+//SIG(1 ee15200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15200 ::~ee15200(){ note_dtor("ee15200", this);} // tgen
+ee15200 ::ee15200(){ note_ctor("ee15200", this);} // tgen
+
+static void Test_ee15200()
+{
+ extern Class_Descriptor cd_ee15200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15200, buf);
+ ee15200 *dp, &lv = *(dp=new (buf) ee15200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee15200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee15200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(32,16), "ee15200");
+ check_base_class_offset(lv, (dd5200*), ABISELECT(16,8), "ee15200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15200.e");
+ test_class_info(&lv, &cd_ee15200);
+ dp->~ee15200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15200(Test_ee15200, "ee15200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15200C1Ev();
+extern void _ZN7ee15200D1Ev();
+Name_Map name_map_ee15200[] = {
+ NSPAIR(_ZN7ee15200C1Ev),
+ NSPAIR(_ZN7ee15200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee15200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15200[];
+extern void _ZN6dd52003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee15200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15200[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee15200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee15200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee15200[] = {
+ {&(_ZTV7ee15200[4]), 4,13},
+ {&(_ZTV7ee15200[8]), 8,13},
+ {&(_ZTV7ee15200[12]), 12,13},
+ {&(_tg__ZTV6dd5200__7ee15200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee15200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15200[];
+extern VTBL_ENTRY _ZTV7ee15200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15200[];
+Class_Descriptor cd_ee15200 = { "ee15200", // class name
+ bases_ee15200, 4,
+ &(vtc_ee15200[0]), // expected_vtbl_contents
+ &(vtt_ee15200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15200),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25200 : dd5200 {
+ int e;
+ virtual void foo(); // _ZN7ee252003fooEv
+ ~ee25200(); // tgen
+ ee25200(); // tgen
+};
+//SIG(1 ee25200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25200 ::foo(){vfunc_called(this, "_ZN7ee252003fooEv");}
+ee25200 ::~ee25200(){ note_dtor("ee25200", this);} // tgen
+ee25200 ::ee25200(){ note_ctor("ee25200", this);} // tgen
+
+static void Test_ee25200()
+{
+ extern Class_Descriptor cd_ee25200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25200, buf);
+ ee25200 *dp, &lv = *(dp=new (buf) ee25200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee25200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee25200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(16,12), "ee25200");
+ check_base_class_offset(lv, (dd5200*), 0, "ee25200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25200.e");
+ test_class_info(&lv, &cd_ee25200);
+ dp->~ee25200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25200(Test_ee25200, "ee25200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25200C1Ev();
+extern void _ZN7ee25200D1Ev();
+Name_Map name_map_ee25200[] = {
+ NSPAIR(_ZN7ee25200C1Ev),
+ NSPAIR(_ZN7ee25200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee25200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25200[];
+extern void _ZN6dd52003barEv();
+extern void _ZN7ee252003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252003fooEv,_ZTv0_n12_N7ee252003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252003fooEv,_ZThn12_N7ee252003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ (VTBL_ENTRY)&_ZN7ee252003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252003fooEv,_ZTv0_n12_N7ee252003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee25200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee25200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee25200[] = {
+ {&(_ZTV7ee25200[3]), 3,9},
+ {&(_tg__ZTV6dd5200__7ee25200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee25200[3]), 3,4},
+ {&(_ZTV7ee25200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25200[];
+extern VTBL_ENTRY _ZTV7ee25200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25200[];
+static VTBL_ENTRY alt_thunk_names49[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252003fooEv,_ZTv0_n12_N7ee252003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252003fooEv,_ZThn12_N7ee252003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25200 = { "ee25200", // class name
+ bases_ee25200, 4,
+ &(vtc_ee25200[0]), // expected_vtbl_contents
+ &(vtt_ee25200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names49,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35200 : virtual dd5200 {
+ int e;
+ virtual void foo(); // _ZN7ee352003fooEv
+ ~ee35200(); // tgen
+ ee35200(); // tgen
+};
+//SIG(1 ee35200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35200 ::foo(){vfunc_called(this, "_ZN7ee352003fooEv");}
+ee35200 ::~ee35200(){ note_dtor("ee35200", this);} // tgen
+ee35200 ::ee35200(){ note_ctor("ee35200", this);} // tgen
+
+static void Test_ee35200()
+{
+ extern Class_Descriptor cd_ee35200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35200, buf);
+ ee35200 *dp, &lv = *(dp=new (buf) ee35200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee35200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee35200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(32,16), "ee35200");
+ check_base_class_offset(lv, (dd5200*), ABISELECT(16,8), "ee35200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35200.e");
+ test_class_info(&lv, &cd_ee35200);
+ dp->~ee35200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35200(Test_ee35200, "ee35200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35200C1Ev();
+extern void _ZN7ee35200D1Ev();
+Name_Map name_map_ee35200[] = {
+ NSPAIR(_ZN7ee35200C1Ev),
+ NSPAIR(_ZN7ee35200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee35200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35200[];
+extern void _ZN7ee352003fooEv();
+extern void _ZN6dd52003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352003fooEv,_ZTv0_n12_N7ee352003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352003fooEv,_ZThn16_N7ee352003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35200[0]),
+ (VTBL_ENTRY)&_ZN7ee352003fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352003fooEv,_ZTv0_n12_N7ee352003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee35200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee35200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee35200[] = {
+ {&(_ZTV7ee35200[4]), 4,14},
+ {&(_ZTV7ee35200[9]), 9,14},
+ {&(_ZTV7ee35200[13]), 13,14},
+ {&(_tg__ZTV6dd5200__7ee35200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee35200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35200[];
+extern VTBL_ENTRY _ZTV7ee35200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35200[];
+static VTBL_ENTRY alt_thunk_names50[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352003fooEv,_ZTv0_n12_N7ee352003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352003fooEv,_ZThn16_N7ee352003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35200 = { "ee35200", // class name
+ bases_ee35200, 4,
+ &(vtc_ee35200[0]), // expected_vtbl_contents
+ &(vtt_ee35200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35200),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names50,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45200 : dd5200 {
+ int e;
+ virtual void bar(); // _ZN7ee452003barEv
+ ~ee45200(); // tgen
+ ee45200(); // tgen
+};
+//SIG(1 ee45200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45200 ::bar(){vfunc_called(this, "_ZN7ee452003barEv");}
+ee45200 ::~ee45200(){ note_dtor("ee45200", this);} // tgen
+ee45200 ::ee45200(){ note_ctor("ee45200", this);} // tgen
+
+static void Test_ee45200()
+{
+ extern Class_Descriptor cd_ee45200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45200, buf);
+ ee45200 *dp, &lv = *(dp=new (buf) ee45200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee45200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee45200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(16,12), "ee45200");
+ check_base_class_offset(lv, (dd5200*), 0, "ee45200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45200.e");
+ test_class_info(&lv, &cd_ee45200);
+ dp->~ee45200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45200(Test_ee45200, "ee45200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45200C1Ev();
+extern void _ZN7ee45200D1Ev();
+Name_Map name_map_ee45200[] = {
+ NSPAIR(_ZN7ee45200C1Ev),
+ NSPAIR(_ZN7ee45200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee45200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45200[];
+extern void _ZN7ee452003barEv();
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee45200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45200[0]),
+ (VTBL_ENTRY)&_ZN7ee452003barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee45200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee45200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee45200[] = {
+ {&(_ZTV7ee45200[3]), 3,8},
+ {&(_tg__ZTV6dd5200__7ee45200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee45200[3]), 3,4},
+ {&(_ZTV7ee45200[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45200[];
+extern VTBL_ENTRY _ZTV7ee45200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45200[];
+Class_Descriptor cd_ee45200 = { "ee45200", // class name
+ bases_ee45200, 4,
+ &(vtc_ee45200[0]), // expected_vtbl_contents
+ &(vtt_ee45200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45200),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55200 : virtual dd5200 {
+ int e;
+ virtual void bar(); // _ZN7ee552003barEv
+ ~ee55200(); // tgen
+ ee55200(); // tgen
+};
+//SIG(1 ee55200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55200 ::bar(){vfunc_called(this, "_ZN7ee552003barEv");}
+ee55200 ::~ee55200(){ note_dtor("ee55200", this);} // tgen
+ee55200 ::ee55200(){ note_ctor("ee55200", this);} // tgen
+
+static void Test_ee55200()
+{
+ extern Class_Descriptor cd_ee55200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55200, buf);
+ ee55200 *dp, &lv = *(dp=new (buf) ee55200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee55200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee55200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(32,16), "ee55200");
+ check_base_class_offset(lv, (dd5200*), ABISELECT(16,8), "ee55200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55200.e");
+ test_class_info(&lv, &cd_ee55200);
+ dp->~ee55200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55200(Test_ee55200, "ee55200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55200C1Ev();
+extern void _ZN7ee55200D1Ev();
+Name_Map name_map_ee55200[] = {
+ NSPAIR(_ZN7ee55200C1Ev),
+ NSPAIR(_ZN7ee55200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee55200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55200[];
+extern void _ZN7ee552003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552003barEv,_ZTv0_n16_N7ee552003barEv)();
+extern void ABISELECT(_ZThn16_N7ee552003barEv,_ZThn8_N7ee552003barEv)() __attribute__((weak));
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY vtc_ee55200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55200[0]),
+ (VTBL_ENTRY)&_ZN7ee552003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552003barEv,_ZTv0_n16_N7ee552003barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee55200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee55200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee55200[] = {
+ {&(_ZTV7ee55200[4]), 4,14},
+ {&(_ZTV7ee55200[9]), 9,14},
+ {&(_ZTV7ee55200[13]), 13,14},
+ {&(_tg__ZTV6dd5200__7ee55200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee55200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55200[];
+extern VTBL_ENTRY _ZTV7ee55200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55200[];
+static VTBL_ENTRY alt_thunk_names51[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552003barEv,_ZTv0_n16_N7ee552003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552003barEv,_ZThn8_N7ee552003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55200 = { "ee55200", // class name
+ bases_ee55200, 4,
+ &(vtc_ee55200[0]), // expected_vtbl_contents
+ &(vtt_ee55200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55200),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names51,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65200 : dd5200 {
+ int e;
+ virtual void foo(); // _ZN7ee652003fooEv
+ virtual void bar(); // _ZN7ee652003barEv
+ ~ee65200(); // tgen
+ ee65200(); // tgen
+};
+//SIG(1 ee65200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65200 ::foo(){vfunc_called(this, "_ZN7ee652003fooEv");}
+void ee65200 ::bar(){vfunc_called(this, "_ZN7ee652003barEv");}
+ee65200 ::~ee65200(){ note_dtor("ee65200", this);} // tgen
+ee65200 ::ee65200(){ note_ctor("ee65200", this);} // tgen
+
+static void Test_ee65200()
+{
+ extern Class_Descriptor cd_ee65200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65200, buf);
+ ee65200 *dp, &lv = *(dp=new (buf) ee65200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee65200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee65200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(16,12), "ee65200");
+ check_base_class_offset(lv, (dd5200*), 0, "ee65200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65200.e");
+ test_class_info(&lv, &cd_ee65200);
+ dp->~ee65200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65200(Test_ee65200, "ee65200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65200C1Ev();
+extern void _ZN7ee65200D1Ev();
+Name_Map name_map_ee65200[] = {
+ NSPAIR(_ZN7ee65200C1Ev),
+ NSPAIR(_ZN7ee65200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee65200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65200[];
+extern void _ZN7ee652003barEv();
+extern void _ZN7ee652003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652003fooEv,_ZTv0_n12_N7ee652003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652003fooEv,_ZThn12_N7ee652003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65200[0]),
+ (VTBL_ENTRY)&_ZN7ee652003barEv,
+ (VTBL_ENTRY)&_ZN7ee652003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652003fooEv,_ZTv0_n12_N7ee652003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee65200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee65200[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee65200[] = {
+ {&(_ZTV7ee65200[3]), 3,9},
+ {&(_tg__ZTV6dd5200__7ee65200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee65200[3]), 3,4},
+ {&(_ZTV7ee65200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65200[];
+extern VTBL_ENTRY _ZTV7ee65200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65200[];
+static VTBL_ENTRY alt_thunk_names52[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652003fooEv,_ZTv0_n12_N7ee652003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652003fooEv,_ZThn12_N7ee652003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65200 = { "ee65200", // class name
+ bases_ee65200, 4,
+ &(vtc_ee65200[0]), // expected_vtbl_contents
+ &(vtt_ee65200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names52,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75200 : virtual dd5200 {
+ int e;
+ virtual void foo(); // _ZN7ee752003fooEv
+ virtual void bar(); // _ZN7ee752003barEv
+ ~ee75200(); // tgen
+ ee75200(); // tgen
+};
+//SIG(1 ee75200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75200 ::foo(){vfunc_called(this, "_ZN7ee752003fooEv");}
+void ee75200 ::bar(){vfunc_called(this, "_ZN7ee752003barEv");}
+ee75200 ::~ee75200(){ note_dtor("ee75200", this);} // tgen
+ee75200 ::ee75200(){ note_ctor("ee75200", this);} // tgen
+
+static void Test_ee75200()
+{
+ extern Class_Descriptor cd_ee75200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75200, buf);
+ ee75200 *dp, &lv = *(dp=new (buf) ee75200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee75200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee75200");
+ check_base_class_offset(lv, (cc200*)(dd5200*), ABISELECT(32,16), "ee75200");
+ check_base_class_offset(lv, (dd5200*), ABISELECT(16,8), "ee75200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75200.e");
+ test_class_info(&lv, &cd_ee75200);
+ dp->~ee75200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75200(Test_ee75200, "ee75200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75200C1Ev();
+extern void _ZN7ee75200D1Ev();
+Name_Map name_map_ee75200[] = {
+ NSPAIR(_ZN7ee75200C1Ev),
+ NSPAIR(_ZN7ee75200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd5200;
+extern VTBL_ENTRY _ZTI6dd5200[];
+extern VTBL_ENTRY _ZTV6dd5200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5200[];
+static Base_Class bases_ee75200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5200, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75200[];
+extern void _ZN7ee752003fooEv();
+extern void _ZN7ee752003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752003barEv,_ZTv0_n16_N7ee752003barEv)();
+extern void ABISELECT(_ZThn16_N7ee752003barEv,_ZThn8_N7ee752003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752003fooEv,_ZTv0_n12_N7ee752003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752003fooEv,_ZThn16_N7ee752003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75200[0]),
+ (VTBL_ENTRY)&_ZN7ee752003fooEv,
+ (VTBL_ENTRY)&_ZN7ee752003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752003barEv,_ZTv0_n16_N7ee752003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752003fooEv,_ZTv0_n12_N7ee752003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75200[];
+extern void _ZN6dd52003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5200__7ee75200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN6dd52003barEv,
+};
+extern void _ZN5cc2003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc200__6dd5200__7ee75200[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5200[0]),
+ (VTBL_ENTRY)&_ZN5cc2003fooEv,
+};
+static VTT_ENTRY vtt_ee75200[] = {
+ {&(_ZTV7ee75200[4]), 4,15},
+ {&(_ZTV7ee75200[10]), 10,15},
+ {&(_ZTV7ee75200[14]), 14,15},
+ {&(_tg__ZTV6dd5200__7ee75200[3]), 3,4},
+ {&(_tg__ZTV5cc200__6dd5200__7ee75200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75200[];
+extern VTBL_ENTRY _ZTV7ee75200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75200[];
+static VTBL_ENTRY alt_thunk_names53[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752003fooEv,_ZTv0_n12_N7ee752003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752003fooEv,_ZThn16_N7ee752003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752003barEv,_ZTv0_n16_N7ee752003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752003barEv,_ZThn8_N7ee752003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75200 = { "ee75200", // class name
+ bases_ee75200, 4,
+ &(vtc_ee75200[0]), // expected_vtbl_contents
+ &(vtt_ee75200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75200),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names53,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6200 : cc200 {
+ int d;
+ virtual void bar(); // _ZN6dd62003barEv
+ virtual void foo(); // _ZN6dd62003fooEv
+ ~dd6200(); // tgen
+ dd6200(); // tgen
+};
+//SIG(-1 dd6200) C1{ BC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6200 ::bar(){vfunc_called(this, "_ZN6dd62003barEv");}
+void dd6200 ::foo(){vfunc_called(this, "_ZN6dd62003fooEv");}
+dd6200 ::~dd6200(){ note_dtor("dd6200", this);} // tgen
+dd6200 ::dd6200(){ note_ctor("dd6200", this);} // tgen
+
+static void Test_dd6200()
+{
+ extern Class_Descriptor cd_dd6200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6200, buf);
+ dd6200 *dp, &lv = *(dp=new (buf) dd6200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(8,4), "dd6200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(8,4), "dd6200");
+ check_base_class_offset(lv, (cc200*), 0, "dd6200");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6200.d");
+ test_class_info(&lv, &cd_dd6200);
+ dp->~dd6200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6200(Test_dd6200, "dd6200", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6200C1Ev();
+extern void _ZN6dd6200D1Ev();
+Name_Map name_map_dd6200[] = {
+ NSPAIR(_ZN6dd6200C1Ev),
+ NSPAIR(_ZN6dd6200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd6200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern void _ZN6dd62003fooEv();
+extern void _ZN6dd62003barEv();
+static VTBL_ENTRY vtc_dd6200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6200[0]),
+ (VTBL_ENTRY)&_ZN6dd62003fooEv,
+ (VTBL_ENTRY)&_ZN6dd62003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+Class_Descriptor cd_dd6200 = { "dd6200", // class name
+ bases_dd6200, 3,
+ &(vtc_dd6200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06200 : dd6200 {
+ int e;
+ ~ee06200(); // tgen
+ ee06200(); // tgen
+};
+//SIG(1 ee06200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06200 ::~ee06200(){ note_dtor("ee06200", this);} // tgen
+ee06200 ::ee06200(){ note_ctor("ee06200", this);} // tgen
+
+static void Test_ee06200()
+{
+ extern Class_Descriptor cd_ee06200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06200, buf);
+ ee06200 *dp, &lv = *(dp=new (buf) ee06200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd6200*), ABISELECT(8,4), "ee06200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd6200*), ABISELECT(8,4), "ee06200");
+ check_base_class_offset(lv, (cc200*)(dd6200*), 0, "ee06200");
+ check_base_class_offset(lv, (dd6200*), 0, "ee06200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06200.e");
+ test_class_info(&lv, &cd_ee06200);
+ dp->~ee06200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06200(Test_ee06200, "ee06200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06200C1Ev();
+extern void _ZN7ee06200D1Ev();
+Name_Map name_map_ee06200[] = {
+ NSPAIR(_ZN7ee06200C1Ev),
+ NSPAIR(_ZN7ee06200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd6200;
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+static Base_Class bases_ee06200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6200, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06200[];
+extern void _ZN6dd62003fooEv();
+extern void _ZN6dd62003barEv();
+static VTBL_ENTRY vtc_ee06200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06200[0]),
+ (VTBL_ENTRY)&_ZN6dd62003fooEv,
+ (VTBL_ENTRY)&_ZN6dd62003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06200[];
+extern VTBL_ENTRY _ZTV7ee06200[];
+Class_Descriptor cd_ee06200 = { "ee06200", // class name
+ bases_ee06200, 4,
+ &(vtc_ee06200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16200 : virtual dd6200 {
+ int e;
+ ~ee16200(); // tgen
+ ee16200(); // tgen
+};
+//SIG(1 ee16200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16200 ::~ee16200(){ note_dtor("ee16200", this);} // tgen
+ee16200 ::ee16200(){ note_ctor("ee16200", this);} // tgen
+
+static void Test_ee16200()
+{
+ extern Class_Descriptor cd_ee16200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16200, buf);
+ ee16200 *dp, &lv = *(dp=new (buf) ee16200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd6200*), ABISELECT(24,12), "ee16200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd6200*), ABISELECT(24,12), "ee16200");
+ check_base_class_offset(lv, (cc200*)(dd6200*), ABISELECT(16,8), "ee16200");
+ check_base_class_offset(lv, (dd6200*), ABISELECT(16,8), "ee16200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16200.e");
+ test_class_info(&lv, &cd_ee16200);
+ dp->~ee16200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16200(Test_ee16200, "ee16200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16200C1Ev();
+extern void _ZN7ee16200D1Ev();
+Name_Map name_map_ee16200[] = {
+ NSPAIR(_ZN7ee16200C1Ev),
+ NSPAIR(_ZN7ee16200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd6200;
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+static Base_Class bases_ee16200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6200, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16200[];
+extern void _ZN6dd62003fooEv();
+extern void _ZN6dd62003barEv();
+static VTBL_ENTRY vtc_ee16200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16200[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16200[0]),
+ (VTBL_ENTRY)&_ZN6dd62003fooEv,
+ (VTBL_ENTRY)&_ZN6dd62003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16200[];
+static VTT_ENTRY vtt_ee16200[] = {
+ {&(_ZTV7ee16200[3]), 3,9},
+ {&(_ZTV7ee16200[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16200[];
+extern VTBL_ENTRY _ZTV7ee16200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16200[];
+Class_Descriptor cd_ee16200 = { "ee16200", // class name
+ bases_ee16200, 4,
+ &(vtc_ee16200[0]), // expected_vtbl_contents
+ &(vtt_ee16200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26200 : dd6200 {
+ int e;
+ virtual void foo(); // _ZN7ee262003fooEv
+ ~ee26200(); // tgen
+ ee26200(); // tgen
+};
+//SIG(1 ee26200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26200 ::foo(){vfunc_called(this, "_ZN7ee262003fooEv");}
+ee26200 ::~ee26200(){ note_dtor("ee26200", this);} // tgen
+ee26200 ::ee26200(){ note_ctor("ee26200", this);} // tgen
+
+static void Test_ee26200()
+{
+ extern Class_Descriptor cd_ee26200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26200, buf);
+ ee26200 *dp, &lv = *(dp=new (buf) ee26200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd6200*), ABISELECT(8,4), "ee26200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd6200*), ABISELECT(8,4), "ee26200");
+ check_base_class_offset(lv, (cc200*)(dd6200*), 0, "ee26200");
+ check_base_class_offset(lv, (dd6200*), 0, "ee26200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26200.e");
+ test_class_info(&lv, &cd_ee26200);
+ dp->~ee26200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26200(Test_ee26200, "ee26200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26200C1Ev();
+extern void _ZN7ee26200D1Ev();
+Name_Map name_map_ee26200[] = {
+ NSPAIR(_ZN7ee26200C1Ev),
+ NSPAIR(_ZN7ee26200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd6200;
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+static Base_Class bases_ee26200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26200[];
+extern void _ZN7ee262003fooEv();
+extern void _ZN6dd62003barEv();
+static VTBL_ENTRY vtc_ee26200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26200[0]),
+ (VTBL_ENTRY)&_ZN7ee262003fooEv,
+ (VTBL_ENTRY)&_ZN6dd62003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26200[];
+extern VTBL_ENTRY _ZTV7ee26200[];
+Class_Descriptor cd_ee26200 = { "ee26200", // class name
+ bases_ee26200, 4,
+ &(vtc_ee26200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36200 : virtual dd6200 {
+ int e;
+ virtual void foo(); // _ZN7ee362003fooEv
+ ~ee36200(); // tgen
+ ee36200(); // tgen
+};
+//SIG(1 ee36200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36200 ::foo(){vfunc_called(this, "_ZN7ee362003fooEv");}
+ee36200 ::~ee36200(){ note_dtor("ee36200", this);} // tgen
+ee36200 ::ee36200(){ note_ctor("ee36200", this);} // tgen
+
+static void Test_ee36200()
+{
+ extern Class_Descriptor cd_ee36200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36200, buf);
+ ee36200 *dp, &lv = *(dp=new (buf) ee36200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd6200*), ABISELECT(24,12), "ee36200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd6200*), ABISELECT(24,12), "ee36200");
+ check_base_class_offset(lv, (cc200*)(dd6200*), ABISELECT(16,8), "ee36200");
+ check_base_class_offset(lv, (dd6200*), ABISELECT(16,8), "ee36200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36200.e");
+ test_class_info(&lv, &cd_ee36200);
+ dp->~ee36200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36200(Test_ee36200, "ee36200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36200C1Ev();
+extern void _ZN7ee36200D1Ev();
+Name_Map name_map_ee36200[] = {
+ NSPAIR(_ZN7ee36200C1Ev),
+ NSPAIR(_ZN7ee36200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd6200;
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+static Base_Class bases_ee36200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36200[];
+extern void _ZN7ee362003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee362003fooEv,_ZTv0_n12_N7ee362003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362003fooEv,_ZThn8_N7ee362003fooEv)() __attribute__((weak));
+extern void _ZN6dd62003barEv();
+static VTBL_ENTRY vtc_ee36200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36200[0]),
+ (VTBL_ENTRY)&_ZN7ee362003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362003fooEv,_ZTv0_n12_N7ee362003fooEv),
+ (VTBL_ENTRY)&_ZN6dd62003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36200[];
+static VTT_ENTRY vtt_ee36200[] = {
+ {&(_ZTV7ee36200[3]), 3,10},
+ {&(_ZTV7ee36200[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36200[];
+extern VTBL_ENTRY _ZTV7ee36200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36200[];
+static VTBL_ENTRY alt_thunk_names54[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362003fooEv,_ZTv0_n12_N7ee362003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362003fooEv,_ZThn8_N7ee362003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36200 = { "ee36200", // class name
+ bases_ee36200, 4,
+ &(vtc_ee36200[0]), // expected_vtbl_contents
+ &(vtt_ee36200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36200),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names54,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46200 : dd6200 {
+ int e;
+ virtual void bar(); // _ZN7ee462003barEv
+ ~ee46200(); // tgen
+ ee46200(); // tgen
+};
+//SIG(1 ee46200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46200 ::bar(){vfunc_called(this, "_ZN7ee462003barEv");}
+ee46200 ::~ee46200(){ note_dtor("ee46200", this);} // tgen
+ee46200 ::ee46200(){ note_ctor("ee46200", this);} // tgen
+
+static void Test_ee46200()
+{
+ extern Class_Descriptor cd_ee46200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46200, buf);
+ ee46200 *dp, &lv = *(dp=new (buf) ee46200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd6200*), ABISELECT(8,4), "ee46200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd6200*), ABISELECT(8,4), "ee46200");
+ check_base_class_offset(lv, (cc200*)(dd6200*), 0, "ee46200");
+ check_base_class_offset(lv, (dd6200*), 0, "ee46200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46200.e");
+ test_class_info(&lv, &cd_ee46200);
+ dp->~ee46200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46200(Test_ee46200, "ee46200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46200C1Ev();
+extern void _ZN7ee46200D1Ev();
+Name_Map name_map_ee46200[] = {
+ NSPAIR(_ZN7ee46200C1Ev),
+ NSPAIR(_ZN7ee46200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd6200;
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+static Base_Class bases_ee46200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46200[];
+extern void _ZN6dd62003fooEv();
+extern void _ZN7ee462003barEv();
+static VTBL_ENTRY vtc_ee46200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46200[0]),
+ (VTBL_ENTRY)&_ZN6dd62003fooEv,
+ (VTBL_ENTRY)&_ZN7ee462003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46200[];
+extern VTBL_ENTRY _ZTV7ee46200[];
+Class_Descriptor cd_ee46200 = { "ee46200", // class name
+ bases_ee46200, 4,
+ &(vtc_ee46200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56200 : virtual dd6200 {
+ int e;
+ virtual void bar(); // _ZN7ee562003barEv
+ ~ee56200(); // tgen
+ ee56200(); // tgen
+};
+//SIG(1 ee56200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56200 ::bar(){vfunc_called(this, "_ZN7ee562003barEv");}
+ee56200 ::~ee56200(){ note_dtor("ee56200", this);} // tgen
+ee56200 ::ee56200(){ note_ctor("ee56200", this);} // tgen
+
+static void Test_ee56200()
+{
+ extern Class_Descriptor cd_ee56200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56200, buf);
+ ee56200 *dp, &lv = *(dp=new (buf) ee56200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd6200*), ABISELECT(24,12), "ee56200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd6200*), ABISELECT(24,12), "ee56200");
+ check_base_class_offset(lv, (cc200*)(dd6200*), ABISELECT(16,8), "ee56200");
+ check_base_class_offset(lv, (dd6200*), ABISELECT(16,8), "ee56200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56200.e");
+ test_class_info(&lv, &cd_ee56200);
+ dp->~ee56200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56200(Test_ee56200, "ee56200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56200C1Ev();
+extern void _ZN7ee56200D1Ev();
+Name_Map name_map_ee56200[] = {
+ NSPAIR(_ZN7ee56200C1Ev),
+ NSPAIR(_ZN7ee56200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd6200;
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+static Base_Class bases_ee56200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56200[];
+extern void _ZN7ee562003barEv();
+extern void _ZN6dd62003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562003barEv,_ZTv0_n16_N7ee562003barEv)();
+extern void ABISELECT(_ZThn16_N7ee562003barEv,_ZThn8_N7ee562003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56200[0]),
+ (VTBL_ENTRY)&_ZN7ee562003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56200[0]),
+ (VTBL_ENTRY)&_ZN6dd62003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562003barEv,_ZTv0_n16_N7ee562003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56200[];
+static VTT_ENTRY vtt_ee56200[] = {
+ {&(_ZTV7ee56200[3]), 3,10},
+ {&(_ZTV7ee56200[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56200[];
+extern VTBL_ENTRY _ZTV7ee56200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56200[];
+static VTBL_ENTRY alt_thunk_names55[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562003barEv,_ZTv0_n16_N7ee562003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562003barEv,_ZThn8_N7ee562003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56200 = { "ee56200", // class name
+ bases_ee56200, 4,
+ &(vtc_ee56200[0]), // expected_vtbl_contents
+ &(vtt_ee56200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56200),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56200),2, //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 ee66200 : dd6200 {
+ int e;
+ virtual void foo(); // _ZN7ee662003fooEv
+ virtual void bar(); // _ZN7ee662003barEv
+ ~ee66200(); // tgen
+ ee66200(); // tgen
+};
+//SIG(1 ee66200) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66200 ::foo(){vfunc_called(this, "_ZN7ee662003fooEv");}
+void ee66200 ::bar(){vfunc_called(this, "_ZN7ee662003barEv");}
+ee66200 ::~ee66200(){ note_dtor("ee66200", this);} // tgen
+ee66200 ::ee66200(){ note_ctor("ee66200", this);} // tgen
+
+static void Test_ee66200()
+{
+ extern Class_Descriptor cd_ee66200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66200, buf);
+ ee66200 *dp, &lv = *(dp=new (buf) ee66200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd6200*), ABISELECT(8,4), "ee66200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd6200*), ABISELECT(8,4), "ee66200");
+ check_base_class_offset(lv, (cc200*)(dd6200*), 0, "ee66200");
+ check_base_class_offset(lv, (dd6200*), 0, "ee66200");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66200.e");
+ test_class_info(&lv, &cd_ee66200);
+ dp->~ee66200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66200(Test_ee66200, "ee66200", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66200C1Ev();
+extern void _ZN7ee66200D1Ev();
+Name_Map name_map_ee66200[] = {
+ NSPAIR(_ZN7ee66200C1Ev),
+ NSPAIR(_ZN7ee66200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd6200;
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+static Base_Class bases_ee66200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66200[];
+extern void _ZN7ee662003fooEv();
+extern void _ZN7ee662003barEv();
+static VTBL_ENTRY vtc_ee66200[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66200[0]),
+ (VTBL_ENTRY)&_ZN7ee662003fooEv,
+ (VTBL_ENTRY)&_ZN7ee662003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66200[];
+extern VTBL_ENTRY _ZTV7ee66200[];
+Class_Descriptor cd_ee66200 = { "ee66200", // class name
+ bases_ee66200, 4,
+ &(vtc_ee66200[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66200),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76200 : virtual dd6200 {
+ int e;
+ virtual void foo(); // _ZN7ee762003fooEv
+ virtual void bar(); // _ZN7ee762003barEv
+ ~ee76200(); // tgen
+ ee76200(); // tgen
+};
+//SIG(1 ee76200) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76200 ::foo(){vfunc_called(this, "_ZN7ee762003fooEv");}
+void ee76200 ::bar(){vfunc_called(this, "_ZN7ee762003barEv");}
+ee76200 ::~ee76200(){ note_dtor("ee76200", this);} // tgen
+ee76200 ::ee76200(){ note_ctor("ee76200", this);} // tgen
+
+static void Test_ee76200()
+{
+ extern Class_Descriptor cd_ee76200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76200, buf);
+ ee76200 *dp, &lv = *(dp=new (buf) ee76200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*)(dd6200*), ABISELECT(24,12), "ee76200");
+ check_base_class_offset(lv, (bb00*)(cc200*)(dd6200*), ABISELECT(24,12), "ee76200");
+ check_base_class_offset(lv, (cc200*)(dd6200*), ABISELECT(16,8), "ee76200");
+ check_base_class_offset(lv, (dd6200*), ABISELECT(16,8), "ee76200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76200.e");
+ test_class_info(&lv, &cd_ee76200);
+ dp->~ee76200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76200(Test_ee76200, "ee76200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76200C1Ev();
+extern void _ZN7ee76200D1Ev();
+Name_Map name_map_ee76200[] = {
+ NSPAIR(_ZN7ee76200C1Ev),
+ NSPAIR(_ZN7ee76200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd6200;
+extern VTBL_ENTRY _ZTI6dd6200[];
+extern VTBL_ENTRY _ZTV6dd6200[];
+static Base_Class bases_ee76200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76200[];
+extern void _ZN7ee762003fooEv();
+extern void _ZN7ee762003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762003fooEv,_ZTv0_n12_N7ee762003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762003fooEv,_ZThn8_N7ee762003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762003barEv,_ZTv0_n16_N7ee762003barEv)();
+extern void ABISELECT(_ZThn16_N7ee762003barEv,_ZThn8_N7ee762003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76200[0]),
+ (VTBL_ENTRY)&_ZN7ee762003fooEv,
+ (VTBL_ENTRY)&_ZN7ee762003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762003fooEv,_ZTv0_n12_N7ee762003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762003barEv,_ZTv0_n16_N7ee762003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76200[];
+static VTT_ENTRY vtt_ee76200[] = {
+ {&(_ZTV7ee76200[3]), 3,11},
+ {&(_ZTV7ee76200[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76200[];
+extern VTBL_ENTRY _ZTV7ee76200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76200[];
+static VTBL_ENTRY alt_thunk_names56[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762003barEv,_ZTv0_n16_N7ee762003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762003barEv,_ZThn8_N7ee762003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762003fooEv,_ZTv0_n12_N7ee762003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762003fooEv,_ZThn8_N7ee762003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76200 = { "ee76200", // class name
+ bases_ee76200, 4,
+ &(vtc_ee76200[0]), // expected_vtbl_contents
+ &(vtt_ee76200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76200),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76200),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names56,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7200 : virtual cc200 {
+ int d;
+ virtual void bar(); // _ZN6dd72003barEv
+ virtual void foo(); // _ZN6dd72003fooEv
+ ~dd7200(); // tgen
+ dd7200(); // tgen
+};
+//SIG(-1 dd7200) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7200 ::bar(){vfunc_called(this, "_ZN6dd72003barEv");}
+void dd7200 ::foo(){vfunc_called(this, "_ZN6dd72003fooEv");}
+dd7200 ::~dd7200(){ note_dtor("dd7200", this);} // tgen
+dd7200 ::dd7200(){ note_ctor("dd7200", this);} // tgen
+
+static void Test_dd7200()
+{
+ extern Class_Descriptor cd_dd7200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7200, buf);
+ dd7200 *dp, &lv = *(dp=new (buf) dd7200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,12), "dd7200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,12), "dd7200");
+ check_base_class_offset(lv, (cc200*), ABISELECT(16,8), "dd7200");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7200.d");
+ test_class_info(&lv, &cd_dd7200);
+ dp->~dd7200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7200(Test_dd7200, "dd7200", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7200C1Ev();
+extern void _ZN6dd7200D1Ev();
+Name_Map name_map_dd7200[] = {
+ NSPAIR(_ZN6dd7200C1Ev),
+ NSPAIR(_ZN6dd7200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+static Base_Class bases_dd7200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7200[];
+static VTT_ENTRY vtt_dd7200[] = {
+ {&(_ZTV6dd7200[3]), 3,9},
+ {&(_ZTV6dd7200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static VTBL_ENTRY alt_thunk_names57[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7200 = { "dd7200", // class name
+ bases_dd7200, 3,
+ &(vtc_dd7200[0]), // expected_vtbl_contents
+ &(vtt_dd7200[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7200),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names57,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07200 : dd7200 {
+ int e;
+ ~ee07200(); // tgen
+ ee07200(); // tgen
+};
+//SIG(1 ee07200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07200 ::~ee07200(){ note_dtor("ee07200", this);} // tgen
+ee07200 ::ee07200(){ note_ctor("ee07200", this);} // tgen
+
+static void Test_ee07200()
+{
+ extern Class_Descriptor cd_ee07200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07200, buf);
+ ee07200 *dp, &lv = *(dp=new (buf) ee07200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee07200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee07200");
+ check_base_class_offset(lv, (cc200*)(dd7200*), ABISELECT(16,12), "ee07200");
+ check_base_class_offset(lv, (dd7200*), 0, "ee07200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07200.e");
+ test_class_info(&lv, &cd_ee07200);
+ dp->~ee07200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07200(Test_ee07200, "ee07200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07200C1Ev();
+extern void _ZN7ee07200D1Ev();
+Name_Map name_map_ee07200[] = {
+ NSPAIR(_ZN7ee07200C1Ev),
+ NSPAIR(_ZN7ee07200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd7200;
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static Base_Class bases_ee07200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7200__7ee07200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd7200__7ee07200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+static VTT_ENTRY vtt_ee07200[] = {
+ {&(_ZTV7ee07200[3]), 3,9},
+ {&(_tg__ZTV6dd7200__7ee07200[3]), 3,5},
+ {&(_tg__ZTV5cc200__6dd7200__7ee07200[3]), 3,4},
+ {&(_ZTV7ee07200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee07200[];
+extern VTBL_ENTRY _ZTV7ee07200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07200[];
+static VTBL_ENTRY alt_thunk_names58[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07200 = { "ee07200", // class name
+ bases_ee07200, 4,
+ &(vtc_ee07200[0]), // expected_vtbl_contents
+ &(vtt_ee07200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names58,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17200 : virtual dd7200 {
+ int e;
+ ~ee17200(); // tgen
+ ee17200(); // tgen
+};
+//SIG(1 ee17200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17200 ::~ee17200(){ note_dtor("ee17200", this);} // tgen
+ee17200 ::ee17200(){ note_ctor("ee17200", this);} // tgen
+
+static void Test_ee17200()
+{
+ extern Class_Descriptor cd_ee17200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17200, buf);
+ ee17200 *dp, &lv = *(dp=new (buf) ee17200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee17200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee17200");
+ check_base_class_offset(lv, (cc200*)(dd7200*), ABISELECT(32,16), "ee17200");
+ check_base_class_offset(lv, (dd7200*), ABISELECT(16,8), "ee17200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17200.e");
+ test_class_info(&lv, &cd_ee17200);
+ dp->~ee17200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17200(Test_ee17200, "ee17200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17200C1Ev();
+extern void _ZN7ee17200D1Ev();
+Name_Map name_map_ee17200[] = {
+ NSPAIR(_ZN7ee17200C1Ev),
+ NSPAIR(_ZN7ee17200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd7200;
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static Base_Class bases_ee17200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7200, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17200[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7200__7ee17200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd7200__7ee17200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+static VTT_ENTRY vtt_ee17200[] = {
+ {&(_ZTV7ee17200[4]), 4,15},
+ {&(_ZTV7ee17200[9]), 9,15},
+ {&(_ZTV7ee17200[14]), 14,15},
+ {&(_tg__ZTV6dd7200__7ee17200[3]), 3,5},
+ {&(_tg__ZTV5cc200__6dd7200__7ee17200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17200[];
+extern VTBL_ENTRY _ZTV7ee17200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17200[];
+static VTBL_ENTRY alt_thunk_names59[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17200 = { "ee17200", // class name
+ bases_ee17200, 4,
+ &(vtc_ee17200[0]), // expected_vtbl_contents
+ &(vtt_ee17200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17200),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names59,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27200 : dd7200 {
+ int e;
+ virtual void foo(); // _ZN7ee272003fooEv
+ ~ee27200(); // tgen
+ ee27200(); // tgen
+};
+//SIG(1 ee27200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27200 ::foo(){vfunc_called(this, "_ZN7ee272003fooEv");}
+ee27200 ::~ee27200(){ note_dtor("ee27200", this);} // tgen
+ee27200 ::ee27200(){ note_ctor("ee27200", this);} // tgen
+
+static void Test_ee27200()
+{
+ extern Class_Descriptor cd_ee27200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27200, buf);
+ ee27200 *dp, &lv = *(dp=new (buf) ee27200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee27200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee27200");
+ check_base_class_offset(lv, (cc200*)(dd7200*), ABISELECT(16,12), "ee27200");
+ check_base_class_offset(lv, (dd7200*), 0, "ee27200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27200.e");
+ test_class_info(&lv, &cd_ee27200);
+ dp->~ee27200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27200(Test_ee27200, "ee27200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27200C1Ev();
+extern void _ZN7ee27200D1Ev();
+Name_Map name_map_ee27200[] = {
+ NSPAIR(_ZN7ee27200C1Ev),
+ NSPAIR(_ZN7ee27200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd7200;
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static Base_Class bases_ee27200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN7ee272003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee272003fooEv,_ZTv0_n12_N7ee272003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272003fooEv,_ZThn12_N7ee272003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN7ee272003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272003fooEv,_ZTv0_n12_N7ee272003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7200__7ee27200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd7200__7ee27200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+static VTT_ENTRY vtt_ee27200[] = {
+ {&(_ZTV7ee27200[3]), 3,9},
+ {&(_tg__ZTV6dd7200__7ee27200[3]), 3,5},
+ {&(_tg__ZTV5cc200__6dd7200__7ee27200[3]), 3,4},
+ {&(_ZTV7ee27200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee27200[];
+extern VTBL_ENTRY _ZTV7ee27200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27200[];
+static VTBL_ENTRY alt_thunk_names60[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272003fooEv,_ZTv0_n12_N7ee272003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272003fooEv,_ZThn12_N7ee272003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27200 = { "ee27200", // class name
+ bases_ee27200, 4,
+ &(vtc_ee27200[0]), // expected_vtbl_contents
+ &(vtt_ee27200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names60,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37200 : virtual dd7200 {
+ int e;
+ virtual void foo(); // _ZN7ee372003fooEv
+ ~ee37200(); // tgen
+ ee37200(); // tgen
+};
+//SIG(1 ee37200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37200 ::foo(){vfunc_called(this, "_ZN7ee372003fooEv");}
+ee37200 ::~ee37200(){ note_dtor("ee37200", this);} // tgen
+ee37200 ::ee37200(){ note_ctor("ee37200", this);} // tgen
+
+static void Test_ee37200()
+{
+ extern Class_Descriptor cd_ee37200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37200, buf);
+ ee37200 *dp, &lv = *(dp=new (buf) ee37200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee37200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee37200");
+ check_base_class_offset(lv, (cc200*)(dd7200*), ABISELECT(32,16), "ee37200");
+ check_base_class_offset(lv, (dd7200*), ABISELECT(16,8), "ee37200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37200.e");
+ test_class_info(&lv, &cd_ee37200);
+ dp->~ee37200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37200(Test_ee37200, "ee37200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37200C1Ev();
+extern void _ZN7ee37200D1Ev();
+Name_Map name_map_ee37200[] = {
+ NSPAIR(_ZN7ee37200C1Ev),
+ NSPAIR(_ZN7ee37200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd7200;
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static Base_Class bases_ee37200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37200[];
+extern void _ZN7ee372003fooEv();
+extern void _ZN6dd72003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372003fooEv,_ZTv0_n20_N7ee372003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372003fooEv,_ZThn8_N7ee372003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372003fooEv,_ZTv0_n12_N7ee372003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372003fooEv,_ZThn16_N7ee372003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37200[0]),
+ (VTBL_ENTRY)&_ZN7ee372003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372003fooEv,_ZTv0_n20_N7ee372003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372003fooEv,_ZTv0_n12_N7ee372003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7200__7ee37200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd7200__7ee37200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+static VTT_ENTRY vtt_ee37200[] = {
+ {&(_ZTV7ee37200[4]), 4,16},
+ {&(_ZTV7ee37200[10]), 10,16},
+ {&(_ZTV7ee37200[15]), 15,16},
+ {&(_tg__ZTV6dd7200__7ee37200[3]), 3,5},
+ {&(_tg__ZTV5cc200__6dd7200__7ee37200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37200[];
+extern VTBL_ENTRY _ZTV7ee37200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37200[];
+static VTBL_ENTRY alt_thunk_names61[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372003fooEv,_ZTv0_n12_N7ee372003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372003fooEv,_ZThn16_N7ee372003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372003fooEv,_ZTv0_n20_N7ee372003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372003fooEv,_ZThn8_N7ee372003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37200 = { "ee37200", // class name
+ bases_ee37200, 4,
+ &(vtc_ee37200[0]), // expected_vtbl_contents
+ &(vtt_ee37200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37200),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names61,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47200 : dd7200 {
+ int e;
+ virtual void bar(); // _ZN7ee472003barEv
+ ~ee47200(); // tgen
+ ee47200(); // tgen
+};
+//SIG(1 ee47200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47200 ::bar(){vfunc_called(this, "_ZN7ee472003barEv");}
+ee47200 ::~ee47200(){ note_dtor("ee47200", this);} // tgen
+ee47200 ::ee47200(){ note_ctor("ee47200", this);} // tgen
+
+static void Test_ee47200()
+{
+ extern Class_Descriptor cd_ee47200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47200, buf);
+ ee47200 *dp, &lv = *(dp=new (buf) ee47200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee47200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee47200");
+ check_base_class_offset(lv, (cc200*)(dd7200*), ABISELECT(16,12), "ee47200");
+ check_base_class_offset(lv, (dd7200*), 0, "ee47200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47200.e");
+ test_class_info(&lv, &cd_ee47200);
+ dp->~ee47200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47200(Test_ee47200, "ee47200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47200C1Ev();
+extern void _ZN7ee47200D1Ev();
+Name_Map name_map_ee47200[] = {
+ NSPAIR(_ZN7ee47200C1Ev),
+ NSPAIR(_ZN7ee47200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd7200;
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static Base_Class bases_ee47200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47200[];
+extern void _ZN7ee472003barEv();
+extern void _ZN6dd72003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47200[0]),
+ (VTBL_ENTRY)&_ZN7ee472003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7200__7ee47200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd7200__7ee47200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+static VTT_ENTRY vtt_ee47200[] = {
+ {&(_ZTV7ee47200[3]), 3,9},
+ {&(_tg__ZTV6dd7200__7ee47200[3]), 3,5},
+ {&(_tg__ZTV5cc200__6dd7200__7ee47200[3]), 3,4},
+ {&(_ZTV7ee47200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee47200[];
+extern VTBL_ENTRY _ZTV7ee47200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47200[];
+static VTBL_ENTRY alt_thunk_names62[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47200 = { "ee47200", // class name
+ bases_ee47200, 4,
+ &(vtc_ee47200[0]), // expected_vtbl_contents
+ &(vtt_ee47200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names62,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57200 : virtual dd7200 {
+ int e;
+ virtual void bar(); // _ZN7ee572003barEv
+ ~ee57200(); // tgen
+ ee57200(); // tgen
+};
+//SIG(1 ee57200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57200 ::bar(){vfunc_called(this, "_ZN7ee572003barEv");}
+ee57200 ::~ee57200(){ note_dtor("ee57200", this);} // tgen
+ee57200 ::ee57200(){ note_ctor("ee57200", this);} // tgen
+
+static void Test_ee57200()
+{
+ extern Class_Descriptor cd_ee57200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57200, buf);
+ ee57200 *dp, &lv = *(dp=new (buf) ee57200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee57200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee57200");
+ check_base_class_offset(lv, (cc200*)(dd7200*), ABISELECT(32,16), "ee57200");
+ check_base_class_offset(lv, (dd7200*), ABISELECT(16,8), "ee57200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57200.e");
+ test_class_info(&lv, &cd_ee57200);
+ dp->~ee57200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57200(Test_ee57200, "ee57200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57200C1Ev();
+extern void _ZN7ee57200D1Ev();
+Name_Map name_map_ee57200[] = {
+ NSPAIR(_ZN7ee57200C1Ev),
+ NSPAIR(_ZN7ee57200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd7200;
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static Base_Class bases_ee57200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7200, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57200[];
+extern void _ZN7ee572003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572003barEv,_ZTv0_n16_N7ee572003barEv)();
+extern void ABISELECT(_ZThn16_N7ee572003barEv,_ZThn8_N7ee572003barEv)() __attribute__((weak));
+extern void _ZN6dd72003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57200[0]),
+ (VTBL_ENTRY)&_ZN7ee572003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572003barEv,_ZTv0_n16_N7ee572003barEv),
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7200__7ee57200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd7200__7ee57200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+static VTT_ENTRY vtt_ee57200[] = {
+ {&(_ZTV7ee57200[4]), 4,16},
+ {&(_ZTV7ee57200[10]), 10,16},
+ {&(_ZTV7ee57200[15]), 15,16},
+ {&(_tg__ZTV6dd7200__7ee57200[3]), 3,5},
+ {&(_tg__ZTV5cc200__6dd7200__7ee57200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57200[];
+extern VTBL_ENTRY _ZTV7ee57200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57200[];
+static VTBL_ENTRY alt_thunk_names63[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572003barEv,_ZTv0_n16_N7ee572003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572003barEv,_ZThn8_N7ee572003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57200 = { "ee57200", // class name
+ bases_ee57200, 4,
+ &(vtc_ee57200[0]), // expected_vtbl_contents
+ &(vtt_ee57200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57200),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names63,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67200 : dd7200 {
+ int e;
+ virtual void foo(); // _ZN7ee672003fooEv
+ virtual void bar(); // _ZN7ee672003barEv
+ ~ee67200(); // tgen
+ ee67200(); // tgen
+};
+//SIG(1 ee67200) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67200 ::foo(){vfunc_called(this, "_ZN7ee672003fooEv");}
+void ee67200 ::bar(){vfunc_called(this, "_ZN7ee672003barEv");}
+ee67200 ::~ee67200(){ note_dtor("ee67200", this);} // tgen
+ee67200 ::ee67200(){ note_ctor("ee67200", this);} // tgen
+
+static void Test_ee67200()
+{
+ extern Class_Descriptor cd_ee67200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67200, buf);
+ ee67200 *dp, &lv = *(dp=new (buf) ee67200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(24,16), "ee67200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(24,16), "ee67200");
+ check_base_class_offset(lv, (cc200*)(dd7200*), ABISELECT(16,12), "ee67200");
+ check_base_class_offset(lv, (dd7200*), 0, "ee67200");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67200.e");
+ test_class_info(&lv, &cd_ee67200);
+ dp->~ee67200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67200(Test_ee67200, "ee67200", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67200C1Ev();
+extern void _ZN7ee67200D1Ev();
+Name_Map name_map_ee67200[] = {
+ NSPAIR(_ZN7ee67200C1Ev),
+ NSPAIR(_ZN7ee67200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd7200;
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static Base_Class bases_ee67200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7200, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67200[];
+extern void _ZN7ee672003barEv();
+extern void _ZN7ee672003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672003fooEv,_ZTv0_n12_N7ee672003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672003fooEv,_ZThn12_N7ee672003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67200[0]),
+ (VTBL_ENTRY)&_ZN7ee672003barEv,
+ (VTBL_ENTRY)&_ZN7ee672003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672003fooEv,_ZTv0_n12_N7ee672003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7200__7ee67200[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd7200__7ee67200[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+static VTT_ENTRY vtt_ee67200[] = {
+ {&(_ZTV7ee67200[3]), 3,9},
+ {&(_tg__ZTV6dd7200__7ee67200[3]), 3,5},
+ {&(_tg__ZTV5cc200__6dd7200__7ee67200[3]), 3,4},
+ {&(_ZTV7ee67200[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee67200[];
+extern VTBL_ENTRY _ZTV7ee67200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67200[];
+static VTBL_ENTRY alt_thunk_names64[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn12_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672003fooEv,_ZTv0_n12_N7ee672003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672003fooEv,_ZThn12_N7ee672003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67200 = { "ee67200", // class name
+ bases_ee67200, 4,
+ &(vtc_ee67200[0]), // expected_vtbl_contents
+ &(vtt_ee67200[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67200),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67200),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67200),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names64,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77200 : virtual dd7200 {
+ int e;
+ virtual void foo(); // _ZN7ee772003fooEv
+ virtual void bar(); // _ZN7ee772003barEv
+ ~ee77200(); // tgen
+ ee77200(); // tgen
+};
+//SIG(1 ee77200) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77200 ::foo(){vfunc_called(this, "_ZN7ee772003fooEv");}
+void ee77200 ::bar(){vfunc_called(this, "_ZN7ee772003barEv");}
+ee77200 ::~ee77200(){ note_dtor("ee77200", this);} // tgen
+ee77200 ::ee77200(){ note_ctor("ee77200", this);} // tgen
+
+static void Test_ee77200()
+{
+ extern Class_Descriptor cd_ee77200;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77200, buf);
+ ee77200 *dp, &lv = *(dp=new (buf) ee77200());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77200)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77200)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc200*), ABISELECT(40,20), "ee77200");
+ check_base_class_offset(lv, (bb00*)(cc200*), ABISELECT(40,20), "ee77200");
+ check_base_class_offset(lv, (cc200*)(dd7200*), ABISELECT(32,16), "ee77200");
+ check_base_class_offset(lv, (dd7200*), ABISELECT(16,8), "ee77200");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77200.e");
+ test_class_info(&lv, &cd_ee77200);
+ dp->~ee77200();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77200(Test_ee77200, "ee77200", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77200C1Ev();
+extern void _ZN7ee77200D1Ev();
+Name_Map name_map_ee77200[] = {
+ NSPAIR(_ZN7ee77200C1Ev),
+ NSPAIR(_ZN7ee77200D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc200;
+extern VTBL_ENTRY _ZTI5cc200[];
+extern VTBL_ENTRY _ZTV5cc200[];
+extern Class_Descriptor cd_dd7200;
+extern VTBL_ENTRY _ZTI6dd7200[];
+extern VTBL_ENTRY _ZTV6dd7200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7200[];
+static Base_Class bases_ee77200[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc200, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7200, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77200[];
+extern void _ZN7ee772003fooEv();
+extern void _ZN7ee772003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772003barEv,_ZTv0_n16_N7ee772003barEv)();
+extern void ABISELECT(_ZThn16_N7ee772003barEv,_ZThn8_N7ee772003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772003fooEv,_ZTv0_n20_N7ee772003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772003fooEv,_ZThn8_N7ee772003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772003fooEv,_ZTv0_n12_N7ee772003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772003fooEv,_ZThn16_N7ee772003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77200[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77200[0]),
+ (VTBL_ENTRY)&_ZN7ee772003fooEv,
+ (VTBL_ENTRY)&_ZN7ee772003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772003barEv,_ZTv0_n16_N7ee772003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772003fooEv,_ZTv0_n20_N7ee772003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772003fooEv,_ZTv0_n12_N7ee772003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77200[];
+extern void _ZN6dd72003barEv();
+extern void _ZN6dd72003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7200__7ee77200[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&_ZN6dd72003barEv,
+ (VTBL_ENTRY)&_ZN6dd72003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc200__6dd7200__7ee77200[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7200[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv),
+};
+static VTT_ENTRY vtt_ee77200[] = {
+ {&(_ZTV7ee77200[4]), 4,17},
+ {&(_ZTV7ee77200[11]), 11,17},
+ {&(_ZTV7ee77200[16]), 16,17},
+ {&(_tg__ZTV6dd7200__7ee77200[3]), 3,5},
+ {&(_tg__ZTV5cc200__6dd7200__7ee77200[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77200[];
+extern VTBL_ENTRY _ZTV7ee77200[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77200[];
+static VTBL_ENTRY alt_thunk_names65[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72003fooEv,_ZTv0_n12_N6dd72003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72003fooEv,_ZThn8_N6dd72003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772003fooEv,_ZTv0_n12_N7ee772003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772003fooEv,_ZThn16_N7ee772003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772003fooEv,_ZTv0_n20_N7ee772003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772003fooEv,_ZThn8_N7ee772003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772003barEv,_ZTv0_n16_N7ee772003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772003barEv,_ZThn8_N7ee772003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77200 = { "ee77200", // class name
+ bases_ee77200, 4,
+ &(vtc_ee77200[0]), // expected_vtbl_contents
+ &(vtt_ee77200[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77200),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77200),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77200),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names65,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc300 : virtual bb00 {
+ int c;
+ virtual void foo(); // _ZN5cc3003fooEv
+ ~cc300(); // tgen
+ cc300(); // tgen
+};
+//SIG(-1 cc300) C1{ VBC2{ BC3{ Fi} Fi} v1 Fi}
+
+
+void cc300 ::foo(){vfunc_called(this, "_ZN5cc3003fooEv");}
+cc300 ::~cc300(){ note_dtor("cc300", this);} // tgen
+cc300 ::cc300(){ note_ctor("cc300", this);} // tgen
+
+static void Test_cc300()
+{
+ extern Class_Descriptor cd_cc300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc300, buf);
+ cc300 *dp, &lv = *(dp=new (buf) cc300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(12,8), "cc300");
+ check_base_class_offset(lv, (bb00*), ABISELECT(12,8), "cc300");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc300.c");
+ test_class_info(&lv, &cd_cc300);
+ dp->~cc300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc300(Test_cc300, "cc300", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc300C1Ev();
+extern void _ZN5cc300D1Ev();
+Name_Map name_map_cc300[] = {
+ NSPAIR(_ZN5cc300C1Ev),
+ NSPAIR(_ZN5cc300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_cc300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc300[];
+static VTT_ENTRY vtt_cc300[] = {
+ {&(_ZTV5cc300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+Class_Descriptor cd_cc300 = { "cc300", // class name
+ bases_cc300, 2,
+ &(vtc_cc300[0]), // expected_vtbl_contents
+ &(vtt_cc300[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc300),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc300),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 dd0300 : cc300 {
+ int d;
+ ~dd0300(); // tgen
+ dd0300(); // tgen
+};
+//SIG(-1 dd0300) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd0300 ::~dd0300(){ note_dtor("dd0300", this);} // tgen
+dd0300 ::dd0300(){ note_ctor("dd0300", this);} // tgen
+
+static void Test_dd0300()
+{
+ extern Class_Descriptor cd_dd0300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0300, buf);
+ dd0300 *dp, &lv = *(dp=new (buf) dd0300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd0300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(16,12), "dd0300");
+ check_base_class_offset(lv, (cc300*), 0, "dd0300");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0300.d");
+ test_class_info(&lv, &cd_dd0300);
+ dp->~dd0300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0300(Test_dd0300, "dd0300", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0300C1Ev();
+extern void _ZN6dd0300D1Ev();
+Name_Map name_map_dd0300[] = {
+ NSPAIR(_ZN6dd0300C1Ev),
+ NSPAIR(_ZN6dd0300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+static Base_Class bases_dd0300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_dd0300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd0300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_dd0300[] = {
+ {&(_ZTV6dd0300[3]), 3,4},
+ {&(_tg__ZTV5cc300__6dd0300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+Class_Descriptor cd_dd0300 = { "dd0300", // class name
+ bases_dd0300, 3,
+ &(vtc_dd0300[0]), // expected_vtbl_contents
+ &(vtt_dd0300[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0300),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0300),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 ee00300 : dd0300 {
+ int e;
+ ~ee00300(); // tgen
+ ee00300(); // tgen
+};
+//SIG(1 ee00300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00300 ::~ee00300(){ note_dtor("ee00300", this);} // tgen
+ee00300 ::ee00300(){ note_ctor("ee00300", this);} // tgen
+
+static void Test_ee00300()
+{
+ extern Class_Descriptor cd_ee00300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00300, buf);
+ ee00300 *dp, &lv = *(dp=new (buf) ee00300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee00300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd0300*), ABISELECT(20,16), "ee00300");
+ check_base_class_offset(lv, (cc300*)(dd0300*), 0, "ee00300");
+ check_base_class_offset(lv, (dd0300*), 0, "ee00300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00300.e");
+ test_class_info(&lv, &cd_ee00300);
+ dp->~ee00300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00300(Test_ee00300, "ee00300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00300C1Ev();
+extern void _ZN7ee00300D1Ev();
+Name_Map name_map_ee00300[] = {
+ NSPAIR(_ZN7ee00300C1Ev),
+ NSPAIR(_ZN7ee00300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd0300;
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+static Base_Class bases_ee00300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee00300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0300__7ee00300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd0300__7ee00300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee00300[] = {
+ {&(_ZTV7ee00300[3]), 3,4},
+ {&(_tg__ZTV6dd0300__7ee00300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd0300__7ee00300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00300[];
+extern VTBL_ENTRY _ZTV7ee00300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00300[];
+Class_Descriptor cd_ee00300 = { "ee00300", // class name
+ bases_ee00300, 4,
+ &(vtc_ee00300[0]), // expected_vtbl_contents
+ &(vtt_ee00300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00300),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00300),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 ee10300 : virtual dd0300 {
+ int e;
+ ~ee10300(); // tgen
+ ee10300(); // tgen
+};
+//SIG(1 ee10300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10300 ::~ee10300(){ note_dtor("ee10300", this);} // tgen
+ee10300 ::ee10300(){ note_ctor("ee10300", this);} // tgen
+
+static void Test_ee10300()
+{
+ extern Class_Descriptor cd_ee10300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10300, buf);
+ ee10300 *dp, &lv = *(dp=new (buf) ee10300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee10300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd0300*), ABISELECT(32,20), "ee10300");
+ check_base_class_offset(lv, (cc300*)(dd0300*), ABISELECT(16,8), "ee10300");
+ check_base_class_offset(lv, (dd0300*), ABISELECT(16,8), "ee10300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10300.e");
+ test_class_info(&lv, &cd_ee10300);
+ dp->~ee10300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10300(Test_ee10300, "ee10300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10300C1Ev();
+extern void _ZN7ee10300D1Ev();
+Name_Map name_map_ee10300[] = {
+ NSPAIR(_ZN7ee10300C1Ev),
+ NSPAIR(_ZN7ee10300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd0300;
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+static Base_Class bases_ee10300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0300, 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 _ZTI7ee10300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee10300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10300[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0300__7ee10300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd0300__7ee10300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee10300[] = {
+ {&(_ZTV7ee10300[4]), 4,9},
+ {&(_ZTV7ee10300[8]), 8,9},
+ {&(_tg__ZTV6dd0300__7ee10300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd0300__7ee10300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10300[];
+extern VTBL_ENTRY _ZTV7ee10300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10300[];
+Class_Descriptor cd_ee10300 = { "ee10300", // class name
+ bases_ee10300, 4,
+ &(vtc_ee10300[0]), // expected_vtbl_contents
+ &(vtt_ee10300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10300),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10300),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 ee20300 : dd0300 {
+ int e;
+ virtual void foo(); // _ZN7ee203003fooEv
+ ~ee20300(); // tgen
+ ee20300(); // tgen
+};
+//SIG(1 ee20300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20300 ::foo(){vfunc_called(this, "_ZN7ee203003fooEv");}
+ee20300 ::~ee20300(){ note_dtor("ee20300", this);} // tgen
+ee20300 ::ee20300(){ note_ctor("ee20300", this);} // tgen
+
+static void Test_ee20300()
+{
+ extern Class_Descriptor cd_ee20300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20300, buf);
+ ee20300 *dp, &lv = *(dp=new (buf) ee20300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee20300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd0300*), ABISELECT(20,16), "ee20300");
+ check_base_class_offset(lv, (cc300*)(dd0300*), 0, "ee20300");
+ check_base_class_offset(lv, (dd0300*), 0, "ee20300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20300.e");
+ test_class_info(&lv, &cd_ee20300);
+ dp->~ee20300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20300(Test_ee20300, "ee20300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20300C1Ev();
+extern void _ZN7ee20300D1Ev();
+Name_Map name_map_ee20300[] = {
+ NSPAIR(_ZN7ee20300C1Ev),
+ NSPAIR(_ZN7ee20300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd0300;
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+static Base_Class bases_ee20300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20300[];
+extern void _ZN7ee203003fooEv();
+static VTBL_ENTRY vtc_ee20300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20300[0]),
+ (VTBL_ENTRY)&_ZN7ee203003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0300__7ee20300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd0300__7ee20300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee20300[] = {
+ {&(_ZTV7ee20300[3]), 3,4},
+ {&(_tg__ZTV6dd0300__7ee20300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd0300__7ee20300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20300[];
+extern VTBL_ENTRY _ZTV7ee20300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20300[];
+Class_Descriptor cd_ee20300 = { "ee20300", // class name
+ bases_ee20300, 4,
+ &(vtc_ee20300[0]), // expected_vtbl_contents
+ &(vtt_ee20300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20300),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20300),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 ee30300 : virtual dd0300 {
+ int e;
+ virtual void foo(); // _ZN7ee303003fooEv
+ ~ee30300(); // tgen
+ ee30300(); // tgen
+};
+//SIG(1 ee30300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30300 ::foo(){vfunc_called(this, "_ZN7ee303003fooEv");}
+ee30300 ::~ee30300(){ note_dtor("ee30300", this);} // tgen
+ee30300 ::ee30300(){ note_ctor("ee30300", this);} // tgen
+
+static void Test_ee30300()
+{
+ extern Class_Descriptor cd_ee30300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30300, buf);
+ ee30300 *dp, &lv = *(dp=new (buf) ee30300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee30300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd0300*), ABISELECT(32,20), "ee30300");
+ check_base_class_offset(lv, (cc300*)(dd0300*), ABISELECT(16,8), "ee30300");
+ check_base_class_offset(lv, (dd0300*), ABISELECT(16,8), "ee30300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30300.e");
+ test_class_info(&lv, &cd_ee30300);
+ dp->~ee30300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30300(Test_ee30300, "ee30300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30300C1Ev();
+extern void _ZN7ee30300D1Ev();
+Name_Map name_map_ee30300[] = {
+ NSPAIR(_ZN7ee30300C1Ev),
+ NSPAIR(_ZN7ee30300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd0300;
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+static Base_Class bases_ee30300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0300, 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 _ZTI7ee30300[];
+extern void _ZN7ee303003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303003fooEv,_ZTv0_n16_N7ee303003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303003fooEv,_ZThn8_N7ee303003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30300[0]),
+ (VTBL_ENTRY)&_ZN7ee303003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303003fooEv,_ZTv0_n16_N7ee303003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0300__7ee30300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd0300__7ee30300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee30300[] = {
+ {&(_ZTV7ee30300[4]), 4,10},
+ {&(_ZTV7ee30300[9]), 9,10},
+ {&(_tg__ZTV6dd0300__7ee30300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd0300__7ee30300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30300[];
+extern VTBL_ENTRY _ZTV7ee30300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30300[];
+static VTBL_ENTRY alt_thunk_names66[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303003fooEv,_ZTv0_n16_N7ee303003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303003fooEv,_ZThn8_N7ee303003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30300 = { "ee30300", // class name
+ bases_ee30300, 4,
+ &(vtc_ee30300[0]), // expected_vtbl_contents
+ &(vtt_ee30300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names66,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40300 : dd0300 {
+ int e;
+ virtual void bar(); // _ZN7ee403003barEv
+ ~ee40300(); // tgen
+ ee40300(); // tgen
+};
+//SIG(1 ee40300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40300 ::bar(){vfunc_called(this, "_ZN7ee403003barEv");}
+ee40300 ::~ee40300(){ note_dtor("ee40300", this);} // tgen
+ee40300 ::ee40300(){ note_ctor("ee40300", this);} // tgen
+
+static void Test_ee40300()
+{
+ extern Class_Descriptor cd_ee40300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40300, buf);
+ ee40300 *dp, &lv = *(dp=new (buf) ee40300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee40300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd0300*), ABISELECT(20,16), "ee40300");
+ check_base_class_offset(lv, (cc300*)(dd0300*), 0, "ee40300");
+ check_base_class_offset(lv, (dd0300*), 0, "ee40300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40300.e");
+ test_class_info(&lv, &cd_ee40300);
+ dp->~ee40300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40300(Test_ee40300, "ee40300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40300C1Ev();
+extern void _ZN7ee40300D1Ev();
+Name_Map name_map_ee40300[] = {
+ NSPAIR(_ZN7ee40300C1Ev),
+ NSPAIR(_ZN7ee40300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd0300;
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+static Base_Class bases_ee40300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN7ee403003barEv();
+static VTBL_ENTRY vtc_ee40300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN7ee403003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0300__7ee40300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd0300__7ee40300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee40300[] = {
+ {&(_ZTV7ee40300[3]), 3,5},
+ {&(_tg__ZTV6dd0300__7ee40300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd0300__7ee40300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40300[];
+extern VTBL_ENTRY _ZTV7ee40300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40300[];
+Class_Descriptor cd_ee40300 = { "ee40300", // class name
+ bases_ee40300, 4,
+ &(vtc_ee40300[0]), // expected_vtbl_contents
+ &(vtt_ee40300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40300),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 ee50300 : virtual dd0300 {
+ int e;
+ virtual void bar(); // _ZN7ee503003barEv
+ ~ee50300(); // tgen
+ ee50300(); // tgen
+};
+//SIG(1 ee50300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50300 ::bar(){vfunc_called(this, "_ZN7ee503003barEv");}
+ee50300 ::~ee50300(){ note_dtor("ee50300", this);} // tgen
+ee50300 ::ee50300(){ note_ctor("ee50300", this);} // tgen
+
+static void Test_ee50300()
+{
+ extern Class_Descriptor cd_ee50300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50300, buf);
+ ee50300 *dp, &lv = *(dp=new (buf) ee50300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee50300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd0300*), ABISELECT(32,20), "ee50300");
+ check_base_class_offset(lv, (cc300*)(dd0300*), ABISELECT(16,8), "ee50300");
+ check_base_class_offset(lv, (dd0300*), ABISELECT(16,8), "ee50300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50300.e");
+ test_class_info(&lv, &cd_ee50300);
+ dp->~ee50300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50300(Test_ee50300, "ee50300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50300C1Ev();
+extern void _ZN7ee50300D1Ev();
+Name_Map name_map_ee50300[] = {
+ NSPAIR(_ZN7ee50300C1Ev),
+ NSPAIR(_ZN7ee50300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd0300;
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+static Base_Class bases_ee50300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0300, 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 _ZTI7ee50300[];
+extern void _ZN7ee503003barEv();
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee50300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50300[0]),
+ (VTBL_ENTRY)&_ZN7ee503003barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0300__7ee50300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd0300__7ee50300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee50300[] = {
+ {&(_ZTV7ee50300[4]), 4,10},
+ {&(_ZTV7ee50300[9]), 9,10},
+ {&(_tg__ZTV6dd0300__7ee50300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd0300__7ee50300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50300[];
+extern VTBL_ENTRY _ZTV7ee50300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50300[];
+Class_Descriptor cd_ee50300 = { "ee50300", // class name
+ bases_ee50300, 4,
+ &(vtc_ee50300[0]), // expected_vtbl_contents
+ &(vtt_ee50300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50300),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 ee60300 : dd0300 {
+ int e;
+ virtual void foo(); // _ZN7ee603003fooEv
+ virtual void bar(); // _ZN7ee603003barEv
+ ~ee60300(); // tgen
+ ee60300(); // tgen
+};
+//SIG(1 ee60300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60300 ::foo(){vfunc_called(this, "_ZN7ee603003fooEv");}
+void ee60300 ::bar(){vfunc_called(this, "_ZN7ee603003barEv");}
+ee60300 ::~ee60300(){ note_dtor("ee60300", this);} // tgen
+ee60300 ::ee60300(){ note_ctor("ee60300", this);} // tgen
+
+static void Test_ee60300()
+{
+ extern Class_Descriptor cd_ee60300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60300, buf);
+ ee60300 *dp, &lv = *(dp=new (buf) ee60300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee60300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd0300*), ABISELECT(20,16), "ee60300");
+ check_base_class_offset(lv, (cc300*)(dd0300*), 0, "ee60300");
+ check_base_class_offset(lv, (dd0300*), 0, "ee60300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60300.e");
+ test_class_info(&lv, &cd_ee60300);
+ dp->~ee60300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60300(Test_ee60300, "ee60300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60300C1Ev();
+extern void _ZN7ee60300D1Ev();
+Name_Map name_map_ee60300[] = {
+ NSPAIR(_ZN7ee60300C1Ev),
+ NSPAIR(_ZN7ee60300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd0300;
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+static Base_Class bases_ee60300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60300[];
+extern void _ZN7ee603003fooEv();
+extern void _ZN7ee603003barEv();
+static VTBL_ENTRY vtc_ee60300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60300[0]),
+ (VTBL_ENTRY)&_ZN7ee603003fooEv,
+ (VTBL_ENTRY)&_ZN7ee603003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee60300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0300__7ee60300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd0300__7ee60300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee60300[] = {
+ {&(_ZTV7ee60300[3]), 3,5},
+ {&(_tg__ZTV6dd0300__7ee60300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd0300__7ee60300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60300[];
+extern VTBL_ENTRY _ZTV7ee60300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60300[];
+Class_Descriptor cd_ee60300 = { "ee60300", // class name
+ bases_ee60300, 4,
+ &(vtc_ee60300[0]), // expected_vtbl_contents
+ &(vtt_ee60300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60300),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 ee70300 : virtual dd0300 {
+ int e;
+ virtual void foo(); // _ZN7ee703003fooEv
+ virtual void bar(); // _ZN7ee703003barEv
+ ~ee70300(); // tgen
+ ee70300(); // tgen
+};
+//SIG(1 ee70300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70300 ::foo(){vfunc_called(this, "_ZN7ee703003fooEv");}
+void ee70300 ::bar(){vfunc_called(this, "_ZN7ee703003barEv");}
+ee70300 ::~ee70300(){ note_dtor("ee70300", this);} // tgen
+ee70300 ::ee70300(){ note_ctor("ee70300", this);} // tgen
+
+static void Test_ee70300()
+{
+ extern Class_Descriptor cd_ee70300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70300, buf);
+ ee70300 *dp, &lv = *(dp=new (buf) ee70300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee70300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd0300*), ABISELECT(32,20), "ee70300");
+ check_base_class_offset(lv, (cc300*)(dd0300*), ABISELECT(16,8), "ee70300");
+ check_base_class_offset(lv, (dd0300*), ABISELECT(16,8), "ee70300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70300.e");
+ test_class_info(&lv, &cd_ee70300);
+ dp->~ee70300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70300(Test_ee70300, "ee70300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70300C1Ev();
+extern void _ZN7ee70300D1Ev();
+Name_Map name_map_ee70300[] = {
+ NSPAIR(_ZN7ee70300C1Ev),
+ NSPAIR(_ZN7ee70300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd0300;
+extern VTBL_ENTRY _ZTI6dd0300[];
+extern VTBL_ENTRY _ZTV6dd0300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0300[];
+static Base_Class bases_ee70300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0300, 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 _ZTI7ee70300[];
+extern void _ZN7ee703003fooEv();
+extern void _ZN7ee703003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703003fooEv,_ZTv0_n16_N7ee703003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703003fooEv,_ZThn8_N7ee703003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70300[0]),
+ (VTBL_ENTRY)&_ZN7ee703003fooEv,
+ (VTBL_ENTRY)&_ZN7ee703003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703003fooEv,_ZTv0_n16_N7ee703003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0300__7ee70300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd0300__7ee70300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee70300[] = {
+ {&(_ZTV7ee70300[4]), 4,11},
+ {&(_ZTV7ee70300[10]), 10,11},
+ {&(_tg__ZTV6dd0300__7ee70300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd0300__7ee70300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70300[];
+extern VTBL_ENTRY _ZTV7ee70300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70300[];
+static VTBL_ENTRY alt_thunk_names67[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703003fooEv,_ZTv0_n16_N7ee703003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703003fooEv,_ZThn8_N7ee703003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70300 = { "ee70300", // class name
+ bases_ee70300, 4,
+ &(vtc_ee70300[0]), // expected_vtbl_contents
+ &(vtt_ee70300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names67,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1300 : virtual cc300 {
+ int d;
+ ~dd1300(); // tgen
+ dd1300(); // tgen
+};
+//SIG(-1 dd1300) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd1300 ::~dd1300(){ note_dtor("dd1300", this);} // tgen
+dd1300 ::dd1300(){ note_ctor("dd1300", this);} // tgen
+
+static void Test_dd1300()
+{
+ extern Class_Descriptor cd_dd1300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1300, buf);
+ dd1300 *dp, &lv = *(dp=new (buf) dd1300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd1300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,16), "dd1300");
+ check_base_class_offset(lv, (cc300*), ABISELECT(16,8), "dd1300");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1300.d");
+ test_class_info(&lv, &cd_dd1300);
+ dp->~dd1300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1300(Test_dd1300, "dd1300", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1300C1Ev();
+extern void _ZN6dd1300D1Ev();
+Name_Map name_map_dd1300[] = {
+ NSPAIR(_ZN6dd1300C1Ev),
+ NSPAIR(_ZN6dd1300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+static Base_Class bases_dd1300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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 _ZTI6dd1300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_dd1300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_dd1300[] = {
+ {&(_ZTV6dd1300[4]), 4,9},
+ {&(_ZTV6dd1300[8]), 8,9},
+ {&(_tg__ZTV5cc300__6dd1300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+Class_Descriptor cd_dd1300 = { "dd1300", // class name
+ bases_dd1300, 3,
+ &(vtc_dd1300[0]), // expected_vtbl_contents
+ &(vtt_dd1300[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1300),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1300),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 ee01300 : dd1300 {
+ int e;
+ ~ee01300(); // tgen
+ ee01300(); // tgen
+};
+//SIG(1 ee01300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01300 ::~ee01300(){ note_dtor("ee01300", this);} // tgen
+ee01300 ::ee01300(){ note_ctor("ee01300", this);} // tgen
+
+static void Test_ee01300()
+{
+ extern Class_Descriptor cd_ee01300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01300, buf);
+ ee01300 *dp, &lv = *(dp=new (buf) ee01300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee01300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee01300");
+ check_base_class_offset(lv, (cc300*)(dd1300*), ABISELECT(16,12), "ee01300");
+ check_base_class_offset(lv, (dd1300*), 0, "ee01300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01300.e");
+ test_class_info(&lv, &cd_ee01300);
+ dp->~ee01300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01300(Test_ee01300, "ee01300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01300C1Ev();
+extern void _ZN7ee01300D1Ev();
+Name_Map name_map_ee01300[] = {
+ NSPAIR(_ZN7ee01300C1Ev),
+ NSPAIR(_ZN7ee01300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd1300;
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+static Base_Class bases_ee01300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee01300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01300[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01300[];
+static VTBL_ENTRY _tg__ZTV6dd1300__7ee01300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300__7ee01300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee01300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee01300[] = {
+ {&(_ZTV7ee01300[4]), 4,9},
+ {&(_tg__ZTV6dd1300__7ee01300[4]), 4,4},
+ {&(_tg__ZTV5cc300__6dd1300__7ee01300[4]), 4,5},
+ {&(_ZTV7ee01300[8]), 8,9},
+ {&(_tg__ZTV5cc300__7ee01300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01300[];
+extern VTBL_ENTRY _ZTV7ee01300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01300[];
+Class_Descriptor cd_ee01300 = { "ee01300", // class name
+ bases_ee01300, 4,
+ &(vtc_ee01300[0]), // expected_vtbl_contents
+ &(vtt_ee01300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01300),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01300),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 ee11300 : virtual dd1300 {
+ int e;
+ ~ee11300(); // tgen
+ ee11300(); // tgen
+};
+//SIG(1 ee11300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11300 ::~ee11300(){ note_dtor("ee11300", this);} // tgen
+ee11300 ::ee11300(){ note_ctor("ee11300", this);} // tgen
+
+static void Test_ee11300()
+{
+ extern Class_Descriptor cd_ee11300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11300, buf);
+ ee11300 *dp, &lv = *(dp=new (buf) ee11300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee11300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee11300");
+ check_base_class_offset(lv, (cc300*)(dd1300*), ABISELECT(32,16), "ee11300");
+ check_base_class_offset(lv, (dd1300*), ABISELECT(16,8), "ee11300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11300.e");
+ test_class_info(&lv, &cd_ee11300);
+ dp->~ee11300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11300(Test_ee11300, "ee11300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11300C1Ev();
+extern void _ZN7ee11300D1Ev();
+Name_Map name_map_ee11300[] = {
+ NSPAIR(_ZN7ee11300C1Ev),
+ NSPAIR(_ZN7ee11300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd1300;
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+static Base_Class bases_ee11300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1300, 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 _ZTI7ee11300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee11300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11300[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11300[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11300[];
+static VTBL_ENTRY _tg__ZTV6dd1300__7ee11300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300__7ee11300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee11300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee11300[] = {
+ {&(_ZTV7ee11300[5]), 5,14},
+ {&(_ZTV7ee11300[9]), 9,14},
+ {&(_ZTV7ee11300[13]), 13,14},
+ {&(_tg__ZTV6dd1300__7ee11300[4]), 4,4},
+ {&(_tg__ZTV5cc300__6dd1300__7ee11300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee11300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11300[];
+extern VTBL_ENTRY _ZTV7ee11300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11300[];
+Class_Descriptor cd_ee11300 = { "ee11300", // class name
+ bases_ee11300, 4,
+ &(vtc_ee11300[0]), // expected_vtbl_contents
+ &(vtt_ee11300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11300),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11300),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 ee21300 : dd1300 {
+ int e;
+ virtual void foo(); // _ZN7ee213003fooEv
+ ~ee21300(); // tgen
+ ee21300(); // tgen
+};
+//SIG(1 ee21300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21300 ::foo(){vfunc_called(this, "_ZN7ee213003fooEv");}
+ee21300 ::~ee21300(){ note_dtor("ee21300", this);} // tgen
+ee21300 ::ee21300(){ note_ctor("ee21300", this);} // tgen
+
+static void Test_ee21300()
+{
+ extern Class_Descriptor cd_ee21300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21300, buf);
+ ee21300 *dp, &lv = *(dp=new (buf) ee21300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee21300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee21300");
+ check_base_class_offset(lv, (cc300*)(dd1300*), ABISELECT(16,12), "ee21300");
+ check_base_class_offset(lv, (dd1300*), 0, "ee21300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21300.e");
+ test_class_info(&lv, &cd_ee21300);
+ dp->~ee21300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21300(Test_ee21300, "ee21300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21300C1Ev();
+extern void _ZN7ee21300D1Ev();
+Name_Map name_map_ee21300[] = {
+ NSPAIR(_ZN7ee21300C1Ev),
+ NSPAIR(_ZN7ee21300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd1300;
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+static Base_Class bases_ee21300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21300[];
+extern void _ZN7ee213003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213003fooEv,_ZTv0_n16_N7ee213003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213003fooEv,_ZThn12_N7ee213003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21300[0]),
+ (VTBL_ENTRY)&_ZN7ee213003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213003fooEv,_ZTv0_n16_N7ee213003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21300[];
+static VTBL_ENTRY _tg__ZTV6dd1300__7ee21300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300__7ee21300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee21300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee21300[] = {
+ {&(_ZTV7ee21300[4]), 4,10},
+ {&(_tg__ZTV6dd1300__7ee21300[4]), 4,4},
+ {&(_tg__ZTV5cc300__6dd1300__7ee21300[4]), 4,5},
+ {&(_ZTV7ee21300[9]), 9,10},
+ {&(_tg__ZTV5cc300__7ee21300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21300[];
+extern VTBL_ENTRY _ZTV7ee21300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21300[];
+static VTBL_ENTRY alt_thunk_names68[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213003fooEv,_ZTv0_n16_N7ee213003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213003fooEv,_ZThn12_N7ee213003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21300 = { "ee21300", // class name
+ bases_ee21300, 4,
+ &(vtc_ee21300[0]), // expected_vtbl_contents
+ &(vtt_ee21300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names68,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31300 : virtual dd1300 {
+ int e;
+ virtual void foo(); // _ZN7ee313003fooEv
+ ~ee31300(); // tgen
+ ee31300(); // tgen
+};
+//SIG(1 ee31300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31300 ::foo(){vfunc_called(this, "_ZN7ee313003fooEv");}
+ee31300 ::~ee31300(){ note_dtor("ee31300", this);} // tgen
+ee31300 ::ee31300(){ note_ctor("ee31300", this);} // tgen
+
+static void Test_ee31300()
+{
+ extern Class_Descriptor cd_ee31300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31300, buf);
+ ee31300 *dp, &lv = *(dp=new (buf) ee31300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee31300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee31300");
+ check_base_class_offset(lv, (cc300*)(dd1300*), ABISELECT(32,16), "ee31300");
+ check_base_class_offset(lv, (dd1300*), ABISELECT(16,8), "ee31300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31300.e");
+ test_class_info(&lv, &cd_ee31300);
+ dp->~ee31300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31300(Test_ee31300, "ee31300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31300C1Ev();
+extern void _ZN7ee31300D1Ev();
+Name_Map name_map_ee31300[] = {
+ NSPAIR(_ZN7ee31300C1Ev),
+ NSPAIR(_ZN7ee31300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd1300;
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+static Base_Class bases_ee31300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1300, 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 _ZTI7ee31300[];
+extern void _ZN7ee313003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313003fooEv,_ZTv0_n16_N7ee313003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313003fooEv,_ZThn16_N7ee313003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31300[0]),
+ (VTBL_ENTRY)&_ZN7ee313003fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31300[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313003fooEv,_ZTv0_n16_N7ee313003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31300[];
+static VTBL_ENTRY _tg__ZTV6dd1300__7ee31300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300__7ee31300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee31300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee31300[] = {
+ {&(_ZTV7ee31300[5]), 5,15},
+ {&(_ZTV7ee31300[10]), 10,15},
+ {&(_ZTV7ee31300[14]), 14,15},
+ {&(_tg__ZTV6dd1300__7ee31300[4]), 4,4},
+ {&(_tg__ZTV5cc300__6dd1300__7ee31300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee31300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31300[];
+extern VTBL_ENTRY _ZTV7ee31300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31300[];
+static VTBL_ENTRY alt_thunk_names69[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313003fooEv,_ZTv0_n16_N7ee313003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313003fooEv,_ZThn16_N7ee313003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31300 = { "ee31300", // class name
+ bases_ee31300, 4,
+ &(vtc_ee31300[0]), // expected_vtbl_contents
+ &(vtt_ee31300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31300),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names69,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41300 : dd1300 {
+ int e;
+ virtual void bar(); // _ZN7ee413003barEv
+ ~ee41300(); // tgen
+ ee41300(); // tgen
+};
+//SIG(1 ee41300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41300 ::bar(){vfunc_called(this, "_ZN7ee413003barEv");}
+ee41300 ::~ee41300(){ note_dtor("ee41300", this);} // tgen
+ee41300 ::ee41300(){ note_ctor("ee41300", this);} // tgen
+
+static void Test_ee41300()
+{
+ extern Class_Descriptor cd_ee41300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41300, buf);
+ ee41300 *dp, &lv = *(dp=new (buf) ee41300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee41300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee41300");
+ check_base_class_offset(lv, (cc300*)(dd1300*), ABISELECT(16,12), "ee41300");
+ check_base_class_offset(lv, (dd1300*), 0, "ee41300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41300.e");
+ test_class_info(&lv, &cd_ee41300);
+ dp->~ee41300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41300(Test_ee41300, "ee41300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41300C1Ev();
+extern void _ZN7ee41300D1Ev();
+Name_Map name_map_ee41300[] = {
+ NSPAIR(_ZN7ee41300C1Ev),
+ NSPAIR(_ZN7ee41300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd1300;
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+static Base_Class bases_ee41300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41300[];
+extern void _ZN7ee413003barEv();
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee41300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41300[0]),
+ (VTBL_ENTRY)&_ZN7ee413003barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41300[];
+static VTBL_ENTRY _tg__ZTV6dd1300__7ee41300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300__7ee41300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee41300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee41300[] = {
+ {&(_ZTV7ee41300[4]), 4,10},
+ {&(_tg__ZTV6dd1300__7ee41300[4]), 4,4},
+ {&(_tg__ZTV5cc300__6dd1300__7ee41300[4]), 4,5},
+ {&(_ZTV7ee41300[9]), 9,10},
+ {&(_tg__ZTV5cc300__7ee41300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41300[];
+extern VTBL_ENTRY _ZTV7ee41300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41300[];
+Class_Descriptor cd_ee41300 = { "ee41300", // class name
+ bases_ee41300, 4,
+ &(vtc_ee41300[0]), // expected_vtbl_contents
+ &(vtt_ee41300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41300),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 ee51300 : virtual dd1300 {
+ int e;
+ virtual void bar(); // _ZN7ee513003barEv
+ ~ee51300(); // tgen
+ ee51300(); // tgen
+};
+//SIG(1 ee51300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51300 ::bar(){vfunc_called(this, "_ZN7ee513003barEv");}
+ee51300 ::~ee51300(){ note_dtor("ee51300", this);} // tgen
+ee51300 ::ee51300(){ note_ctor("ee51300", this);} // tgen
+
+static void Test_ee51300()
+{
+ extern Class_Descriptor cd_ee51300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51300, buf);
+ ee51300 *dp, &lv = *(dp=new (buf) ee51300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee51300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee51300");
+ check_base_class_offset(lv, (cc300*)(dd1300*), ABISELECT(32,16), "ee51300");
+ check_base_class_offset(lv, (dd1300*), ABISELECT(16,8), "ee51300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51300.e");
+ test_class_info(&lv, &cd_ee51300);
+ dp->~ee51300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51300(Test_ee51300, "ee51300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51300C1Ev();
+extern void _ZN7ee51300D1Ev();
+Name_Map name_map_ee51300[] = {
+ NSPAIR(_ZN7ee51300C1Ev),
+ NSPAIR(_ZN7ee51300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd1300;
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+static Base_Class bases_ee51300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1300, 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 _ZTI7ee51300[];
+extern void _ZN7ee513003barEv();
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee51300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51300[0]),
+ (VTBL_ENTRY)&_ZN7ee513003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51300[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51300[];
+static VTBL_ENTRY _tg__ZTV6dd1300__7ee51300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300__7ee51300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee51300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee51300[] = {
+ {&(_ZTV7ee51300[5]), 5,15},
+ {&(_ZTV7ee51300[10]), 10,15},
+ {&(_ZTV7ee51300[14]), 14,15},
+ {&(_tg__ZTV6dd1300__7ee51300[4]), 4,4},
+ {&(_tg__ZTV5cc300__6dd1300__7ee51300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee51300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51300[];
+extern VTBL_ENTRY _ZTV7ee51300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51300[];
+Class_Descriptor cd_ee51300 = { "ee51300", // class name
+ bases_ee51300, 4,
+ &(vtc_ee51300[0]), // expected_vtbl_contents
+ &(vtt_ee51300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51300),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51300),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 ee61300 : dd1300 {
+ int e;
+ virtual void foo(); // _ZN7ee613003fooEv
+ virtual void bar(); // _ZN7ee613003barEv
+ ~ee61300(); // tgen
+ ee61300(); // tgen
+};
+//SIG(1 ee61300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61300 ::foo(){vfunc_called(this, "_ZN7ee613003fooEv");}
+void ee61300 ::bar(){vfunc_called(this, "_ZN7ee613003barEv");}
+ee61300 ::~ee61300(){ note_dtor("ee61300", this);} // tgen
+ee61300 ::ee61300(){ note_ctor("ee61300", this);} // tgen
+
+static void Test_ee61300()
+{
+ extern Class_Descriptor cd_ee61300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61300, buf);
+ ee61300 *dp, &lv = *(dp=new (buf) ee61300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee61300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee61300");
+ check_base_class_offset(lv, (cc300*)(dd1300*), ABISELECT(16,12), "ee61300");
+ check_base_class_offset(lv, (dd1300*), 0, "ee61300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61300.e");
+ test_class_info(&lv, &cd_ee61300);
+ dp->~ee61300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61300(Test_ee61300, "ee61300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61300C1Ev();
+extern void _ZN7ee61300D1Ev();
+Name_Map name_map_ee61300[] = {
+ NSPAIR(_ZN7ee61300C1Ev),
+ NSPAIR(_ZN7ee61300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd1300;
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+static Base_Class bases_ee61300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61300[];
+extern void _ZN7ee613003fooEv();
+extern void _ZN7ee613003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613003fooEv,_ZTv0_n16_N7ee613003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613003fooEv,_ZThn12_N7ee613003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61300[0]),
+ (VTBL_ENTRY)&_ZN7ee613003fooEv,
+ (VTBL_ENTRY)&_ZN7ee613003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613003fooEv,_ZTv0_n16_N7ee613003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61300[];
+static VTBL_ENTRY _tg__ZTV6dd1300__7ee61300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300__7ee61300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee61300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee61300[] = {
+ {&(_ZTV7ee61300[4]), 4,11},
+ {&(_tg__ZTV6dd1300__7ee61300[4]), 4,4},
+ {&(_tg__ZTV5cc300__6dd1300__7ee61300[4]), 4,5},
+ {&(_ZTV7ee61300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee61300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61300[];
+extern VTBL_ENTRY _ZTV7ee61300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61300[];
+static VTBL_ENTRY alt_thunk_names70[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613003fooEv,_ZTv0_n16_N7ee613003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613003fooEv,_ZThn12_N7ee613003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61300 = { "ee61300", // class name
+ bases_ee61300, 4,
+ &(vtc_ee61300[0]), // expected_vtbl_contents
+ &(vtt_ee61300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names70,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71300 : virtual dd1300 {
+ int e;
+ virtual void foo(); // _ZN7ee713003fooEv
+ virtual void bar(); // _ZN7ee713003barEv
+ ~ee71300(); // tgen
+ ee71300(); // tgen
+};
+//SIG(1 ee71300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71300 ::foo(){vfunc_called(this, "_ZN7ee713003fooEv");}
+void ee71300 ::bar(){vfunc_called(this, "_ZN7ee713003barEv");}
+ee71300 ::~ee71300(){ note_dtor("ee71300", this);} // tgen
+ee71300 ::ee71300(){ note_ctor("ee71300", this);} // tgen
+
+static void Test_ee71300()
+{
+ extern Class_Descriptor cd_ee71300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71300, buf);
+ ee71300 *dp, &lv = *(dp=new (buf) ee71300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee71300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee71300");
+ check_base_class_offset(lv, (cc300*)(dd1300*), ABISELECT(32,16), "ee71300");
+ check_base_class_offset(lv, (dd1300*), ABISELECT(16,8), "ee71300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71300.e");
+ test_class_info(&lv, &cd_ee71300);
+ dp->~ee71300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71300(Test_ee71300, "ee71300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71300C1Ev();
+extern void _ZN7ee71300D1Ev();
+Name_Map name_map_ee71300[] = {
+ NSPAIR(_ZN7ee71300C1Ev),
+ NSPAIR(_ZN7ee71300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd1300;
+extern VTBL_ENTRY _ZTI6dd1300[];
+extern VTBL_ENTRY _ZTV6dd1300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1300[];
+static Base_Class bases_ee71300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1300, 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 _ZTI7ee71300[];
+extern void _ZN7ee713003fooEv();
+extern void _ZN7ee713003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713003fooEv,_ZTv0_n16_N7ee713003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713003fooEv,_ZThn16_N7ee713003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71300[0]),
+ (VTBL_ENTRY)&_ZN7ee713003fooEv,
+ (VTBL_ENTRY)&_ZN7ee713003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71300[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713003fooEv,_ZTv0_n16_N7ee713003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71300[];
+static VTBL_ENTRY _tg__ZTV6dd1300__7ee71300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd1300__7ee71300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee71300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee71300[] = {
+ {&(_ZTV7ee71300[5]), 5,16},
+ {&(_ZTV7ee71300[11]), 11,16},
+ {&(_ZTV7ee71300[15]), 15,16},
+ {&(_tg__ZTV6dd1300__7ee71300[4]), 4,4},
+ {&(_tg__ZTV5cc300__6dd1300__7ee71300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee71300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71300[];
+extern VTBL_ENTRY _ZTV7ee71300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71300[];
+static VTBL_ENTRY alt_thunk_names71[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713003fooEv,_ZTv0_n16_N7ee713003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713003fooEv,_ZThn16_N7ee713003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71300 = { "ee71300", // class name
+ bases_ee71300, 4,
+ &(vtc_ee71300[0]), // expected_vtbl_contents
+ &(vtt_ee71300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71300),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names71,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2300 : cc300 {
+ int d;
+ virtual void foo(); // _ZN6dd23003fooEv
+ ~dd2300(); // tgen
+ dd2300(); // tgen
+};
+//SIG(-1 dd2300) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd2300 ::foo(){vfunc_called(this, "_ZN6dd23003fooEv");}
+dd2300 ::~dd2300(){ note_dtor("dd2300", this);} // tgen
+dd2300 ::dd2300(){ note_ctor("dd2300", this);} // tgen
+
+static void Test_dd2300()
+{
+ extern Class_Descriptor cd_dd2300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2300, buf);
+ dd2300 *dp, &lv = *(dp=new (buf) dd2300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd2300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(16,12), "dd2300");
+ check_base_class_offset(lv, (cc300*), 0, "dd2300");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2300.d");
+ test_class_info(&lv, &cd_dd2300);
+ dp->~dd2300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2300(Test_dd2300, "dd2300", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2300C1Ev();
+extern void _ZN6dd2300D1Ev();
+Name_Map name_map_dd2300[] = {
+ NSPAIR(_ZN6dd2300C1Ev),
+ NSPAIR(_ZN6dd2300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+static Base_Class bases_dd2300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY vtc_dd2300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd2300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_dd2300[] = {
+ {&(_ZTV6dd2300[3]), 3,4},
+ {&(_tg__ZTV5cc300__6dd2300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+Class_Descriptor cd_dd2300 = { "dd2300", // class name
+ bases_dd2300, 3,
+ &(vtc_dd2300[0]), // expected_vtbl_contents
+ &(vtt_dd2300[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2300),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2300),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 ee02300 : dd2300 {
+ int e;
+ ~ee02300(); // tgen
+ ee02300(); // tgen
+};
+//SIG(1 ee02300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02300 ::~ee02300(){ note_dtor("ee02300", this);} // tgen
+ee02300 ::ee02300(){ note_ctor("ee02300", this);} // tgen
+
+static void Test_ee02300()
+{
+ extern Class_Descriptor cd_ee02300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02300, buf);
+ ee02300 *dp, &lv = *(dp=new (buf) ee02300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee02300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd2300*), ABISELECT(20,16), "ee02300");
+ check_base_class_offset(lv, (cc300*)(dd2300*), 0, "ee02300");
+ check_base_class_offset(lv, (dd2300*), 0, "ee02300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02300.e");
+ test_class_info(&lv, &cd_ee02300);
+ dp->~ee02300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02300(Test_ee02300, "ee02300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02300C1Ev();
+extern void _ZN7ee02300D1Ev();
+Name_Map name_map_ee02300[] = {
+ NSPAIR(_ZN7ee02300C1Ev),
+ NSPAIR(_ZN7ee02300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd2300;
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+static Base_Class bases_ee02300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee02300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY vtc_ee02300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2300__7ee02300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd2300__7ee02300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee02300[] = {
+ {&(_ZTV7ee02300[3]), 3,4},
+ {&(_tg__ZTV6dd2300__7ee02300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd2300__7ee02300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02300[];
+extern VTBL_ENTRY _ZTV7ee02300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02300[];
+Class_Descriptor cd_ee02300 = { "ee02300", // class name
+ bases_ee02300, 4,
+ &(vtc_ee02300[0]), // expected_vtbl_contents
+ &(vtt_ee02300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02300),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02300),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 ee12300 : virtual dd2300 {
+ int e;
+ ~ee12300(); // tgen
+ ee12300(); // tgen
+};
+//SIG(1 ee12300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12300 ::~ee12300(){ note_dtor("ee12300", this);} // tgen
+ee12300 ::ee12300(){ note_ctor("ee12300", this);} // tgen
+
+static void Test_ee12300()
+{
+ extern Class_Descriptor cd_ee12300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12300, buf);
+ ee12300 *dp, &lv = *(dp=new (buf) ee12300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee12300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd2300*), ABISELECT(32,20), "ee12300");
+ check_base_class_offset(lv, (cc300*)(dd2300*), ABISELECT(16,8), "ee12300");
+ check_base_class_offset(lv, (dd2300*), ABISELECT(16,8), "ee12300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12300.e");
+ test_class_info(&lv, &cd_ee12300);
+ dp->~ee12300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12300(Test_ee12300, "ee12300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12300C1Ev();
+extern void _ZN7ee12300D1Ev();
+Name_Map name_map_ee12300[] = {
+ NSPAIR(_ZN7ee12300C1Ev),
+ NSPAIR(_ZN7ee12300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd2300;
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+static Base_Class bases_ee12300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2300, 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 _ZTI7ee12300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY vtc_ee12300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12300[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2300__7ee12300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd2300__7ee12300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee12300[] = {
+ {&(_ZTV7ee12300[4]), 4,9},
+ {&(_ZTV7ee12300[8]), 8,9},
+ {&(_tg__ZTV6dd2300__7ee12300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd2300__7ee12300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12300[];
+extern VTBL_ENTRY _ZTV7ee12300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12300[];
+Class_Descriptor cd_ee12300 = { "ee12300", // class name
+ bases_ee12300, 4,
+ &(vtc_ee12300[0]), // expected_vtbl_contents
+ &(vtt_ee12300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12300),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12300),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 ee22300 : dd2300 {
+ int e;
+ virtual void foo(); // _ZN7ee223003fooEv
+ ~ee22300(); // tgen
+ ee22300(); // tgen
+};
+//SIG(1 ee22300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22300 ::foo(){vfunc_called(this, "_ZN7ee223003fooEv");}
+ee22300 ::~ee22300(){ note_dtor("ee22300", this);} // tgen
+ee22300 ::ee22300(){ note_ctor("ee22300", this);} // tgen
+
+static void Test_ee22300()
+{
+ extern Class_Descriptor cd_ee22300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22300, buf);
+ ee22300 *dp, &lv = *(dp=new (buf) ee22300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee22300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd2300*), ABISELECT(20,16), "ee22300");
+ check_base_class_offset(lv, (cc300*)(dd2300*), 0, "ee22300");
+ check_base_class_offset(lv, (dd2300*), 0, "ee22300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22300.e");
+ test_class_info(&lv, &cd_ee22300);
+ dp->~ee22300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22300(Test_ee22300, "ee22300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22300C1Ev();
+extern void _ZN7ee22300D1Ev();
+Name_Map name_map_ee22300[] = {
+ NSPAIR(_ZN7ee22300C1Ev),
+ NSPAIR(_ZN7ee22300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd2300;
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+static Base_Class bases_ee22300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22300[];
+extern void _ZN7ee223003fooEv();
+static VTBL_ENTRY vtc_ee22300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22300[0]),
+ (VTBL_ENTRY)&_ZN7ee223003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2300__7ee22300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd2300__7ee22300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee22300[] = {
+ {&(_ZTV7ee22300[3]), 3,4},
+ {&(_tg__ZTV6dd2300__7ee22300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd2300__7ee22300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22300[];
+extern VTBL_ENTRY _ZTV7ee22300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22300[];
+Class_Descriptor cd_ee22300 = { "ee22300", // class name
+ bases_ee22300, 4,
+ &(vtc_ee22300[0]), // expected_vtbl_contents
+ &(vtt_ee22300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22300),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22300),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 ee32300 : virtual dd2300 {
+ int e;
+ virtual void foo(); // _ZN7ee323003fooEv
+ ~ee32300(); // tgen
+ ee32300(); // tgen
+};
+//SIG(1 ee32300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32300 ::foo(){vfunc_called(this, "_ZN7ee323003fooEv");}
+ee32300 ::~ee32300(){ note_dtor("ee32300", this);} // tgen
+ee32300 ::ee32300(){ note_ctor("ee32300", this);} // tgen
+
+static void Test_ee32300()
+{
+ extern Class_Descriptor cd_ee32300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32300, buf);
+ ee32300 *dp, &lv = *(dp=new (buf) ee32300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee32300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd2300*), ABISELECT(32,20), "ee32300");
+ check_base_class_offset(lv, (cc300*)(dd2300*), ABISELECT(16,8), "ee32300");
+ check_base_class_offset(lv, (dd2300*), ABISELECT(16,8), "ee32300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32300.e");
+ test_class_info(&lv, &cd_ee32300);
+ dp->~ee32300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32300(Test_ee32300, "ee32300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32300C1Ev();
+extern void _ZN7ee32300D1Ev();
+Name_Map name_map_ee32300[] = {
+ NSPAIR(_ZN7ee32300C1Ev),
+ NSPAIR(_ZN7ee32300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd2300;
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+static Base_Class bases_ee32300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2300, 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 _ZTI7ee32300[];
+extern void _ZN7ee323003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323003fooEv,_ZTv0_n16_N7ee323003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323003fooEv,_ZThn8_N7ee323003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32300[0]),
+ (VTBL_ENTRY)&_ZN7ee323003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323003fooEv,_ZTv0_n16_N7ee323003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2300__7ee32300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd2300__7ee32300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee32300[] = {
+ {&(_ZTV7ee32300[4]), 4,10},
+ {&(_ZTV7ee32300[9]), 9,10},
+ {&(_tg__ZTV6dd2300__7ee32300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd2300__7ee32300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32300[];
+extern VTBL_ENTRY _ZTV7ee32300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32300[];
+static VTBL_ENTRY alt_thunk_names72[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323003fooEv,_ZTv0_n16_N7ee323003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323003fooEv,_ZThn8_N7ee323003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32300 = { "ee32300", // class name
+ bases_ee32300, 4,
+ &(vtc_ee32300[0]), // expected_vtbl_contents
+ &(vtt_ee32300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names72,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42300 : dd2300 {
+ int e;
+ virtual void bar(); // _ZN7ee423003barEv
+ ~ee42300(); // tgen
+ ee42300(); // tgen
+};
+//SIG(1 ee42300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42300 ::bar(){vfunc_called(this, "_ZN7ee423003barEv");}
+ee42300 ::~ee42300(){ note_dtor("ee42300", this);} // tgen
+ee42300 ::ee42300(){ note_ctor("ee42300", this);} // tgen
+
+static void Test_ee42300()
+{
+ extern Class_Descriptor cd_ee42300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42300, buf);
+ ee42300 *dp, &lv = *(dp=new (buf) ee42300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee42300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd2300*), ABISELECT(20,16), "ee42300");
+ check_base_class_offset(lv, (cc300*)(dd2300*), 0, "ee42300");
+ check_base_class_offset(lv, (dd2300*), 0, "ee42300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42300.e");
+ test_class_info(&lv, &cd_ee42300);
+ dp->~ee42300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42300(Test_ee42300, "ee42300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42300C1Ev();
+extern void _ZN7ee42300D1Ev();
+Name_Map name_map_ee42300[] = {
+ NSPAIR(_ZN7ee42300C1Ev),
+ NSPAIR(_ZN7ee42300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd2300;
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+static Base_Class bases_ee42300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42300[];
+extern void _ZN6dd23003fooEv();
+extern void _ZN7ee423003barEv();
+static VTBL_ENTRY vtc_ee42300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+ (VTBL_ENTRY)&_ZN7ee423003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee42300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2300__7ee42300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd2300__7ee42300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee42300[] = {
+ {&(_ZTV7ee42300[3]), 3,5},
+ {&(_tg__ZTV6dd2300__7ee42300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd2300__7ee42300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42300[];
+extern VTBL_ENTRY _ZTV7ee42300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42300[];
+Class_Descriptor cd_ee42300 = { "ee42300", // class name
+ bases_ee42300, 4,
+ &(vtc_ee42300[0]), // expected_vtbl_contents
+ &(vtt_ee42300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42300),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 ee52300 : virtual dd2300 {
+ int e;
+ virtual void bar(); // _ZN7ee523003barEv
+ ~ee52300(); // tgen
+ ee52300(); // tgen
+};
+//SIG(1 ee52300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52300 ::bar(){vfunc_called(this, "_ZN7ee523003barEv");}
+ee52300 ::~ee52300(){ note_dtor("ee52300", this);} // tgen
+ee52300 ::ee52300(){ note_ctor("ee52300", this);} // tgen
+
+static void Test_ee52300()
+{
+ extern Class_Descriptor cd_ee52300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52300, buf);
+ ee52300 *dp, &lv = *(dp=new (buf) ee52300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee52300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd2300*), ABISELECT(32,20), "ee52300");
+ check_base_class_offset(lv, (cc300*)(dd2300*), ABISELECT(16,8), "ee52300");
+ check_base_class_offset(lv, (dd2300*), ABISELECT(16,8), "ee52300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52300.e");
+ test_class_info(&lv, &cd_ee52300);
+ dp->~ee52300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52300(Test_ee52300, "ee52300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52300C1Ev();
+extern void _ZN7ee52300D1Ev();
+Name_Map name_map_ee52300[] = {
+ NSPAIR(_ZN7ee52300C1Ev),
+ NSPAIR(_ZN7ee52300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd2300;
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+static Base_Class bases_ee52300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2300, 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 _ZTI7ee52300[];
+extern void _ZN7ee523003barEv();
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY vtc_ee52300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52300[0]),
+ (VTBL_ENTRY)&_ZN7ee523003barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2300__7ee52300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd2300__7ee52300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee52300[] = {
+ {&(_ZTV7ee52300[4]), 4,10},
+ {&(_ZTV7ee52300[9]), 9,10},
+ {&(_tg__ZTV6dd2300__7ee52300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd2300__7ee52300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52300[];
+extern VTBL_ENTRY _ZTV7ee52300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52300[];
+Class_Descriptor cd_ee52300 = { "ee52300", // class name
+ bases_ee52300, 4,
+ &(vtc_ee52300[0]), // expected_vtbl_contents
+ &(vtt_ee52300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52300),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 ee62300 : dd2300 {
+ int e;
+ virtual void foo(); // _ZN7ee623003fooEv
+ virtual void bar(); // _ZN7ee623003barEv
+ ~ee62300(); // tgen
+ ee62300(); // tgen
+};
+//SIG(1 ee62300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62300 ::foo(){vfunc_called(this, "_ZN7ee623003fooEv");}
+void ee62300 ::bar(){vfunc_called(this, "_ZN7ee623003barEv");}
+ee62300 ::~ee62300(){ note_dtor("ee62300", this);} // tgen
+ee62300 ::ee62300(){ note_ctor("ee62300", this);} // tgen
+
+static void Test_ee62300()
+{
+ extern Class_Descriptor cd_ee62300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62300, buf);
+ ee62300 *dp, &lv = *(dp=new (buf) ee62300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee62300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd2300*), ABISELECT(20,16), "ee62300");
+ check_base_class_offset(lv, (cc300*)(dd2300*), 0, "ee62300");
+ check_base_class_offset(lv, (dd2300*), 0, "ee62300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62300.e");
+ test_class_info(&lv, &cd_ee62300);
+ dp->~ee62300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62300(Test_ee62300, "ee62300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62300C1Ev();
+extern void _ZN7ee62300D1Ev();
+Name_Map name_map_ee62300[] = {
+ NSPAIR(_ZN7ee62300C1Ev),
+ NSPAIR(_ZN7ee62300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd2300;
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+static Base_Class bases_ee62300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62300[];
+extern void _ZN7ee623003fooEv();
+extern void _ZN7ee623003barEv();
+static VTBL_ENTRY vtc_ee62300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62300[0]),
+ (VTBL_ENTRY)&_ZN7ee623003fooEv,
+ (VTBL_ENTRY)&_ZN7ee623003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee62300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2300__7ee62300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd2300__7ee62300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee62300[] = {
+ {&(_ZTV7ee62300[3]), 3,5},
+ {&(_tg__ZTV6dd2300__7ee62300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd2300__7ee62300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62300[];
+extern VTBL_ENTRY _ZTV7ee62300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62300[];
+Class_Descriptor cd_ee62300 = { "ee62300", // class name
+ bases_ee62300, 4,
+ &(vtc_ee62300[0]), // expected_vtbl_contents
+ &(vtt_ee62300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62300),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 ee72300 : virtual dd2300 {
+ int e;
+ virtual void foo(); // _ZN7ee723003fooEv
+ virtual void bar(); // _ZN7ee723003barEv
+ ~ee72300(); // tgen
+ ee72300(); // tgen
+};
+//SIG(1 ee72300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72300 ::foo(){vfunc_called(this, "_ZN7ee723003fooEv");}
+void ee72300 ::bar(){vfunc_called(this, "_ZN7ee723003barEv");}
+ee72300 ::~ee72300(){ note_dtor("ee72300", this);} // tgen
+ee72300 ::ee72300(){ note_ctor("ee72300", this);} // tgen
+
+static void Test_ee72300()
+{
+ extern Class_Descriptor cd_ee72300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72300, buf);
+ ee72300 *dp, &lv = *(dp=new (buf) ee72300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee72300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd2300*), ABISELECT(32,20), "ee72300");
+ check_base_class_offset(lv, (cc300*)(dd2300*), ABISELECT(16,8), "ee72300");
+ check_base_class_offset(lv, (dd2300*), ABISELECT(16,8), "ee72300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72300.e");
+ test_class_info(&lv, &cd_ee72300);
+ dp->~ee72300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72300(Test_ee72300, "ee72300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72300C1Ev();
+extern void _ZN7ee72300D1Ev();
+Name_Map name_map_ee72300[] = {
+ NSPAIR(_ZN7ee72300C1Ev),
+ NSPAIR(_ZN7ee72300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd2300;
+extern VTBL_ENTRY _ZTI6dd2300[];
+extern VTBL_ENTRY _ZTV6dd2300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2300[];
+static Base_Class bases_ee72300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2300, 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 _ZTI7ee72300[];
+extern void _ZN7ee723003fooEv();
+extern void _ZN7ee723003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723003fooEv,_ZTv0_n16_N7ee723003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723003fooEv,_ZThn8_N7ee723003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72300[0]),
+ (VTBL_ENTRY)&_ZN7ee723003fooEv,
+ (VTBL_ENTRY)&_ZN7ee723003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723003fooEv,_ZTv0_n16_N7ee723003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72300[];
+extern void _ZN6dd23003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2300__7ee72300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2300[0]),
+ (VTBL_ENTRY)&_ZN6dd23003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd2300__7ee72300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee72300[] = {
+ {&(_ZTV7ee72300[4]), 4,11},
+ {&(_ZTV7ee72300[10]), 10,11},
+ {&(_tg__ZTV6dd2300__7ee72300[3]), 3,4},
+ {&(_tg__ZTV5cc3006dd2300__7ee72300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72300[];
+extern VTBL_ENTRY _ZTV7ee72300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72300[];
+static VTBL_ENTRY alt_thunk_names73[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723003fooEv,_ZTv0_n16_N7ee723003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723003fooEv,_ZThn8_N7ee723003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72300 = { "ee72300", // class name
+ bases_ee72300, 4,
+ &(vtc_ee72300[0]), // expected_vtbl_contents
+ &(vtt_ee72300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names73,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3300 : virtual cc300 {
+ int d;
+ virtual void foo(); // _ZN6dd33003fooEv
+ ~dd3300(); // tgen
+ dd3300(); // tgen
+};
+//SIG(-1 dd3300) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd3300 ::foo(){vfunc_called(this, "_ZN6dd33003fooEv");}
+dd3300 ::~dd3300(){ note_dtor("dd3300", this);} // tgen
+dd3300 ::dd3300(){ note_ctor("dd3300", this);} // tgen
+
+static void Test_dd3300()
+{
+ extern Class_Descriptor cd_dd3300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3300, buf);
+ dd3300 *dp, &lv = *(dp=new (buf) dd3300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd3300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,16), "dd3300");
+ check_base_class_offset(lv, (cc300*), ABISELECT(16,8), "dd3300");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3300.d");
+ test_class_info(&lv, &cd_dd3300);
+ dp->~dd3300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3300(Test_dd3300, "dd3300", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3300C1Ev();
+extern void _ZN6dd3300D1Ev();
+Name_Map name_map_dd3300[] = {
+ NSPAIR(_ZN6dd3300C1Ev),
+ NSPAIR(_ZN6dd3300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+static Base_Class bases_dd3300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern void _ZN6dd33003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_dd3300[] = {
+ {&(_ZTV6dd3300[4]), 4,10},
+ {&(_ZTV6dd3300[9]), 9,10},
+ {&(_tg__ZTV5cc300__6dd3300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static VTBL_ENTRY alt_thunk_names74[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3300 = { "dd3300", // class name
+ bases_dd3300, 3,
+ &(vtc_dd3300[0]), // expected_vtbl_contents
+ &(vtt_dd3300[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3300),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names74,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03300 : dd3300 {
+ int e;
+ ~ee03300(); // tgen
+ ee03300(); // tgen
+};
+//SIG(1 ee03300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03300 ::~ee03300(){ note_dtor("ee03300", this);} // tgen
+ee03300 ::ee03300(){ note_ctor("ee03300", this);} // tgen
+
+static void Test_ee03300()
+{
+ extern Class_Descriptor cd_ee03300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03300, buf);
+ ee03300 *dp, &lv = *(dp=new (buf) ee03300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee03300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee03300");
+ check_base_class_offset(lv, (cc300*)(dd3300*), ABISELECT(16,12), "ee03300");
+ check_base_class_offset(lv, (dd3300*), 0, "ee03300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03300.e");
+ test_class_info(&lv, &cd_ee03300);
+ dp->~ee03300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03300(Test_ee03300, "ee03300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03300C1Ev();
+extern void _ZN7ee03300D1Ev();
+Name_Map name_map_ee03300[] = {
+ NSPAIR(_ZN7ee03300C1Ev),
+ NSPAIR(_ZN7ee03300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd3300;
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static Base_Class bases_ee03300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03300[];
+extern void _ZN6dd33003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03300[];
+extern void _ZN6dd33003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3300__7ee03300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300__7ee03300[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee03300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee03300[] = {
+ {&(_ZTV7ee03300[4]), 4,10},
+ {&(_tg__ZTV6dd3300__7ee03300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd3300__7ee03300[4]), 4,5},
+ {&(_ZTV7ee03300[9]), 9,10},
+ {&(_tg__ZTV5cc300__7ee03300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03300[];
+extern VTBL_ENTRY _ZTV7ee03300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03300[];
+static VTBL_ENTRY alt_thunk_names75[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03300 = { "ee03300", // class name
+ bases_ee03300, 4,
+ &(vtc_ee03300[0]), // expected_vtbl_contents
+ &(vtt_ee03300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names75,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13300 : virtual dd3300 {
+ int e;
+ ~ee13300(); // tgen
+ ee13300(); // tgen
+};
+//SIG(1 ee13300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13300 ::~ee13300(){ note_dtor("ee13300", this);} // tgen
+ee13300 ::ee13300(){ note_ctor("ee13300", this);} // tgen
+
+static void Test_ee13300()
+{
+ extern Class_Descriptor cd_ee13300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13300, buf);
+ ee13300 *dp, &lv = *(dp=new (buf) ee13300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee13300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee13300");
+ check_base_class_offset(lv, (cc300*)(dd3300*), ABISELECT(32,16), "ee13300");
+ check_base_class_offset(lv, (dd3300*), ABISELECT(16,8), "ee13300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13300.e");
+ test_class_info(&lv, &cd_ee13300);
+ dp->~ee13300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13300(Test_ee13300, "ee13300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13300C1Ev();
+extern void _ZN7ee13300D1Ev();
+Name_Map name_map_ee13300[] = {
+ NSPAIR(_ZN7ee13300C1Ev),
+ NSPAIR(_ZN7ee13300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd3300;
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static Base_Class bases_ee13300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13300[];
+extern void _ZN6dd33003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13300[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13300[];
+extern void _ZN6dd33003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3300__7ee13300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300__7ee13300[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee13300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee13300[] = {
+ {&(_ZTV7ee13300[5]), 5,16},
+ {&(_ZTV7ee13300[10]), 10,16},
+ {&(_ZTV7ee13300[15]), 15,16},
+ {&(_tg__ZTV6dd3300__7ee13300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd3300__7ee13300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee13300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13300[];
+extern VTBL_ENTRY _ZTV7ee13300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13300[];
+static VTBL_ENTRY alt_thunk_names76[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13300 = { "ee13300", // class name
+ bases_ee13300, 4,
+ &(vtc_ee13300[0]), // expected_vtbl_contents
+ &(vtt_ee13300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13300),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names76,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23300 : dd3300 {
+ int e;
+ virtual void foo(); // _ZN7ee233003fooEv
+ ~ee23300(); // tgen
+ ee23300(); // tgen
+};
+//SIG(1 ee23300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23300 ::foo(){vfunc_called(this, "_ZN7ee233003fooEv");}
+ee23300 ::~ee23300(){ note_dtor("ee23300", this);} // tgen
+ee23300 ::ee23300(){ note_ctor("ee23300", this);} // tgen
+
+static void Test_ee23300()
+{
+ extern Class_Descriptor cd_ee23300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23300, buf);
+ ee23300 *dp, &lv = *(dp=new (buf) ee23300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee23300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee23300");
+ check_base_class_offset(lv, (cc300*)(dd3300*), ABISELECT(16,12), "ee23300");
+ check_base_class_offset(lv, (dd3300*), 0, "ee23300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23300.e");
+ test_class_info(&lv, &cd_ee23300);
+ dp->~ee23300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23300(Test_ee23300, "ee23300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23300C1Ev();
+extern void _ZN7ee23300D1Ev();
+Name_Map name_map_ee23300[] = {
+ NSPAIR(_ZN7ee23300C1Ev),
+ NSPAIR(_ZN7ee23300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd3300;
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static Base_Class bases_ee23300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23300[];
+extern void _ZN7ee233003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233003fooEv,_ZTv0_n16_N7ee233003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233003fooEv,_ZThn12_N7ee233003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23300[0]),
+ (VTBL_ENTRY)&_ZN7ee233003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233003fooEv,_ZTv0_n16_N7ee233003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23300[];
+extern void _ZN6dd33003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3300__7ee23300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300__7ee23300[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee23300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee23300[] = {
+ {&(_ZTV7ee23300[4]), 4,10},
+ {&(_tg__ZTV6dd3300__7ee23300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd3300__7ee23300[4]), 4,5},
+ {&(_ZTV7ee23300[9]), 9,10},
+ {&(_tg__ZTV5cc300__7ee23300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23300[];
+extern VTBL_ENTRY _ZTV7ee23300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23300[];
+static VTBL_ENTRY alt_thunk_names77[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233003fooEv,_ZTv0_n16_N7ee233003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233003fooEv,_ZThn12_N7ee233003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23300 = { "ee23300", // class name
+ bases_ee23300, 4,
+ &(vtc_ee23300[0]), // expected_vtbl_contents
+ &(vtt_ee23300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names77,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33300 : virtual dd3300 {
+ int e;
+ virtual void foo(); // _ZN7ee333003fooEv
+ ~ee33300(); // tgen
+ ee33300(); // tgen
+};
+//SIG(1 ee33300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33300 ::foo(){vfunc_called(this, "_ZN7ee333003fooEv");}
+ee33300 ::~ee33300(){ note_dtor("ee33300", this);} // tgen
+ee33300 ::ee33300(){ note_ctor("ee33300", this);} // tgen
+
+static void Test_ee33300()
+{
+ extern Class_Descriptor cd_ee33300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33300, buf);
+ ee33300 *dp, &lv = *(dp=new (buf) ee33300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee33300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee33300");
+ check_base_class_offset(lv, (cc300*)(dd3300*), ABISELECT(32,16), "ee33300");
+ check_base_class_offset(lv, (dd3300*), ABISELECT(16,8), "ee33300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33300.e");
+ test_class_info(&lv, &cd_ee33300);
+ dp->~ee33300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33300(Test_ee33300, "ee33300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33300C1Ev();
+extern void _ZN7ee33300D1Ev();
+Name_Map name_map_ee33300[] = {
+ NSPAIR(_ZN7ee33300C1Ev),
+ NSPAIR(_ZN7ee33300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd3300;
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static Base_Class bases_ee33300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33300[];
+extern void _ZN7ee333003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333003fooEv,_ZTv0_n20_N7ee333003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333003fooEv,_ZThn8_N7ee333003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333003fooEv,_ZTv0_n16_N7ee333003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333003fooEv,_ZThn16_N7ee333003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33300[0]),
+ (VTBL_ENTRY)&_ZN7ee333003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333003fooEv,_ZTv0_n20_N7ee333003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333003fooEv,_ZTv0_n16_N7ee333003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33300[];
+extern void _ZN6dd33003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3300__7ee33300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300__7ee33300[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee33300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee33300[] = {
+ {&(_ZTV7ee33300[5]), 5,17},
+ {&(_ZTV7ee33300[11]), 11,17},
+ {&(_ZTV7ee33300[16]), 16,17},
+ {&(_tg__ZTV6dd3300__7ee33300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd3300__7ee33300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee33300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33300[];
+extern VTBL_ENTRY _ZTV7ee33300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33300[];
+static VTBL_ENTRY alt_thunk_names78[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333003fooEv,_ZTv0_n16_N7ee333003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333003fooEv,_ZThn16_N7ee333003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333003fooEv,_ZTv0_n20_N7ee333003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333003fooEv,_ZThn8_N7ee333003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33300 = { "ee33300", // class name
+ bases_ee33300, 4,
+ &(vtc_ee33300[0]), // expected_vtbl_contents
+ &(vtt_ee33300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33300),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names78,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43300 : dd3300 {
+ int e;
+ virtual void bar(); // _ZN7ee433003barEv
+ ~ee43300(); // tgen
+ ee43300(); // tgen
+};
+//SIG(1 ee43300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43300 ::bar(){vfunc_called(this, "_ZN7ee433003barEv");}
+ee43300 ::~ee43300(){ note_dtor("ee43300", this);} // tgen
+ee43300 ::ee43300(){ note_ctor("ee43300", this);} // tgen
+
+static void Test_ee43300()
+{
+ extern Class_Descriptor cd_ee43300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43300, buf);
+ ee43300 *dp, &lv = *(dp=new (buf) ee43300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee43300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee43300");
+ check_base_class_offset(lv, (cc300*)(dd3300*), ABISELECT(16,12), "ee43300");
+ check_base_class_offset(lv, (dd3300*), 0, "ee43300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43300.e");
+ test_class_info(&lv, &cd_ee43300);
+ dp->~ee43300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43300(Test_ee43300, "ee43300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43300C1Ev();
+extern void _ZN7ee43300D1Ev();
+Name_Map name_map_ee43300[] = {
+ NSPAIR(_ZN7ee43300C1Ev),
+ NSPAIR(_ZN7ee43300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd3300;
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static Base_Class bases_ee43300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43300[];
+extern void _ZN6dd33003fooEv();
+extern void _ZN7ee433003barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+ (VTBL_ENTRY)&_ZN7ee433003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43300[];
+extern void _ZN6dd33003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3300__7ee43300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300__7ee43300[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee43300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee43300[] = {
+ {&(_ZTV7ee43300[4]), 4,11},
+ {&(_tg__ZTV6dd3300__7ee43300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd3300__7ee43300[4]), 4,5},
+ {&(_ZTV7ee43300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee43300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43300[];
+extern VTBL_ENTRY _ZTV7ee43300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43300[];
+static VTBL_ENTRY alt_thunk_names79[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43300 = { "ee43300", // class name
+ bases_ee43300, 4,
+ &(vtc_ee43300[0]), // expected_vtbl_contents
+ &(vtt_ee43300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names79,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53300 : virtual dd3300 {
+ int e;
+ virtual void bar(); // _ZN7ee533003barEv
+ ~ee53300(); // tgen
+ ee53300(); // tgen
+};
+//SIG(1 ee53300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53300 ::bar(){vfunc_called(this, "_ZN7ee533003barEv");}
+ee53300 ::~ee53300(){ note_dtor("ee53300", this);} // tgen
+ee53300 ::ee53300(){ note_ctor("ee53300", this);} // tgen
+
+static void Test_ee53300()
+{
+ extern Class_Descriptor cd_ee53300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53300, buf);
+ ee53300 *dp, &lv = *(dp=new (buf) ee53300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee53300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee53300");
+ check_base_class_offset(lv, (cc300*)(dd3300*), ABISELECT(32,16), "ee53300");
+ check_base_class_offset(lv, (dd3300*), ABISELECT(16,8), "ee53300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53300.e");
+ test_class_info(&lv, &cd_ee53300);
+ dp->~ee53300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53300(Test_ee53300, "ee53300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53300C1Ev();
+extern void _ZN7ee53300D1Ev();
+Name_Map name_map_ee53300[] = {
+ NSPAIR(_ZN7ee53300C1Ev),
+ NSPAIR(_ZN7ee53300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd3300;
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static Base_Class bases_ee53300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53300[];
+extern void _ZN7ee533003barEv();
+extern void _ZN6dd33003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53300[0]),
+ (VTBL_ENTRY)&_ZN7ee533003barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53300[];
+extern void _ZN6dd33003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3300__7ee53300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300__7ee53300[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee53300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee53300[] = {
+ {&(_ZTV7ee53300[5]), 5,17},
+ {&(_ZTV7ee53300[11]), 11,17},
+ {&(_ZTV7ee53300[16]), 16,17},
+ {&(_tg__ZTV6dd3300__7ee53300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd3300__7ee53300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee53300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53300[];
+extern VTBL_ENTRY _ZTV7ee53300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53300[];
+static VTBL_ENTRY alt_thunk_names80[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53300 = { "ee53300", // class name
+ bases_ee53300, 4,
+ &(vtc_ee53300[0]), // expected_vtbl_contents
+ &(vtt_ee53300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53300),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names80,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63300 : dd3300 {
+ int e;
+ virtual void foo(); // _ZN7ee633003fooEv
+ virtual void bar(); // _ZN7ee633003barEv
+ ~ee63300(); // tgen
+ ee63300(); // tgen
+};
+//SIG(1 ee63300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63300 ::foo(){vfunc_called(this, "_ZN7ee633003fooEv");}
+void ee63300 ::bar(){vfunc_called(this, "_ZN7ee633003barEv");}
+ee63300 ::~ee63300(){ note_dtor("ee63300", this);} // tgen
+ee63300 ::ee63300(){ note_ctor("ee63300", this);} // tgen
+
+static void Test_ee63300()
+{
+ extern Class_Descriptor cd_ee63300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63300, buf);
+ ee63300 *dp, &lv = *(dp=new (buf) ee63300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee63300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee63300");
+ check_base_class_offset(lv, (cc300*)(dd3300*), ABISELECT(16,12), "ee63300");
+ check_base_class_offset(lv, (dd3300*), 0, "ee63300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63300.e");
+ test_class_info(&lv, &cd_ee63300);
+ dp->~ee63300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63300(Test_ee63300, "ee63300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63300C1Ev();
+extern void _ZN7ee63300D1Ev();
+Name_Map name_map_ee63300[] = {
+ NSPAIR(_ZN7ee63300C1Ev),
+ NSPAIR(_ZN7ee63300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd3300;
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static Base_Class bases_ee63300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63300[];
+extern void _ZN7ee633003fooEv();
+extern void _ZN7ee633003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633003fooEv,_ZTv0_n16_N7ee633003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633003fooEv,_ZThn12_N7ee633003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63300[0]),
+ (VTBL_ENTRY)&_ZN7ee633003fooEv,
+ (VTBL_ENTRY)&_ZN7ee633003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633003fooEv,_ZTv0_n16_N7ee633003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63300[];
+extern void _ZN6dd33003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3300__7ee63300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300__7ee63300[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee63300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee63300[] = {
+ {&(_ZTV7ee63300[4]), 4,11},
+ {&(_tg__ZTV6dd3300__7ee63300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd3300__7ee63300[4]), 4,5},
+ {&(_ZTV7ee63300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee63300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63300[];
+extern VTBL_ENTRY _ZTV7ee63300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63300[];
+static VTBL_ENTRY alt_thunk_names81[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn12_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633003fooEv,_ZTv0_n16_N7ee633003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633003fooEv,_ZThn12_N7ee633003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63300 = { "ee63300", // class name
+ bases_ee63300, 4,
+ &(vtc_ee63300[0]), // expected_vtbl_contents
+ &(vtt_ee63300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names81,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73300 : virtual dd3300 {
+ int e;
+ virtual void foo(); // _ZN7ee733003fooEv
+ virtual void bar(); // _ZN7ee733003barEv
+ ~ee73300(); // tgen
+ ee73300(); // tgen
+};
+//SIG(1 ee73300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73300 ::foo(){vfunc_called(this, "_ZN7ee733003fooEv");}
+void ee73300 ::bar(){vfunc_called(this, "_ZN7ee733003barEv");}
+ee73300 ::~ee73300(){ note_dtor("ee73300", this);} // tgen
+ee73300 ::ee73300(){ note_ctor("ee73300", this);} // tgen
+
+static void Test_ee73300()
+{
+ extern Class_Descriptor cd_ee73300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73300, buf);
+ ee73300 *dp, &lv = *(dp=new (buf) ee73300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee73300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee73300");
+ check_base_class_offset(lv, (cc300*)(dd3300*), ABISELECT(32,16), "ee73300");
+ check_base_class_offset(lv, (dd3300*), ABISELECT(16,8), "ee73300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73300.e");
+ test_class_info(&lv, &cd_ee73300);
+ dp->~ee73300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73300(Test_ee73300, "ee73300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73300C1Ev();
+extern void _ZN7ee73300D1Ev();
+Name_Map name_map_ee73300[] = {
+ NSPAIR(_ZN7ee73300C1Ev),
+ NSPAIR(_ZN7ee73300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd3300;
+extern VTBL_ENTRY _ZTI6dd3300[];
+extern VTBL_ENTRY _ZTV6dd3300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3300[];
+static Base_Class bases_ee73300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3300, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73300[];
+extern void _ZN7ee733003fooEv();
+extern void _ZN7ee733003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733003fooEv,_ZTv0_n20_N7ee733003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733003fooEv,_ZThn8_N7ee733003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733003fooEv,_ZTv0_n16_N7ee733003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733003fooEv,_ZThn16_N7ee733003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73300[0]),
+ (VTBL_ENTRY)&_ZN7ee733003fooEv,
+ (VTBL_ENTRY)&_ZN7ee733003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733003fooEv,_ZTv0_n20_N7ee733003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733003fooEv,_ZTv0_n16_N7ee733003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73300[];
+extern void _ZN6dd33003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3300__7ee73300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&_ZN6dd33003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd3300__7ee73300[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee73300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee73300[] = {
+ {&(_ZTV7ee73300[5]), 5,18},
+ {&(_ZTV7ee73300[12]), 12,18},
+ {&(_ZTV7ee73300[17]), 17,18},
+ {&(_tg__ZTV6dd3300__7ee73300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd3300__7ee73300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee73300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73300[];
+extern VTBL_ENTRY _ZTV7ee73300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73300[];
+static VTBL_ENTRY alt_thunk_names82[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33003fooEv,_ZTv0_n16_N6dd33003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33003fooEv,_ZThn8_N6dd33003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733003fooEv,_ZTv0_n16_N7ee733003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733003fooEv,_ZThn16_N7ee733003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733003fooEv,_ZTv0_n20_N7ee733003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733003fooEv,_ZThn8_N7ee733003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73300 = { "ee73300", // class name
+ bases_ee73300, 4,
+ &(vtc_ee73300[0]), // expected_vtbl_contents
+ &(vtt_ee73300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73300),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names82,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4300 : cc300 {
+ int d;
+ virtual void bar(); // _ZN6dd43003barEv
+ ~dd4300(); // tgen
+ dd4300(); // tgen
+};
+//SIG(-1 dd4300) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd4300 ::bar(){vfunc_called(this, "_ZN6dd43003barEv");}
+dd4300 ::~dd4300(){ note_dtor("dd4300", this);} // tgen
+dd4300 ::dd4300(){ note_ctor("dd4300", this);} // tgen
+
+static void Test_dd4300()
+{
+ extern Class_Descriptor cd_dd4300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4300, buf);
+ dd4300 *dp, &lv = *(dp=new (buf) dd4300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd4300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(16,12), "dd4300");
+ check_base_class_offset(lv, (cc300*), 0, "dd4300");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4300.d");
+ test_class_info(&lv, &cd_dd4300);
+ dp->~dd4300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4300(Test_dd4300, "dd4300", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4300C1Ev();
+extern void _ZN6dd4300D1Ev();
+Name_Map name_map_dd4300[] = {
+ NSPAIR(_ZN6dd4300C1Ev),
+ NSPAIR(_ZN6dd4300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+static Base_Class bases_dd4300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY vtc_dd4300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd4300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_dd4300[] = {
+ {&(_ZTV6dd4300[3]), 3,5},
+ {&(_tg__ZTV5cc300__6dd4300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+Class_Descriptor cd_dd4300 = { "dd4300", // class name
+ bases_dd4300, 3,
+ &(vtc_dd4300[0]), // expected_vtbl_contents
+ &(vtt_dd4300[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4300),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 ee04300 : dd4300 {
+ int e;
+ ~ee04300(); // tgen
+ ee04300(); // tgen
+};
+//SIG(1 ee04300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04300 ::~ee04300(){ note_dtor("ee04300", this);} // tgen
+ee04300 ::ee04300(){ note_ctor("ee04300", this);} // tgen
+
+static void Test_ee04300()
+{
+ extern Class_Descriptor cd_ee04300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04300, buf);
+ ee04300 *dp, &lv = *(dp=new (buf) ee04300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee04300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd4300*), ABISELECT(20,16), "ee04300");
+ check_base_class_offset(lv, (cc300*)(dd4300*), 0, "ee04300");
+ check_base_class_offset(lv, (dd4300*), 0, "ee04300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04300.e");
+ test_class_info(&lv, &cd_ee04300);
+ dp->~ee04300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04300(Test_ee04300, "ee04300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04300C1Ev();
+extern void _ZN7ee04300D1Ev();
+Name_Map name_map_ee04300[] = {
+ NSPAIR(_ZN7ee04300C1Ev),
+ NSPAIR(_ZN7ee04300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd4300;
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+static Base_Class bases_ee04300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee04300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY vtc_ee04300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee04300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4300__7ee04300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd4300__7ee04300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee04300[] = {
+ {&(_ZTV7ee04300[3]), 3,5},
+ {&(_tg__ZTV6dd4300__7ee04300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd4300__7ee04300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04300[];
+extern VTBL_ENTRY _ZTV7ee04300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04300[];
+Class_Descriptor cd_ee04300 = { "ee04300", // class name
+ bases_ee04300, 4,
+ &(vtc_ee04300[0]), // expected_vtbl_contents
+ &(vtt_ee04300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04300),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 ee14300 : virtual dd4300 {
+ int e;
+ ~ee14300(); // tgen
+ ee14300(); // tgen
+};
+//SIG(1 ee14300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14300 ::~ee14300(){ note_dtor("ee14300", this);} // tgen
+ee14300 ::ee14300(){ note_ctor("ee14300", this);} // tgen
+
+static void Test_ee14300()
+{
+ extern Class_Descriptor cd_ee14300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14300, buf);
+ ee14300 *dp, &lv = *(dp=new (buf) ee14300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee14300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd4300*), ABISELECT(32,20), "ee14300");
+ check_base_class_offset(lv, (cc300*)(dd4300*), ABISELECT(16,8), "ee14300");
+ check_base_class_offset(lv, (dd4300*), ABISELECT(16,8), "ee14300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14300.e");
+ test_class_info(&lv, &cd_ee14300);
+ dp->~ee14300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14300(Test_ee14300, "ee14300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14300C1Ev();
+extern void _ZN7ee14300D1Ev();
+Name_Map name_map_ee14300[] = {
+ NSPAIR(_ZN7ee14300C1Ev),
+ NSPAIR(_ZN7ee14300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd4300;
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+static Base_Class bases_ee14300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4300, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY vtc_ee14300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14300[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4300__7ee14300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd4300__7ee14300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee14300[] = {
+ {&(_ZTV7ee14300[4]), 4,11},
+ {&(_ZTV7ee14300[9]), 9,11},
+ {&(_tg__ZTV6dd4300__7ee14300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd4300__7ee14300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14300[];
+extern VTBL_ENTRY _ZTV7ee14300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14300[];
+Class_Descriptor cd_ee14300 = { "ee14300", // class name
+ bases_ee14300, 4,
+ &(vtc_ee14300[0]), // expected_vtbl_contents
+ &(vtt_ee14300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14300),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 ee24300 : dd4300 {
+ int e;
+ virtual void foo(); // _ZN7ee243003fooEv
+ ~ee24300(); // tgen
+ ee24300(); // tgen
+};
+//SIG(1 ee24300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24300 ::foo(){vfunc_called(this, "_ZN7ee243003fooEv");}
+ee24300 ::~ee24300(){ note_dtor("ee24300", this);} // tgen
+ee24300 ::ee24300(){ note_ctor("ee24300", this);} // tgen
+
+static void Test_ee24300()
+{
+ extern Class_Descriptor cd_ee24300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24300, buf);
+ ee24300 *dp, &lv = *(dp=new (buf) ee24300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee24300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd4300*), ABISELECT(20,16), "ee24300");
+ check_base_class_offset(lv, (cc300*)(dd4300*), 0, "ee24300");
+ check_base_class_offset(lv, (dd4300*), 0, "ee24300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24300.e");
+ test_class_info(&lv, &cd_ee24300);
+ dp->~ee24300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24300(Test_ee24300, "ee24300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24300C1Ev();
+extern void _ZN7ee24300D1Ev();
+Name_Map name_map_ee24300[] = {
+ NSPAIR(_ZN7ee24300C1Ev),
+ NSPAIR(_ZN7ee24300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd4300;
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+static Base_Class bases_ee24300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24300[];
+extern void _ZN7ee243003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY vtc_ee24300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24300[0]),
+ (VTBL_ENTRY)&_ZN7ee243003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee24300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4300__7ee24300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd4300__7ee24300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee24300[] = {
+ {&(_ZTV7ee24300[3]), 3,5},
+ {&(_tg__ZTV6dd4300__7ee24300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd4300__7ee24300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24300[];
+extern VTBL_ENTRY _ZTV7ee24300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24300[];
+Class_Descriptor cd_ee24300 = { "ee24300", // class name
+ bases_ee24300, 4,
+ &(vtc_ee24300[0]), // expected_vtbl_contents
+ &(vtt_ee24300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24300),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 ee34300 : virtual dd4300 {
+ int e;
+ virtual void foo(); // _ZN7ee343003fooEv
+ ~ee34300(); // tgen
+ ee34300(); // tgen
+};
+//SIG(1 ee34300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34300 ::foo(){vfunc_called(this, "_ZN7ee343003fooEv");}
+ee34300 ::~ee34300(){ note_dtor("ee34300", this);} // tgen
+ee34300 ::ee34300(){ note_ctor("ee34300", this);} // tgen
+
+static void Test_ee34300()
+{
+ extern Class_Descriptor cd_ee34300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34300, buf);
+ ee34300 *dp, &lv = *(dp=new (buf) ee34300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee34300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd4300*), ABISELECT(32,20), "ee34300");
+ check_base_class_offset(lv, (cc300*)(dd4300*), ABISELECT(16,8), "ee34300");
+ check_base_class_offset(lv, (dd4300*), ABISELECT(16,8), "ee34300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34300.e");
+ test_class_info(&lv, &cd_ee34300);
+ dp->~ee34300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34300(Test_ee34300, "ee34300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34300C1Ev();
+extern void _ZN7ee34300D1Ev();
+Name_Map name_map_ee34300[] = {
+ NSPAIR(_ZN7ee34300C1Ev),
+ NSPAIR(_ZN7ee34300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd4300;
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+static Base_Class bases_ee34300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34300[];
+extern void _ZN7ee343003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343003fooEv,_ZTv0_n16_N7ee343003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343003fooEv,_ZThn8_N7ee343003fooEv)() __attribute__((weak));
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY vtc_ee34300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34300[0]),
+ (VTBL_ENTRY)&_ZN7ee343003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343003fooEv,_ZTv0_n16_N7ee343003fooEv),
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4300__7ee34300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd4300__7ee34300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee34300[] = {
+ {&(_ZTV7ee34300[4]), 4,12},
+ {&(_ZTV7ee34300[10]), 10,12},
+ {&(_tg__ZTV6dd4300__7ee34300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd4300__7ee34300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34300[];
+extern VTBL_ENTRY _ZTV7ee34300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34300[];
+static VTBL_ENTRY alt_thunk_names83[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343003fooEv,_ZTv0_n16_N7ee343003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343003fooEv,_ZThn8_N7ee343003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34300 = { "ee34300", // class name
+ bases_ee34300, 4,
+ &(vtc_ee34300[0]), // expected_vtbl_contents
+ &(vtt_ee34300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34300),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34300),4, //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 ee44300 : dd4300 {
+ int e;
+ virtual void bar(); // _ZN7ee443003barEv
+ ~ee44300(); // tgen
+ ee44300(); // tgen
+};
+//SIG(1 ee44300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44300 ::bar(){vfunc_called(this, "_ZN7ee443003barEv");}
+ee44300 ::~ee44300(){ note_dtor("ee44300", this);} // tgen
+ee44300 ::ee44300(){ note_ctor("ee44300", this);} // tgen
+
+static void Test_ee44300()
+{
+ extern Class_Descriptor cd_ee44300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44300, buf);
+ ee44300 *dp, &lv = *(dp=new (buf) ee44300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee44300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd4300*), ABISELECT(20,16), "ee44300");
+ check_base_class_offset(lv, (cc300*)(dd4300*), 0, "ee44300");
+ check_base_class_offset(lv, (dd4300*), 0, "ee44300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44300.e");
+ test_class_info(&lv, &cd_ee44300);
+ dp->~ee44300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44300(Test_ee44300, "ee44300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44300C1Ev();
+extern void _ZN7ee44300D1Ev();
+Name_Map name_map_ee44300[] = {
+ NSPAIR(_ZN7ee44300C1Ev),
+ NSPAIR(_ZN7ee44300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd4300;
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+static Base_Class bases_ee44300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN7ee443003barEv();
+static VTBL_ENTRY vtc_ee44300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN7ee443003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee44300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4300__7ee44300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd4300__7ee44300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee44300[] = {
+ {&(_ZTV7ee44300[3]), 3,5},
+ {&(_tg__ZTV6dd4300__7ee44300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd4300__7ee44300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44300[];
+extern VTBL_ENTRY _ZTV7ee44300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44300[];
+Class_Descriptor cd_ee44300 = { "ee44300", // class name
+ bases_ee44300, 4,
+ &(vtc_ee44300[0]), // expected_vtbl_contents
+ &(vtt_ee44300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44300),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 ee54300 : virtual dd4300 {
+ int e;
+ virtual void bar(); // _ZN7ee543003barEv
+ ~ee54300(); // tgen
+ ee54300(); // tgen
+};
+//SIG(1 ee54300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54300 ::bar(){vfunc_called(this, "_ZN7ee543003barEv");}
+ee54300 ::~ee54300(){ note_dtor("ee54300", this);} // tgen
+ee54300 ::ee54300(){ note_ctor("ee54300", this);} // tgen
+
+static void Test_ee54300()
+{
+ extern Class_Descriptor cd_ee54300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54300, buf);
+ ee54300 *dp, &lv = *(dp=new (buf) ee54300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee54300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd4300*), ABISELECT(32,20), "ee54300");
+ check_base_class_offset(lv, (cc300*)(dd4300*), ABISELECT(16,8), "ee54300");
+ check_base_class_offset(lv, (dd4300*), ABISELECT(16,8), "ee54300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54300.e");
+ test_class_info(&lv, &cd_ee54300);
+ dp->~ee54300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54300(Test_ee54300, "ee54300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54300C1Ev();
+extern void _ZN7ee54300D1Ev();
+Name_Map name_map_ee54300[] = {
+ NSPAIR(_ZN7ee54300C1Ev),
+ NSPAIR(_ZN7ee54300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd4300;
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+static Base_Class bases_ee54300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54300[];
+extern void _ZN7ee543003barEv();
+extern void _ZN5cc3003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543003barEv,_ZTv0_n20_N7ee543003barEv)();
+extern void ABISELECT(_ZThn16_N7ee543003barEv,_ZThn8_N7ee543003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54300[0]),
+ (VTBL_ENTRY)&_ZN7ee543003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543003barEv,_ZTv0_n20_N7ee543003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4300__7ee54300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd4300__7ee54300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee54300[] = {
+ {&(_ZTV7ee54300[4]), 4,12},
+ {&(_ZTV7ee54300[10]), 10,12},
+ {&(_tg__ZTV6dd4300__7ee54300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd4300__7ee54300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54300[];
+extern VTBL_ENTRY _ZTV7ee54300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54300[];
+static VTBL_ENTRY alt_thunk_names84[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543003barEv,_ZTv0_n20_N7ee543003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543003barEv,_ZThn8_N7ee543003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54300 = { "ee54300", // class name
+ bases_ee54300, 4,
+ &(vtc_ee54300[0]), // expected_vtbl_contents
+ &(vtt_ee54300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54300),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names84,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64300 : dd4300 {
+ int e;
+ virtual void foo(); // _ZN7ee643003fooEv
+ virtual void bar(); // _ZN7ee643003barEv
+ ~ee64300(); // tgen
+ ee64300(); // tgen
+};
+//SIG(1 ee64300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64300 ::foo(){vfunc_called(this, "_ZN7ee643003fooEv");}
+void ee64300 ::bar(){vfunc_called(this, "_ZN7ee643003barEv");}
+ee64300 ::~ee64300(){ note_dtor("ee64300", this);} // tgen
+ee64300 ::ee64300(){ note_ctor("ee64300", this);} // tgen
+
+static void Test_ee64300()
+{
+ extern Class_Descriptor cd_ee64300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64300, buf);
+ ee64300 *dp, &lv = *(dp=new (buf) ee64300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee64300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd4300*), ABISELECT(20,16), "ee64300");
+ check_base_class_offset(lv, (cc300*)(dd4300*), 0, "ee64300");
+ check_base_class_offset(lv, (dd4300*), 0, "ee64300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64300.e");
+ test_class_info(&lv, &cd_ee64300);
+ dp->~ee64300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64300(Test_ee64300, "ee64300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64300C1Ev();
+extern void _ZN7ee64300D1Ev();
+Name_Map name_map_ee64300[] = {
+ NSPAIR(_ZN7ee64300C1Ev),
+ NSPAIR(_ZN7ee64300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd4300;
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+static Base_Class bases_ee64300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64300[];
+extern void _ZN7ee643003fooEv();
+extern void _ZN7ee643003barEv();
+static VTBL_ENTRY vtc_ee64300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64300[0]),
+ (VTBL_ENTRY)&_ZN7ee643003fooEv,
+ (VTBL_ENTRY)&_ZN7ee643003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee64300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4300__7ee64300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd4300__7ee64300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee64300[] = {
+ {&(_ZTV7ee64300[3]), 3,5},
+ {&(_tg__ZTV6dd4300__7ee64300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd4300__7ee64300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64300[];
+extern VTBL_ENTRY _ZTV7ee64300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64300[];
+Class_Descriptor cd_ee64300 = { "ee64300", // class name
+ bases_ee64300, 4,
+ &(vtc_ee64300[0]), // expected_vtbl_contents
+ &(vtt_ee64300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64300),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 ee74300 : virtual dd4300 {
+ int e;
+ virtual void foo(); // _ZN7ee743003fooEv
+ virtual void bar(); // _ZN7ee743003barEv
+ ~ee74300(); // tgen
+ ee74300(); // tgen
+};
+//SIG(1 ee74300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74300 ::foo(){vfunc_called(this, "_ZN7ee743003fooEv");}
+void ee74300 ::bar(){vfunc_called(this, "_ZN7ee743003barEv");}
+ee74300 ::~ee74300(){ note_dtor("ee74300", this);} // tgen
+ee74300 ::ee74300(){ note_ctor("ee74300", this);} // tgen
+
+static void Test_ee74300()
+{
+ extern Class_Descriptor cd_ee74300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74300, buf);
+ ee74300 *dp, &lv = *(dp=new (buf) ee74300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee74300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd4300*), ABISELECT(32,20), "ee74300");
+ check_base_class_offset(lv, (cc300*)(dd4300*), ABISELECT(16,8), "ee74300");
+ check_base_class_offset(lv, (dd4300*), ABISELECT(16,8), "ee74300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74300.e");
+ test_class_info(&lv, &cd_ee74300);
+ dp->~ee74300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74300(Test_ee74300, "ee74300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74300C1Ev();
+extern void _ZN7ee74300D1Ev();
+Name_Map name_map_ee74300[] = {
+ NSPAIR(_ZN7ee74300C1Ev),
+ NSPAIR(_ZN7ee74300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd4300;
+extern VTBL_ENTRY _ZTI6dd4300[];
+extern VTBL_ENTRY _ZTV6dd4300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4300[];
+static Base_Class bases_ee74300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74300[];
+extern void _ZN7ee743003fooEv();
+extern void _ZN7ee743003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743003fooEv,_ZTv0_n16_N7ee743003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743003fooEv,_ZThn8_N7ee743003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743003barEv,_ZTv0_n20_N7ee743003barEv)();
+extern void ABISELECT(_ZThn16_N7ee743003barEv,_ZThn8_N7ee743003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74300[0]),
+ (VTBL_ENTRY)&_ZN7ee743003fooEv,
+ (VTBL_ENTRY)&_ZN7ee743003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743003fooEv,_ZTv0_n16_N7ee743003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743003barEv,_ZTv0_n20_N7ee743003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74300[];
+extern void _ZN5cc3003fooEv();
+extern void _ZN6dd43003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4300__7ee74300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+ (VTBL_ENTRY)&_ZN6dd43003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd4300__7ee74300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee74300[] = {
+ {&(_ZTV7ee74300[4]), 4,13},
+ {&(_ZTV7ee74300[11]), 11,13},
+ {&(_tg__ZTV6dd4300__7ee74300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd4300__7ee74300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74300[];
+extern VTBL_ENTRY _ZTV7ee74300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74300[];
+static VTBL_ENTRY alt_thunk_names85[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743003barEv,_ZTv0_n20_N7ee743003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743003barEv,_ZThn8_N7ee743003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743003fooEv,_ZTv0_n16_N7ee743003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743003fooEv,_ZThn8_N7ee743003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74300 = { "ee74300", // class name
+ bases_ee74300, 4,
+ &(vtc_ee74300[0]), // expected_vtbl_contents
+ &(vtt_ee74300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74300),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names85,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5300 : virtual cc300 {
+ int d;
+ virtual void bar(); // _ZN6dd53003barEv
+ ~dd5300(); // tgen
+ dd5300(); // tgen
+};
+//SIG(-1 dd5300) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd5300 ::bar(){vfunc_called(this, "_ZN6dd53003barEv");}
+dd5300 ::~dd5300(){ note_dtor("dd5300", this);} // tgen
+dd5300 ::dd5300(){ note_ctor("dd5300", this);} // tgen
+
+static void Test_dd5300()
+{
+ extern Class_Descriptor cd_dd5300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5300, buf);
+ dd5300 *dp, &lv = *(dp=new (buf) dd5300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd5300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,16), "dd5300");
+ check_base_class_offset(lv, (cc300*), ABISELECT(16,8), "dd5300");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5300.d");
+ test_class_info(&lv, &cd_dd5300);
+ dp->~dd5300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5300(Test_dd5300, "dd5300", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5300C1Ev();
+extern void _ZN6dd5300D1Ev();
+Name_Map name_map_dd5300[] = {
+ NSPAIR(_ZN6dd5300C1Ev),
+ NSPAIR(_ZN6dd5300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+static Base_Class bases_dd5300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern void _ZN6dd53003barEv();
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_dd5300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_dd5300[] = {
+ {&(_ZTV6dd5300[4]), 4,10},
+ {&(_ZTV6dd5300[9]), 9,10},
+ {&(_tg__ZTV5cc300__6dd5300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+Class_Descriptor cd_dd5300 = { "dd5300", // class name
+ bases_dd5300, 3,
+ &(vtc_dd5300[0]), // expected_vtbl_contents
+ &(vtt_dd5300[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5300),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 ee05300 : dd5300 {
+ int e;
+ ~ee05300(); // tgen
+ ee05300(); // tgen
+};
+//SIG(1 ee05300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05300 ::~ee05300(){ note_dtor("ee05300", this);} // tgen
+ee05300 ::ee05300(){ note_ctor("ee05300", this);} // tgen
+
+static void Test_ee05300()
+{
+ extern Class_Descriptor cd_ee05300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05300, buf);
+ ee05300 *dp, &lv = *(dp=new (buf) ee05300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee05300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee05300");
+ check_base_class_offset(lv, (cc300*)(dd5300*), ABISELECT(16,12), "ee05300");
+ check_base_class_offset(lv, (dd5300*), 0, "ee05300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05300.e");
+ test_class_info(&lv, &cd_ee05300);
+ dp->~ee05300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05300(Test_ee05300, "ee05300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05300C1Ev();
+extern void _ZN7ee05300D1Ev();
+Name_Map name_map_ee05300[] = {
+ NSPAIR(_ZN7ee05300C1Ev),
+ NSPAIR(_ZN7ee05300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd5300;
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+static Base_Class bases_ee05300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05300[];
+extern void _ZN6dd53003barEv();
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee05300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05300[];
+extern void _ZN6dd53003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5300__7ee05300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300__7ee05300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee05300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee05300[] = {
+ {&(_ZTV7ee05300[4]), 4,10},
+ {&(_tg__ZTV6dd5300__7ee05300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd5300__7ee05300[4]), 4,5},
+ {&(_ZTV7ee05300[9]), 9,10},
+ {&(_tg__ZTV5cc300__7ee05300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05300[];
+extern VTBL_ENTRY _ZTV7ee05300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05300[];
+Class_Descriptor cd_ee05300 = { "ee05300", // class name
+ bases_ee05300, 4,
+ &(vtc_ee05300[0]), // expected_vtbl_contents
+ &(vtt_ee05300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05300),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 ee15300 : virtual dd5300 {
+ int e;
+ ~ee15300(); // tgen
+ ee15300(); // tgen
+};
+//SIG(1 ee15300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15300 ::~ee15300(){ note_dtor("ee15300", this);} // tgen
+ee15300 ::ee15300(){ note_ctor("ee15300", this);} // tgen
+
+static void Test_ee15300()
+{
+ extern Class_Descriptor cd_ee15300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15300, buf);
+ ee15300 *dp, &lv = *(dp=new (buf) ee15300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee15300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee15300");
+ check_base_class_offset(lv, (cc300*)(dd5300*), ABISELECT(32,16), "ee15300");
+ check_base_class_offset(lv, (dd5300*), ABISELECT(16,8), "ee15300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15300.e");
+ test_class_info(&lv, &cd_ee15300);
+ dp->~ee15300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15300(Test_ee15300, "ee15300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15300C1Ev();
+extern void _ZN7ee15300D1Ev();
+Name_Map name_map_ee15300[] = {
+ NSPAIR(_ZN7ee15300C1Ev),
+ NSPAIR(_ZN7ee15300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd5300;
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+static Base_Class bases_ee15300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15300[];
+extern void _ZN6dd53003barEv();
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee15300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15300[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15300[];
+extern void _ZN6dd53003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5300__7ee15300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300__7ee15300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee15300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee15300[] = {
+ {&(_ZTV7ee15300[5]), 5,16},
+ {&(_ZTV7ee15300[10]), 10,16},
+ {&(_ZTV7ee15300[15]), 15,16},
+ {&(_tg__ZTV6dd5300__7ee15300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd5300__7ee15300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee15300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15300[];
+extern VTBL_ENTRY _ZTV7ee15300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15300[];
+Class_Descriptor cd_ee15300 = { "ee15300", // class name
+ bases_ee15300, 4,
+ &(vtc_ee15300[0]), // expected_vtbl_contents
+ &(vtt_ee15300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15300),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15300),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 ee25300 : dd5300 {
+ int e;
+ virtual void foo(); // _ZN7ee253003fooEv
+ ~ee25300(); // tgen
+ ee25300(); // tgen
+};
+//SIG(1 ee25300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25300 ::foo(){vfunc_called(this, "_ZN7ee253003fooEv");}
+ee25300 ::~ee25300(){ note_dtor("ee25300", this);} // tgen
+ee25300 ::ee25300(){ note_ctor("ee25300", this);} // tgen
+
+static void Test_ee25300()
+{
+ extern Class_Descriptor cd_ee25300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25300, buf);
+ ee25300 *dp, &lv = *(dp=new (buf) ee25300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee25300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee25300");
+ check_base_class_offset(lv, (cc300*)(dd5300*), ABISELECT(16,12), "ee25300");
+ check_base_class_offset(lv, (dd5300*), 0, "ee25300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25300.e");
+ test_class_info(&lv, &cd_ee25300);
+ dp->~ee25300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25300(Test_ee25300, "ee25300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25300C1Ev();
+extern void _ZN7ee25300D1Ev();
+Name_Map name_map_ee25300[] = {
+ NSPAIR(_ZN7ee25300C1Ev),
+ NSPAIR(_ZN7ee25300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd5300;
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+static Base_Class bases_ee25300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25300[];
+extern void _ZN6dd53003barEv();
+extern void _ZN7ee253003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253003fooEv,_ZTv0_n16_N7ee253003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253003fooEv,_ZThn12_N7ee253003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+ (VTBL_ENTRY)&_ZN7ee253003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253003fooEv,_ZTv0_n16_N7ee253003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25300[];
+extern void _ZN6dd53003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5300__7ee25300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300__7ee25300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee25300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee25300[] = {
+ {&(_ZTV7ee25300[4]), 4,11},
+ {&(_tg__ZTV6dd5300__7ee25300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd5300__7ee25300[4]), 4,5},
+ {&(_ZTV7ee25300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee25300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25300[];
+extern VTBL_ENTRY _ZTV7ee25300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25300[];
+static VTBL_ENTRY alt_thunk_names86[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253003fooEv,_ZTv0_n16_N7ee253003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253003fooEv,_ZThn12_N7ee253003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25300 = { "ee25300", // class name
+ bases_ee25300, 4,
+ &(vtc_ee25300[0]), // expected_vtbl_contents
+ &(vtt_ee25300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names86,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35300 : virtual dd5300 {
+ int e;
+ virtual void foo(); // _ZN7ee353003fooEv
+ ~ee35300(); // tgen
+ ee35300(); // tgen
+};
+//SIG(1 ee35300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35300 ::foo(){vfunc_called(this, "_ZN7ee353003fooEv");}
+ee35300 ::~ee35300(){ note_dtor("ee35300", this);} // tgen
+ee35300 ::ee35300(){ note_ctor("ee35300", this);} // tgen
+
+static void Test_ee35300()
+{
+ extern Class_Descriptor cd_ee35300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35300, buf);
+ ee35300 *dp, &lv = *(dp=new (buf) ee35300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee35300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee35300");
+ check_base_class_offset(lv, (cc300*)(dd5300*), ABISELECT(32,16), "ee35300");
+ check_base_class_offset(lv, (dd5300*), ABISELECT(16,8), "ee35300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35300.e");
+ test_class_info(&lv, &cd_ee35300);
+ dp->~ee35300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35300(Test_ee35300, "ee35300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35300C1Ev();
+extern void _ZN7ee35300D1Ev();
+Name_Map name_map_ee35300[] = {
+ NSPAIR(_ZN7ee35300C1Ev),
+ NSPAIR(_ZN7ee35300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd5300;
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+static Base_Class bases_ee35300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35300[];
+extern void _ZN7ee353003fooEv();
+extern void _ZN6dd53003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353003fooEv,_ZTv0_n16_N7ee353003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353003fooEv,_ZThn16_N7ee353003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35300[0]),
+ (VTBL_ENTRY)&_ZN7ee353003fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353003fooEv,_ZTv0_n16_N7ee353003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35300[];
+extern void _ZN6dd53003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5300__7ee35300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300__7ee35300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee35300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee35300[] = {
+ {&(_ZTV7ee35300[5]), 5,17},
+ {&(_ZTV7ee35300[11]), 11,17},
+ {&(_ZTV7ee35300[16]), 16,17},
+ {&(_tg__ZTV6dd5300__7ee35300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd5300__7ee35300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee35300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35300[];
+extern VTBL_ENTRY _ZTV7ee35300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35300[];
+static VTBL_ENTRY alt_thunk_names87[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353003fooEv,_ZTv0_n16_N7ee353003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353003fooEv,_ZThn16_N7ee353003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35300 = { "ee35300", // class name
+ bases_ee35300, 4,
+ &(vtc_ee35300[0]), // expected_vtbl_contents
+ &(vtt_ee35300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35300),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names87,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45300 : dd5300 {
+ int e;
+ virtual void bar(); // _ZN7ee453003barEv
+ ~ee45300(); // tgen
+ ee45300(); // tgen
+};
+//SIG(1 ee45300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45300 ::bar(){vfunc_called(this, "_ZN7ee453003barEv");}
+ee45300 ::~ee45300(){ note_dtor("ee45300", this);} // tgen
+ee45300 ::ee45300(){ note_ctor("ee45300", this);} // tgen
+
+static void Test_ee45300()
+{
+ extern Class_Descriptor cd_ee45300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45300, buf);
+ ee45300 *dp, &lv = *(dp=new (buf) ee45300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee45300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee45300");
+ check_base_class_offset(lv, (cc300*)(dd5300*), ABISELECT(16,12), "ee45300");
+ check_base_class_offset(lv, (dd5300*), 0, "ee45300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45300.e");
+ test_class_info(&lv, &cd_ee45300);
+ dp->~ee45300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45300(Test_ee45300, "ee45300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45300C1Ev();
+extern void _ZN7ee45300D1Ev();
+Name_Map name_map_ee45300[] = {
+ NSPAIR(_ZN7ee45300C1Ev),
+ NSPAIR(_ZN7ee45300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd5300;
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+static Base_Class bases_ee45300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45300[];
+extern void _ZN7ee453003barEv();
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee45300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45300[0]),
+ (VTBL_ENTRY)&_ZN7ee453003barEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45300[];
+extern void _ZN6dd53003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5300__7ee45300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300__7ee45300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee45300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee45300[] = {
+ {&(_ZTV7ee45300[4]), 4,10},
+ {&(_tg__ZTV6dd5300__7ee45300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd5300__7ee45300[4]), 4,5},
+ {&(_ZTV7ee45300[9]), 9,10},
+ {&(_tg__ZTV5cc300__7ee45300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45300[];
+extern VTBL_ENTRY _ZTV7ee45300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45300[];
+Class_Descriptor cd_ee45300 = { "ee45300", // class name
+ bases_ee45300, 4,
+ &(vtc_ee45300[0]), // expected_vtbl_contents
+ &(vtt_ee45300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45300),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45300),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 ee55300 : virtual dd5300 {
+ int e;
+ virtual void bar(); // _ZN7ee553003barEv
+ ~ee55300(); // tgen
+ ee55300(); // tgen
+};
+//SIG(1 ee55300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55300 ::bar(){vfunc_called(this, "_ZN7ee553003barEv");}
+ee55300 ::~ee55300(){ note_dtor("ee55300", this);} // tgen
+ee55300 ::ee55300(){ note_ctor("ee55300", this);} // tgen
+
+static void Test_ee55300()
+{
+ extern Class_Descriptor cd_ee55300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55300, buf);
+ ee55300 *dp, &lv = *(dp=new (buf) ee55300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee55300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee55300");
+ check_base_class_offset(lv, (cc300*)(dd5300*), ABISELECT(32,16), "ee55300");
+ check_base_class_offset(lv, (dd5300*), ABISELECT(16,8), "ee55300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55300.e");
+ test_class_info(&lv, &cd_ee55300);
+ dp->~ee55300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55300(Test_ee55300, "ee55300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55300C1Ev();
+extern void _ZN7ee55300D1Ev();
+Name_Map name_map_ee55300[] = {
+ NSPAIR(_ZN7ee55300C1Ev),
+ NSPAIR(_ZN7ee55300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd5300;
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+static Base_Class bases_ee55300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55300[];
+extern void _ZN7ee553003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553003barEv,_ZTv0_n20_N7ee553003barEv)();
+extern void ABISELECT(_ZThn16_N7ee553003barEv,_ZThn8_N7ee553003barEv)() __attribute__((weak));
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY vtc_ee55300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55300[0]),
+ (VTBL_ENTRY)&_ZN7ee553003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553003barEv,_ZTv0_n20_N7ee553003barEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55300[];
+extern void _ZN6dd53003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5300__7ee55300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300__7ee55300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee55300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee55300[] = {
+ {&(_ZTV7ee55300[5]), 5,17},
+ {&(_ZTV7ee55300[11]), 11,17},
+ {&(_ZTV7ee55300[16]), 16,17},
+ {&(_tg__ZTV6dd5300__7ee55300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd5300__7ee55300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee55300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55300[];
+extern VTBL_ENTRY _ZTV7ee55300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55300[];
+static VTBL_ENTRY alt_thunk_names88[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553003barEv,_ZTv0_n20_N7ee553003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553003barEv,_ZThn8_N7ee553003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55300 = { "ee55300", // class name
+ bases_ee55300, 4,
+ &(vtc_ee55300[0]), // expected_vtbl_contents
+ &(vtt_ee55300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55300),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names88,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65300 : dd5300 {
+ int e;
+ virtual void foo(); // _ZN7ee653003fooEv
+ virtual void bar(); // _ZN7ee653003barEv
+ ~ee65300(); // tgen
+ ee65300(); // tgen
+};
+//SIG(1 ee65300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65300 ::foo(){vfunc_called(this, "_ZN7ee653003fooEv");}
+void ee65300 ::bar(){vfunc_called(this, "_ZN7ee653003barEv");}
+ee65300 ::~ee65300(){ note_dtor("ee65300", this);} // tgen
+ee65300 ::ee65300(){ note_ctor("ee65300", this);} // tgen
+
+static void Test_ee65300()
+{
+ extern Class_Descriptor cd_ee65300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65300, buf);
+ ee65300 *dp, &lv = *(dp=new (buf) ee65300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee65300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee65300");
+ check_base_class_offset(lv, (cc300*)(dd5300*), ABISELECT(16,12), "ee65300");
+ check_base_class_offset(lv, (dd5300*), 0, "ee65300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65300.e");
+ test_class_info(&lv, &cd_ee65300);
+ dp->~ee65300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65300(Test_ee65300, "ee65300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65300C1Ev();
+extern void _ZN7ee65300D1Ev();
+Name_Map name_map_ee65300[] = {
+ NSPAIR(_ZN7ee65300C1Ev),
+ NSPAIR(_ZN7ee65300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd5300;
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+static Base_Class bases_ee65300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65300[];
+extern void _ZN7ee653003barEv();
+extern void _ZN7ee653003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653003fooEv,_ZTv0_n16_N7ee653003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653003fooEv,_ZThn12_N7ee653003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65300[0]),
+ (VTBL_ENTRY)&_ZN7ee653003barEv,
+ (VTBL_ENTRY)&_ZN7ee653003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653003fooEv,_ZTv0_n16_N7ee653003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65300[];
+extern void _ZN6dd53003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5300__7ee65300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300__7ee65300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee65300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee65300[] = {
+ {&(_ZTV7ee65300[4]), 4,11},
+ {&(_tg__ZTV6dd5300__7ee65300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd5300__7ee65300[4]), 4,5},
+ {&(_ZTV7ee65300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee65300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65300[];
+extern VTBL_ENTRY _ZTV7ee65300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65300[];
+static VTBL_ENTRY alt_thunk_names89[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653003fooEv,_ZTv0_n16_N7ee653003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653003fooEv,_ZThn12_N7ee653003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65300 = { "ee65300", // class name
+ bases_ee65300, 4,
+ &(vtc_ee65300[0]), // expected_vtbl_contents
+ &(vtt_ee65300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names89,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75300 : virtual dd5300 {
+ int e;
+ virtual void foo(); // _ZN7ee753003fooEv
+ virtual void bar(); // _ZN7ee753003barEv
+ ~ee75300(); // tgen
+ ee75300(); // tgen
+};
+//SIG(1 ee75300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75300 ::foo(){vfunc_called(this, "_ZN7ee753003fooEv");}
+void ee75300 ::bar(){vfunc_called(this, "_ZN7ee753003barEv");}
+ee75300 ::~ee75300(){ note_dtor("ee75300", this);} // tgen
+ee75300 ::ee75300(){ note_ctor("ee75300", this);} // tgen
+
+static void Test_ee75300()
+{
+ extern Class_Descriptor cd_ee75300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75300, buf);
+ ee75300 *dp, &lv = *(dp=new (buf) ee75300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee75300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee75300");
+ check_base_class_offset(lv, (cc300*)(dd5300*), ABISELECT(32,16), "ee75300");
+ check_base_class_offset(lv, (dd5300*), ABISELECT(16,8), "ee75300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75300.e");
+ test_class_info(&lv, &cd_ee75300);
+ dp->~ee75300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75300(Test_ee75300, "ee75300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75300C1Ev();
+extern void _ZN7ee75300D1Ev();
+Name_Map name_map_ee75300[] = {
+ NSPAIR(_ZN7ee75300C1Ev),
+ NSPAIR(_ZN7ee75300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd5300;
+extern VTBL_ENTRY _ZTI6dd5300[];
+extern VTBL_ENTRY _ZTV6dd5300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5300[];
+static Base_Class bases_ee75300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5300, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75300[];
+extern void _ZN7ee753003fooEv();
+extern void _ZN7ee753003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753003barEv,_ZTv0_n20_N7ee753003barEv)();
+extern void ABISELECT(_ZThn16_N7ee753003barEv,_ZThn8_N7ee753003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753003fooEv,_ZTv0_n16_N7ee753003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753003fooEv,_ZThn16_N7ee753003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75300[0]),
+ (VTBL_ENTRY)&_ZN7ee753003fooEv,
+ (VTBL_ENTRY)&_ZN7ee753003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753003barEv,_ZTv0_n20_N7ee753003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753003fooEv,_ZTv0_n16_N7ee753003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75300[];
+extern void _ZN6dd53003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5300__7ee75300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN6dd53003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd5300__7ee75300[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee75300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee75300[] = {
+ {&(_ZTV7ee75300[5]), 5,18},
+ {&(_ZTV7ee75300[12]), 12,18},
+ {&(_ZTV7ee75300[17]), 17,18},
+ {&(_tg__ZTV6dd5300__7ee75300[4]), 4,5},
+ {&(_tg__ZTV5cc300__6dd5300__7ee75300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee75300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75300[];
+extern VTBL_ENTRY _ZTV7ee75300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75300[];
+static VTBL_ENTRY alt_thunk_names90[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753003fooEv,_ZTv0_n16_N7ee753003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753003fooEv,_ZThn16_N7ee753003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753003barEv,_ZTv0_n20_N7ee753003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753003barEv,_ZThn8_N7ee753003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75300 = { "ee75300", // class name
+ bases_ee75300, 4,
+ &(vtc_ee75300[0]), // expected_vtbl_contents
+ &(vtt_ee75300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75300),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names90,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6300 : cc300 {
+ int d;
+ virtual void bar(); // _ZN6dd63003barEv
+ virtual void foo(); // _ZN6dd63003fooEv
+ ~dd6300(); // tgen
+ dd6300(); // tgen
+};
+//SIG(-1 dd6300) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6300 ::bar(){vfunc_called(this, "_ZN6dd63003barEv");}
+void dd6300 ::foo(){vfunc_called(this, "_ZN6dd63003fooEv");}
+dd6300 ::~dd6300(){ note_dtor("dd6300", this);} // tgen
+dd6300 ::dd6300(){ note_ctor("dd6300", this);} // tgen
+
+static void Test_dd6300()
+{
+ extern Class_Descriptor cd_dd6300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6300, buf);
+ dd6300 *dp, &lv = *(dp=new (buf) dd6300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd6300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(16,12), "dd6300");
+ check_base_class_offset(lv, (cc300*), 0, "dd6300");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6300.d");
+ test_class_info(&lv, &cd_dd6300);
+ dp->~dd6300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6300(Test_dd6300, "dd6300", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6300C1Ev();
+extern void _ZN6dd6300D1Ev();
+Name_Map name_map_dd6300[] = {
+ NSPAIR(_ZN6dd6300C1Ev),
+ NSPAIR(_ZN6dd6300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+static Base_Class bases_dd6300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY vtc_dd6300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd6300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_dd6300[] = {
+ {&(_ZTV6dd6300[3]), 3,5},
+ {&(_tg__ZTV5cc300__6dd6300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+Class_Descriptor cd_dd6300 = { "dd6300", // class name
+ bases_dd6300, 3,
+ &(vtc_dd6300[0]), // expected_vtbl_contents
+ &(vtt_dd6300[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6300),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 ee06300 : dd6300 {
+ int e;
+ ~ee06300(); // tgen
+ ee06300(); // tgen
+};
+//SIG(1 ee06300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06300 ::~ee06300(){ note_dtor("ee06300", this);} // tgen
+ee06300 ::ee06300(){ note_ctor("ee06300", this);} // tgen
+
+static void Test_ee06300()
+{
+ extern Class_Descriptor cd_ee06300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06300, buf);
+ ee06300 *dp, &lv = *(dp=new (buf) ee06300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee06300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd6300*), ABISELECT(20,16), "ee06300");
+ check_base_class_offset(lv, (cc300*)(dd6300*), 0, "ee06300");
+ check_base_class_offset(lv, (dd6300*), 0, "ee06300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06300.e");
+ test_class_info(&lv, &cd_ee06300);
+ dp->~ee06300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06300(Test_ee06300, "ee06300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06300C1Ev();
+extern void _ZN7ee06300D1Ev();
+Name_Map name_map_ee06300[] = {
+ NSPAIR(_ZN7ee06300C1Ev),
+ NSPAIR(_ZN7ee06300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd6300;
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+static Base_Class bases_ee06300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee06300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY vtc_ee06300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee06300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6300__7ee06300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd6300__7ee06300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee06300[] = {
+ {&(_ZTV7ee06300[3]), 3,5},
+ {&(_tg__ZTV6dd6300__7ee06300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd6300__7ee06300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06300[];
+extern VTBL_ENTRY _ZTV7ee06300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06300[];
+Class_Descriptor cd_ee06300 = { "ee06300", // class name
+ bases_ee06300, 4,
+ &(vtc_ee06300[0]), // expected_vtbl_contents
+ &(vtt_ee06300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06300),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 ee16300 : virtual dd6300 {
+ int e;
+ ~ee16300(); // tgen
+ ee16300(); // tgen
+};
+//SIG(1 ee16300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16300 ::~ee16300(){ note_dtor("ee16300", this);} // tgen
+ee16300 ::ee16300(){ note_ctor("ee16300", this);} // tgen
+
+static void Test_ee16300()
+{
+ extern Class_Descriptor cd_ee16300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16300, buf);
+ ee16300 *dp, &lv = *(dp=new (buf) ee16300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee16300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd6300*), ABISELECT(32,20), "ee16300");
+ check_base_class_offset(lv, (cc300*)(dd6300*), ABISELECT(16,8), "ee16300");
+ check_base_class_offset(lv, (dd6300*), ABISELECT(16,8), "ee16300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16300.e");
+ test_class_info(&lv, &cd_ee16300);
+ dp->~ee16300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16300(Test_ee16300, "ee16300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16300C1Ev();
+extern void _ZN7ee16300D1Ev();
+Name_Map name_map_ee16300[] = {
+ NSPAIR(_ZN7ee16300C1Ev),
+ NSPAIR(_ZN7ee16300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd6300;
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+static Base_Class bases_ee16300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6300, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY vtc_ee16300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16300[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6300__7ee16300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd6300__7ee16300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee16300[] = {
+ {&(_ZTV7ee16300[4]), 4,11},
+ {&(_ZTV7ee16300[9]), 9,11},
+ {&(_tg__ZTV6dd6300__7ee16300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd6300__7ee16300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16300[];
+extern VTBL_ENTRY _ZTV7ee16300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16300[];
+Class_Descriptor cd_ee16300 = { "ee16300", // class name
+ bases_ee16300, 4,
+ &(vtc_ee16300[0]), // expected_vtbl_contents
+ &(vtt_ee16300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16300),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 ee26300 : dd6300 {
+ int e;
+ virtual void foo(); // _ZN7ee263003fooEv
+ ~ee26300(); // tgen
+ ee26300(); // tgen
+};
+//SIG(1 ee26300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26300 ::foo(){vfunc_called(this, "_ZN7ee263003fooEv");}
+ee26300 ::~ee26300(){ note_dtor("ee26300", this);} // tgen
+ee26300 ::ee26300(){ note_ctor("ee26300", this);} // tgen
+
+static void Test_ee26300()
+{
+ extern Class_Descriptor cd_ee26300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26300, buf);
+ ee26300 *dp, &lv = *(dp=new (buf) ee26300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee26300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd6300*), ABISELECT(20,16), "ee26300");
+ check_base_class_offset(lv, (cc300*)(dd6300*), 0, "ee26300");
+ check_base_class_offset(lv, (dd6300*), 0, "ee26300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26300.e");
+ test_class_info(&lv, &cd_ee26300);
+ dp->~ee26300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26300(Test_ee26300, "ee26300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26300C1Ev();
+extern void _ZN7ee26300D1Ev();
+Name_Map name_map_ee26300[] = {
+ NSPAIR(_ZN7ee26300C1Ev),
+ NSPAIR(_ZN7ee26300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd6300;
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+static Base_Class bases_ee26300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26300[];
+extern void _ZN7ee263003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY vtc_ee26300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26300[0]),
+ (VTBL_ENTRY)&_ZN7ee263003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee26300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6300__7ee26300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd6300__7ee26300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee26300[] = {
+ {&(_ZTV7ee26300[3]), 3,5},
+ {&(_tg__ZTV6dd6300__7ee26300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd6300__7ee26300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26300[];
+extern VTBL_ENTRY _ZTV7ee26300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26300[];
+Class_Descriptor cd_ee26300 = { "ee26300", // class name
+ bases_ee26300, 4,
+ &(vtc_ee26300[0]), // expected_vtbl_contents
+ &(vtt_ee26300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26300),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 ee36300 : virtual dd6300 {
+ int e;
+ virtual void foo(); // _ZN7ee363003fooEv
+ ~ee36300(); // tgen
+ ee36300(); // tgen
+};
+//SIG(1 ee36300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36300 ::foo(){vfunc_called(this, "_ZN7ee363003fooEv");}
+ee36300 ::~ee36300(){ note_dtor("ee36300", this);} // tgen
+ee36300 ::ee36300(){ note_ctor("ee36300", this);} // tgen
+
+static void Test_ee36300()
+{
+ extern Class_Descriptor cd_ee36300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36300, buf);
+ ee36300 *dp, &lv = *(dp=new (buf) ee36300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee36300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd6300*), ABISELECT(32,20), "ee36300");
+ check_base_class_offset(lv, (cc300*)(dd6300*), ABISELECT(16,8), "ee36300");
+ check_base_class_offset(lv, (dd6300*), ABISELECT(16,8), "ee36300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36300.e");
+ test_class_info(&lv, &cd_ee36300);
+ dp->~ee36300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36300(Test_ee36300, "ee36300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36300C1Ev();
+extern void _ZN7ee36300D1Ev();
+Name_Map name_map_ee36300[] = {
+ NSPAIR(_ZN7ee36300C1Ev),
+ NSPAIR(_ZN7ee36300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd6300;
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+static Base_Class bases_ee36300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36300[];
+extern void _ZN7ee363003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363003fooEv,_ZTv0_n16_N7ee363003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363003fooEv,_ZThn8_N7ee363003fooEv)() __attribute__((weak));
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY vtc_ee36300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36300[0]),
+ (VTBL_ENTRY)&_ZN7ee363003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363003fooEv,_ZTv0_n16_N7ee363003fooEv),
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6300__7ee36300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd6300__7ee36300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee36300[] = {
+ {&(_ZTV7ee36300[4]), 4,12},
+ {&(_ZTV7ee36300[10]), 10,12},
+ {&(_tg__ZTV6dd6300__7ee36300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd6300__7ee36300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36300[];
+extern VTBL_ENTRY _ZTV7ee36300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36300[];
+static VTBL_ENTRY alt_thunk_names91[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363003fooEv,_ZTv0_n16_N7ee363003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363003fooEv,_ZThn8_N7ee363003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36300 = { "ee36300", // class name
+ bases_ee36300, 4,
+ &(vtc_ee36300[0]), // expected_vtbl_contents
+ &(vtt_ee36300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36300),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names91,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46300 : dd6300 {
+ int e;
+ virtual void bar(); // _ZN7ee463003barEv
+ ~ee46300(); // tgen
+ ee46300(); // tgen
+};
+//SIG(1 ee46300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46300 ::bar(){vfunc_called(this, "_ZN7ee463003barEv");}
+ee46300 ::~ee46300(){ note_dtor("ee46300", this);} // tgen
+ee46300 ::ee46300(){ note_ctor("ee46300", this);} // tgen
+
+static void Test_ee46300()
+{
+ extern Class_Descriptor cd_ee46300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46300, buf);
+ ee46300 *dp, &lv = *(dp=new (buf) ee46300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee46300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd6300*), ABISELECT(20,16), "ee46300");
+ check_base_class_offset(lv, (cc300*)(dd6300*), 0, "ee46300");
+ check_base_class_offset(lv, (dd6300*), 0, "ee46300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46300.e");
+ test_class_info(&lv, &cd_ee46300);
+ dp->~ee46300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46300(Test_ee46300, "ee46300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46300C1Ev();
+extern void _ZN7ee46300D1Ev();
+Name_Map name_map_ee46300[] = {
+ NSPAIR(_ZN7ee46300C1Ev),
+ NSPAIR(_ZN7ee46300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd6300;
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+static Base_Class bases_ee46300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN7ee463003barEv();
+static VTBL_ENTRY vtc_ee46300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN7ee463003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee46300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6300__7ee46300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd6300__7ee46300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee46300[] = {
+ {&(_ZTV7ee46300[3]), 3,5},
+ {&(_tg__ZTV6dd6300__7ee46300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd6300__7ee46300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46300[];
+extern VTBL_ENTRY _ZTV7ee46300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46300[];
+Class_Descriptor cd_ee46300 = { "ee46300", // class name
+ bases_ee46300, 4,
+ &(vtc_ee46300[0]), // expected_vtbl_contents
+ &(vtt_ee46300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46300),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 ee56300 : virtual dd6300 {
+ int e;
+ virtual void bar(); // _ZN7ee563003barEv
+ ~ee56300(); // tgen
+ ee56300(); // tgen
+};
+//SIG(1 ee56300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56300 ::bar(){vfunc_called(this, "_ZN7ee563003barEv");}
+ee56300 ::~ee56300(){ note_dtor("ee56300", this);} // tgen
+ee56300 ::ee56300(){ note_ctor("ee56300", this);} // tgen
+
+static void Test_ee56300()
+{
+ extern Class_Descriptor cd_ee56300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56300, buf);
+ ee56300 *dp, &lv = *(dp=new (buf) ee56300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee56300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd6300*), ABISELECT(32,20), "ee56300");
+ check_base_class_offset(lv, (cc300*)(dd6300*), ABISELECT(16,8), "ee56300");
+ check_base_class_offset(lv, (dd6300*), ABISELECT(16,8), "ee56300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56300.e");
+ test_class_info(&lv, &cd_ee56300);
+ dp->~ee56300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56300(Test_ee56300, "ee56300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56300C1Ev();
+extern void _ZN7ee56300D1Ev();
+Name_Map name_map_ee56300[] = {
+ NSPAIR(_ZN7ee56300C1Ev),
+ NSPAIR(_ZN7ee56300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd6300;
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+static Base_Class bases_ee56300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56300[];
+extern void _ZN7ee563003barEv();
+extern void _ZN6dd63003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563003barEv,_ZTv0_n20_N7ee563003barEv)();
+extern void ABISELECT(_ZThn16_N7ee563003barEv,_ZThn8_N7ee563003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56300[0]),
+ (VTBL_ENTRY)&_ZN7ee563003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563003barEv,_ZTv0_n20_N7ee563003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6300__7ee56300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd6300__7ee56300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee56300[] = {
+ {&(_ZTV7ee56300[4]), 4,12},
+ {&(_ZTV7ee56300[10]), 10,12},
+ {&(_tg__ZTV6dd6300__7ee56300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd6300__7ee56300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56300[];
+extern VTBL_ENTRY _ZTV7ee56300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56300[];
+static VTBL_ENTRY alt_thunk_names92[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563003barEv,_ZTv0_n20_N7ee563003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563003barEv,_ZThn8_N7ee563003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56300 = { "ee56300", // class name
+ bases_ee56300, 4,
+ &(vtc_ee56300[0]), // expected_vtbl_contents
+ &(vtt_ee56300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56300),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names92,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66300 : dd6300 {
+ int e;
+ virtual void foo(); // _ZN7ee663003fooEv
+ virtual void bar(); // _ZN7ee663003barEv
+ ~ee66300(); // tgen
+ ee66300(); // tgen
+};
+//SIG(1 ee66300) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66300 ::foo(){vfunc_called(this, "_ZN7ee663003fooEv");}
+void ee66300 ::bar(){vfunc_called(this, "_ZN7ee663003barEv");}
+ee66300 ::~ee66300(){ note_dtor("ee66300", this);} // tgen
+ee66300 ::ee66300(){ note_ctor("ee66300", this);} // tgen
+
+static void Test_ee66300()
+{
+ extern Class_Descriptor cd_ee66300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66300, buf);
+ ee66300 *dp, &lv = *(dp=new (buf) ee66300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee66300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd6300*), ABISELECT(20,16), "ee66300");
+ check_base_class_offset(lv, (cc300*)(dd6300*), 0, "ee66300");
+ check_base_class_offset(lv, (dd6300*), 0, "ee66300");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66300.e");
+ test_class_info(&lv, &cd_ee66300);
+ dp->~ee66300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66300(Test_ee66300, "ee66300", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66300C1Ev();
+extern void _ZN7ee66300D1Ev();
+Name_Map name_map_ee66300[] = {
+ NSPAIR(_ZN7ee66300C1Ev),
+ NSPAIR(_ZN7ee66300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd6300;
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+static Base_Class bases_ee66300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66300[];
+extern void _ZN7ee663003fooEv();
+extern void _ZN7ee663003barEv();
+static VTBL_ENTRY vtc_ee66300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66300[0]),
+ (VTBL_ENTRY)&_ZN7ee663003fooEv,
+ (VTBL_ENTRY)&_ZN7ee663003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee66300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6300__7ee66300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd6300__7ee66300[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee66300[] = {
+ {&(_ZTV7ee66300[3]), 3,5},
+ {&(_tg__ZTV6dd6300__7ee66300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd6300__7ee66300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66300[];
+extern VTBL_ENTRY _ZTV7ee66300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66300[];
+Class_Descriptor cd_ee66300 = { "ee66300", // class name
+ bases_ee66300, 4,
+ &(vtc_ee66300[0]), // expected_vtbl_contents
+ &(vtt_ee66300[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66300),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66300),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 ee76300 : virtual dd6300 {
+ int e;
+ virtual void foo(); // _ZN7ee763003fooEv
+ virtual void bar(); // _ZN7ee763003barEv
+ ~ee76300(); // tgen
+ ee76300(); // tgen
+};
+//SIG(1 ee76300) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76300 ::foo(){vfunc_called(this, "_ZN7ee763003fooEv");}
+void ee76300 ::bar(){vfunc_called(this, "_ZN7ee763003barEv");}
+ee76300 ::~ee76300(){ note_dtor("ee76300", this);} // tgen
+ee76300 ::ee76300(){ note_ctor("ee76300", this);} // tgen
+
+static void Test_ee76300()
+{
+ extern Class_Descriptor cd_ee76300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76300, buf);
+ ee76300 *dp, &lv = *(dp=new (buf) ee76300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee76300");
+ check_base_class_offset(lv, (bb00*)(cc300*)(dd6300*), ABISELECT(32,20), "ee76300");
+ check_base_class_offset(lv, (cc300*)(dd6300*), ABISELECT(16,8), "ee76300");
+ check_base_class_offset(lv, (dd6300*), ABISELECT(16,8), "ee76300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76300.e");
+ test_class_info(&lv, &cd_ee76300);
+ dp->~ee76300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76300(Test_ee76300, "ee76300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76300C1Ev();
+extern void _ZN7ee76300D1Ev();
+Name_Map name_map_ee76300[] = {
+ NSPAIR(_ZN7ee76300C1Ev),
+ NSPAIR(_ZN7ee76300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd6300;
+extern VTBL_ENTRY _ZTI6dd6300[];
+extern VTBL_ENTRY _ZTV6dd6300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6300[];
+static Base_Class bases_ee76300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76300[];
+extern void _ZN7ee763003fooEv();
+extern void _ZN7ee763003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763003fooEv,_ZTv0_n16_N7ee763003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763003fooEv,_ZThn8_N7ee763003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763003barEv,_ZTv0_n20_N7ee763003barEv)();
+extern void ABISELECT(_ZThn16_N7ee763003barEv,_ZThn8_N7ee763003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76300[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76300[0]),
+ (VTBL_ENTRY)&_ZN7ee763003fooEv,
+ (VTBL_ENTRY)&_ZN7ee763003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763003fooEv,_ZTv0_n16_N7ee763003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763003barEv,_ZTv0_n20_N7ee763003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76300[];
+extern void _ZN6dd63003fooEv();
+extern void _ZN6dd63003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6300__7ee76300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6300[0]),
+ (VTBL_ENTRY)&_ZN6dd63003fooEv,
+ (VTBL_ENTRY)&_ZN6dd63003barEv,
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3006dd6300__7ee76300[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee76300[] = {
+ {&(_ZTV7ee76300[4]), 4,13},
+ {&(_ZTV7ee76300[11]), 11,13},
+ {&(_tg__ZTV6dd6300__7ee76300[3]), 3,5},
+ {&(_tg__ZTV5cc3006dd6300__7ee76300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76300[];
+extern VTBL_ENTRY _ZTV7ee76300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76300[];
+static VTBL_ENTRY alt_thunk_names93[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763003barEv,_ZTv0_n20_N7ee763003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763003barEv,_ZThn8_N7ee763003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763003fooEv,_ZTv0_n16_N7ee763003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763003fooEv,_ZThn8_N7ee763003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76300 = { "ee76300", // class name
+ bases_ee76300, 4,
+ &(vtc_ee76300[0]), // expected_vtbl_contents
+ &(vtt_ee76300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76300),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76300),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names93,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7300 : virtual cc300 {
+ int d;
+ virtual void bar(); // _ZN6dd73003barEv
+ virtual void foo(); // _ZN6dd73003fooEv
+ ~dd7300(); // tgen
+ dd7300(); // tgen
+};
+//SIG(-1 dd7300) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7300 ::bar(){vfunc_called(this, "_ZN6dd73003barEv");}
+void dd7300 ::foo(){vfunc_called(this, "_ZN6dd73003fooEv");}
+dd7300 ::~dd7300(){ note_dtor("dd7300", this);} // tgen
+dd7300 ::dd7300(){ note_ctor("dd7300", this);} // tgen
+
+static void Test_dd7300()
+{
+ extern Class_Descriptor cd_dd7300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7300, buf);
+ dd7300 *dp, &lv = *(dp=new (buf) dd7300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd7300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,16), "dd7300");
+ check_base_class_offset(lv, (cc300*), ABISELECT(16,8), "dd7300");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7300.d");
+ test_class_info(&lv, &cd_dd7300);
+ dp->~dd7300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7300(Test_dd7300, "dd7300", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7300C1Ev();
+extern void _ZN6dd7300D1Ev();
+Name_Map name_map_dd7300[] = {
+ NSPAIR(_ZN6dd7300C1Ev),
+ NSPAIR(_ZN6dd7300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+static Base_Class bases_dd7300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_dd7300[] = {
+ {&(_ZTV6dd7300[4]), 4,11},
+ {&(_ZTV6dd7300[10]), 10,11},
+ {&(_tg__ZTV5cc300__6dd7300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static VTBL_ENTRY alt_thunk_names94[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7300 = { "dd7300", // class name
+ bases_dd7300, 3,
+ &(vtc_dd7300[0]), // expected_vtbl_contents
+ &(vtt_dd7300[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7300),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names94,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07300 : dd7300 {
+ int e;
+ ~ee07300(); // tgen
+ ee07300(); // tgen
+};
+//SIG(1 ee07300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07300 ::~ee07300(){ note_dtor("ee07300", this);} // tgen
+ee07300 ::ee07300(){ note_ctor("ee07300", this);} // tgen
+
+static void Test_ee07300()
+{
+ extern Class_Descriptor cd_ee07300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07300, buf);
+ ee07300 *dp, &lv = *(dp=new (buf) ee07300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee07300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee07300");
+ check_base_class_offset(lv, (cc300*)(dd7300*), ABISELECT(16,12), "ee07300");
+ check_base_class_offset(lv, (dd7300*), 0, "ee07300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07300.e");
+ test_class_info(&lv, &cd_ee07300);
+ dp->~ee07300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07300(Test_ee07300, "ee07300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07300C1Ev();
+extern void _ZN7ee07300D1Ev();
+Name_Map name_map_ee07300[] = {
+ NSPAIR(_ZN7ee07300C1Ev),
+ NSPAIR(_ZN7ee07300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd7300;
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static Base_Class bases_ee07300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7300__7ee07300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300__7ee07300[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee07300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee07300[] = {
+ {&(_ZTV7ee07300[4]), 4,11},
+ {&(_tg__ZTV6dd7300__7ee07300[4]), 4,6},
+ {&(_tg__ZTV5cc300__6dd7300__7ee07300[4]), 4,5},
+ {&(_ZTV7ee07300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee07300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07300[];
+extern VTBL_ENTRY _ZTV7ee07300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07300[];
+static VTBL_ENTRY alt_thunk_names95[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07300 = { "ee07300", // class name
+ bases_ee07300, 4,
+ &(vtc_ee07300[0]), // expected_vtbl_contents
+ &(vtt_ee07300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names95,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17300 : virtual dd7300 {
+ int e;
+ ~ee17300(); // tgen
+ ee17300(); // tgen
+};
+//SIG(1 ee17300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17300 ::~ee17300(){ note_dtor("ee17300", this);} // tgen
+ee17300 ::ee17300(){ note_ctor("ee17300", this);} // tgen
+
+static void Test_ee17300()
+{
+ extern Class_Descriptor cd_ee17300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17300, buf);
+ ee17300 *dp, &lv = *(dp=new (buf) ee17300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee17300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee17300");
+ check_base_class_offset(lv, (cc300*)(dd7300*), ABISELECT(32,16), "ee17300");
+ check_base_class_offset(lv, (dd7300*), ABISELECT(16,8), "ee17300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17300.e");
+ test_class_info(&lv, &cd_ee17300);
+ dp->~ee17300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17300(Test_ee17300, "ee17300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17300C1Ev();
+extern void _ZN7ee17300D1Ev();
+Name_Map name_map_ee17300[] = {
+ NSPAIR(_ZN7ee17300C1Ev),
+ NSPAIR(_ZN7ee17300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd7300;
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static Base_Class bases_ee17300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7300, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17300[0]),
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7300__7ee17300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300__7ee17300[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee17300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee17300[] = {
+ {&(_ZTV7ee17300[5]), 5,18},
+ {&(_ZTV7ee17300[11]), 11,18},
+ {&(_ZTV7ee17300[17]), 17,18},
+ {&(_tg__ZTV6dd7300__7ee17300[4]), 4,6},
+ {&(_tg__ZTV5cc300__6dd7300__7ee17300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee17300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17300[];
+extern VTBL_ENTRY _ZTV7ee17300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17300[];
+static VTBL_ENTRY alt_thunk_names96[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17300 = { "ee17300", // class name
+ bases_ee17300, 4,
+ &(vtc_ee17300[0]), // expected_vtbl_contents
+ &(vtt_ee17300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17300),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names96,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27300 : dd7300 {
+ int e;
+ virtual void foo(); // _ZN7ee273003fooEv
+ ~ee27300(); // tgen
+ ee27300(); // tgen
+};
+//SIG(1 ee27300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27300 ::foo(){vfunc_called(this, "_ZN7ee273003fooEv");}
+ee27300 ::~ee27300(){ note_dtor("ee27300", this);} // tgen
+ee27300 ::ee27300(){ note_ctor("ee27300", this);} // tgen
+
+static void Test_ee27300()
+{
+ extern Class_Descriptor cd_ee27300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27300, buf);
+ ee27300 *dp, &lv = *(dp=new (buf) ee27300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee27300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee27300");
+ check_base_class_offset(lv, (cc300*)(dd7300*), ABISELECT(16,12), "ee27300");
+ check_base_class_offset(lv, (dd7300*), 0, "ee27300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27300.e");
+ test_class_info(&lv, &cd_ee27300);
+ dp->~ee27300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27300(Test_ee27300, "ee27300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27300C1Ev();
+extern void _ZN7ee27300D1Ev();
+Name_Map name_map_ee27300[] = {
+ NSPAIR(_ZN7ee27300C1Ev),
+ NSPAIR(_ZN7ee27300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd7300;
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static Base_Class bases_ee27300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN7ee273003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273003fooEv,_ZTv0_n16_N7ee273003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273003fooEv,_ZThn12_N7ee273003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN7ee273003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273003fooEv,_ZTv0_n16_N7ee273003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7300__7ee27300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300__7ee27300[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee27300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee27300[] = {
+ {&(_ZTV7ee27300[4]), 4,11},
+ {&(_tg__ZTV6dd7300__7ee27300[4]), 4,6},
+ {&(_tg__ZTV5cc300__6dd7300__7ee27300[4]), 4,5},
+ {&(_ZTV7ee27300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee27300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27300[];
+extern VTBL_ENTRY _ZTV7ee27300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27300[];
+static VTBL_ENTRY alt_thunk_names97[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273003fooEv,_ZTv0_n16_N7ee273003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273003fooEv,_ZThn12_N7ee273003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27300 = { "ee27300", // class name
+ bases_ee27300, 4,
+ &(vtc_ee27300[0]), // expected_vtbl_contents
+ &(vtt_ee27300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names97,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37300 : virtual dd7300 {
+ int e;
+ virtual void foo(); // _ZN7ee373003fooEv
+ ~ee37300(); // tgen
+ ee37300(); // tgen
+};
+//SIG(1 ee37300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37300 ::foo(){vfunc_called(this, "_ZN7ee373003fooEv");}
+ee37300 ::~ee37300(){ note_dtor("ee37300", this);} // tgen
+ee37300 ::ee37300(){ note_ctor("ee37300", this);} // tgen
+
+static void Test_ee37300()
+{
+ extern Class_Descriptor cd_ee37300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37300, buf);
+ ee37300 *dp, &lv = *(dp=new (buf) ee37300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee37300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee37300");
+ check_base_class_offset(lv, (cc300*)(dd7300*), ABISELECT(32,16), "ee37300");
+ check_base_class_offset(lv, (dd7300*), ABISELECT(16,8), "ee37300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37300.e");
+ test_class_info(&lv, &cd_ee37300);
+ dp->~ee37300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37300(Test_ee37300, "ee37300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37300C1Ev();
+extern void _ZN7ee37300D1Ev();
+Name_Map name_map_ee37300[] = {
+ NSPAIR(_ZN7ee37300C1Ev),
+ NSPAIR(_ZN7ee37300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd7300;
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static Base_Class bases_ee37300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37300[];
+extern void _ZN7ee373003fooEv();
+extern void _ZN6dd73003barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373003fooEv,_ZTv0_n24_N7ee373003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373003fooEv,_ZThn8_N7ee373003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373003fooEv,_ZTv0_n16_N7ee373003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373003fooEv,_ZThn16_N7ee373003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37300[0]),
+ (VTBL_ENTRY)&_ZN7ee373003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373003fooEv,_ZTv0_n24_N7ee373003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373003fooEv,_ZTv0_n16_N7ee373003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7300__7ee37300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300__7ee37300[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee37300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee37300[] = {
+ {&(_ZTV7ee37300[5]), 5,19},
+ {&(_ZTV7ee37300[12]), 12,19},
+ {&(_ZTV7ee37300[18]), 18,19},
+ {&(_tg__ZTV6dd7300__7ee37300[4]), 4,6},
+ {&(_tg__ZTV5cc300__6dd7300__7ee37300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee37300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37300[];
+extern VTBL_ENTRY _ZTV7ee37300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37300[];
+static VTBL_ENTRY alt_thunk_names98[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373003fooEv,_ZTv0_n16_N7ee373003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373003fooEv,_ZThn16_N7ee373003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373003fooEv,_ZTv0_n24_N7ee373003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373003fooEv,_ZThn8_N7ee373003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37300 = { "ee37300", // class name
+ bases_ee37300, 4,
+ &(vtc_ee37300[0]), // expected_vtbl_contents
+ &(vtt_ee37300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37300),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names98,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47300 : dd7300 {
+ int e;
+ virtual void bar(); // _ZN7ee473003barEv
+ ~ee47300(); // tgen
+ ee47300(); // tgen
+};
+//SIG(1 ee47300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47300 ::bar(){vfunc_called(this, "_ZN7ee473003barEv");}
+ee47300 ::~ee47300(){ note_dtor("ee47300", this);} // tgen
+ee47300 ::ee47300(){ note_ctor("ee47300", this);} // tgen
+
+static void Test_ee47300()
+{
+ extern Class_Descriptor cd_ee47300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47300, buf);
+ ee47300 *dp, &lv = *(dp=new (buf) ee47300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee47300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee47300");
+ check_base_class_offset(lv, (cc300*)(dd7300*), ABISELECT(16,12), "ee47300");
+ check_base_class_offset(lv, (dd7300*), 0, "ee47300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47300.e");
+ test_class_info(&lv, &cd_ee47300);
+ dp->~ee47300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47300(Test_ee47300, "ee47300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47300C1Ev();
+extern void _ZN7ee47300D1Ev();
+Name_Map name_map_ee47300[] = {
+ NSPAIR(_ZN7ee47300C1Ev),
+ NSPAIR(_ZN7ee47300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd7300;
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static Base_Class bases_ee47300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47300[];
+extern void _ZN7ee473003barEv();
+extern void _ZN6dd73003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47300[0]),
+ (VTBL_ENTRY)&_ZN7ee473003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7300__7ee47300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300__7ee47300[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee47300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee47300[] = {
+ {&(_ZTV7ee47300[4]), 4,11},
+ {&(_tg__ZTV6dd7300__7ee47300[4]), 4,6},
+ {&(_tg__ZTV5cc300__6dd7300__7ee47300[4]), 4,5},
+ {&(_ZTV7ee47300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee47300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47300[];
+extern VTBL_ENTRY _ZTV7ee47300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47300[];
+static VTBL_ENTRY alt_thunk_names99[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47300 = { "ee47300", // class name
+ bases_ee47300, 4,
+ &(vtc_ee47300[0]), // expected_vtbl_contents
+ &(vtt_ee47300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names99,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57300 : virtual dd7300 {
+ int e;
+ virtual void bar(); // _ZN7ee573003barEv
+ ~ee57300(); // tgen
+ ee57300(); // tgen
+};
+//SIG(1 ee57300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57300 ::bar(){vfunc_called(this, "_ZN7ee573003barEv");}
+ee57300 ::~ee57300(){ note_dtor("ee57300", this);} // tgen
+ee57300 ::ee57300(){ note_ctor("ee57300", this);} // tgen
+
+static void Test_ee57300()
+{
+ extern Class_Descriptor cd_ee57300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57300, buf);
+ ee57300 *dp, &lv = *(dp=new (buf) ee57300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee57300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee57300");
+ check_base_class_offset(lv, (cc300*)(dd7300*), ABISELECT(32,16), "ee57300");
+ check_base_class_offset(lv, (dd7300*), ABISELECT(16,8), "ee57300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57300.e");
+ test_class_info(&lv, &cd_ee57300);
+ dp->~ee57300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57300(Test_ee57300, "ee57300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57300C1Ev();
+extern void _ZN7ee57300D1Ev();
+Name_Map name_map_ee57300[] = {
+ NSPAIR(_ZN7ee57300C1Ev),
+ NSPAIR(_ZN7ee57300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd7300;
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static Base_Class bases_ee57300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7300, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57300[];
+extern void _ZN7ee573003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573003barEv,_ZTv0_n20_N7ee573003barEv)();
+extern void ABISELECT(_ZThn16_N7ee573003barEv,_ZThn8_N7ee573003barEv)() __attribute__((weak));
+extern void _ZN6dd73003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57300[0]),
+ (VTBL_ENTRY)&_ZN7ee573003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573003barEv,_ZTv0_n20_N7ee573003barEv),
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7300__7ee57300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300__7ee57300[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee57300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee57300[] = {
+ {&(_ZTV7ee57300[5]), 5,19},
+ {&(_ZTV7ee57300[12]), 12,19},
+ {&(_ZTV7ee57300[18]), 18,19},
+ {&(_tg__ZTV6dd7300__7ee57300[4]), 4,6},
+ {&(_tg__ZTV5cc300__6dd7300__7ee57300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee57300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57300[];
+extern VTBL_ENTRY _ZTV7ee57300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57300[];
+static VTBL_ENTRY alt_thunk_names100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573003barEv,_ZTv0_n20_N7ee573003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573003barEv,_ZThn8_N7ee573003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57300 = { "ee57300", // class name
+ bases_ee57300, 4,
+ &(vtc_ee57300[0]), // expected_vtbl_contents
+ &(vtt_ee57300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57300),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names100,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67300 : dd7300 {
+ int e;
+ virtual void foo(); // _ZN7ee673003fooEv
+ virtual void bar(); // _ZN7ee673003barEv
+ ~ee67300(); // tgen
+ ee67300(); // tgen
+};
+//SIG(1 ee67300) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67300 ::foo(){vfunc_called(this, "_ZN7ee673003fooEv");}
+void ee67300 ::bar(){vfunc_called(this, "_ZN7ee673003barEv");}
+ee67300 ::~ee67300(){ note_dtor("ee67300", this);} // tgen
+ee67300 ::ee67300(){ note_ctor("ee67300", this);} // tgen
+
+static void Test_ee67300()
+{
+ extern Class_Descriptor cd_ee67300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67300, buf);
+ ee67300 *dp, &lv = *(dp=new (buf) ee67300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee67300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(28,20), "ee67300");
+ check_base_class_offset(lv, (cc300*)(dd7300*), ABISELECT(16,12), "ee67300");
+ check_base_class_offset(lv, (dd7300*), 0, "ee67300");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67300.e");
+ test_class_info(&lv, &cd_ee67300);
+ dp->~ee67300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67300(Test_ee67300, "ee67300", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67300C1Ev();
+extern void _ZN7ee67300D1Ev();
+Name_Map name_map_ee67300[] = {
+ NSPAIR(_ZN7ee67300C1Ev),
+ NSPAIR(_ZN7ee67300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd7300;
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static Base_Class bases_ee67300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7300, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67300[];
+extern void _ZN7ee673003barEv();
+extern void _ZN7ee673003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673003fooEv,_ZTv0_n16_N7ee673003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673003fooEv,_ZThn12_N7ee673003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67300[0]),
+ (VTBL_ENTRY)&_ZN7ee673003barEv,
+ (VTBL_ENTRY)&_ZN7ee673003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673003fooEv,_ZTv0_n16_N7ee673003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7300__7ee67300[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300__7ee67300[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee67300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee67300[] = {
+ {&(_ZTV7ee67300[4]), 4,11},
+ {&(_tg__ZTV6dd7300__7ee67300[4]), 4,6},
+ {&(_tg__ZTV5cc300__6dd7300__7ee67300[4]), 4,5},
+ {&(_ZTV7ee67300[10]), 10,11},
+ {&(_tg__ZTV5cc300__7ee67300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67300[];
+extern VTBL_ENTRY _ZTV7ee67300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67300[];
+static VTBL_ENTRY alt_thunk_names101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn12_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673003fooEv,_ZTv0_n16_N7ee673003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673003fooEv,_ZThn12_N7ee673003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67300 = { "ee67300", // class name
+ bases_ee67300, 4,
+ &(vtc_ee67300[0]), // expected_vtbl_contents
+ &(vtt_ee67300[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67300),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67300),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67300),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names101,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77300 : virtual dd7300 {
+ int e;
+ virtual void foo(); // _ZN7ee773003fooEv
+ virtual void bar(); // _ZN7ee773003barEv
+ ~ee77300(); // tgen
+ ee77300(); // tgen
+};
+//SIG(1 ee77300) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77300 ::foo(){vfunc_called(this, "_ZN7ee773003fooEv");}
+void ee77300 ::bar(){vfunc_called(this, "_ZN7ee773003barEv");}
+ee77300 ::~ee77300(){ note_dtor("ee77300", this);} // tgen
+ee77300 ::ee77300(){ note_ctor("ee77300", this);} // tgen
+
+static void Test_ee77300()
+{
+ extern Class_Descriptor cd_ee77300;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77300, buf);
+ ee77300 *dp, &lv = *(dp=new (buf) ee77300());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77300)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77300)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee77300");
+ check_base_class_offset(lv, (bb00*)(cc300*), ABISELECT(44,24), "ee77300");
+ check_base_class_offset(lv, (cc300*)(dd7300*), ABISELECT(32,16), "ee77300");
+ check_base_class_offset(lv, (dd7300*), ABISELECT(16,8), "ee77300");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77300.e");
+ test_class_info(&lv, &cd_ee77300);
+ dp->~ee77300();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77300(Test_ee77300, "ee77300", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77300C1Ev();
+extern void _ZN7ee77300D1Ev();
+Name_Map name_map_ee77300[] = {
+ NSPAIR(_ZN7ee77300C1Ev),
+ NSPAIR(_ZN7ee77300D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc300;
+extern VTBL_ENTRY _ZTI5cc300[];
+extern VTBL_ENTRY _ZTV5cc300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc300[];
+extern Class_Descriptor cd_dd7300;
+extern VTBL_ENTRY _ZTI6dd7300[];
+extern VTBL_ENTRY _ZTV6dd7300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7300[];
+static Base_Class bases_ee77300[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc300, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7300, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77300[];
+extern void _ZN7ee773003fooEv();
+extern void _ZN7ee773003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773003barEv,_ZTv0_n20_N7ee773003barEv)();
+extern void ABISELECT(_ZThn16_N7ee773003barEv,_ZThn8_N7ee773003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773003fooEv,_ZTv0_n24_N7ee773003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773003fooEv,_ZThn8_N7ee773003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773003fooEv,_ZTv0_n16_N7ee773003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773003fooEv,_ZThn16_N7ee773003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77300[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77300[0]),
+ (VTBL_ENTRY)&_ZN7ee773003fooEv,
+ (VTBL_ENTRY)&_ZN7ee773003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773003barEv,_ZTv0_n20_N7ee773003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773003fooEv,_ZTv0_n24_N7ee773003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773003fooEv,_ZTv0_n16_N7ee773003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77300[];
+extern void _ZN6dd73003barEv();
+extern void _ZN6dd73003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7300__7ee77300[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&_ZN6dd73003barEv,
+ (VTBL_ENTRY)&_ZN6dd73003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc300__6dd7300__7ee77300[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7300[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv),
+};
+extern void _ZN5cc3003fooEv();
+static VTBL_ENTRY _tg__ZTV5cc300__7ee77300[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc300[0]),
+ (VTBL_ENTRY)&_ZN5cc3003fooEv,
+};
+static VTT_ENTRY vtt_ee77300[] = {
+ {&(_ZTV7ee77300[5]), 5,20},
+ {&(_ZTV7ee77300[13]), 13,20},
+ {&(_ZTV7ee77300[19]), 19,20},
+ {&(_tg__ZTV6dd7300__7ee77300[4]), 4,6},
+ {&(_tg__ZTV5cc300__6dd7300__7ee77300[4]), 4,5},
+ {&(_tg__ZTV5cc300__7ee77300[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77300[];
+extern VTBL_ENTRY _ZTV7ee77300[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77300[];
+static VTBL_ENTRY alt_thunk_names102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73003fooEv,_ZTv0_n16_N6dd73003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73003fooEv,_ZThn8_N6dd73003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773003fooEv,_ZTv0_n16_N7ee773003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773003fooEv,_ZThn16_N7ee773003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773003fooEv,_ZTv0_n24_N7ee773003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773003fooEv,_ZThn8_N7ee773003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773003barEv,_ZTv0_n20_N7ee773003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773003barEv,_ZThn8_N7ee773003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77300 = { "ee77300", // class name
+ bases_ee77300, 4,
+ &(vtc_ee77300[0]), // expected_vtbl_contents
+ &(vtt_ee77300[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77300),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77300),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77300),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names102,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc400 : bb00 {
+ int c;
+ virtual void bar(); // _ZN5cc4003barEv
+ ~cc400(); // tgen
+ cc400(); // tgen
+};
+//SIG(-1 cc400) C1{ BC2{ BC3{ Fi} Fi} v1 Fi}
+
+
+void cc400 ::bar(){vfunc_called(this, "_ZN5cc4003barEv");}
+cc400 ::~cc400(){ note_dtor("cc400", this);} // tgen
+cc400 ::cc400(){ note_ctor("cc400", this);} // tgen
+
+static void Test_cc400()
+{
+ extern Class_Descriptor cd_cc400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc400, buf);
+ cc400 *dp, &lv = *(dp=new (buf) cc400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc400)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(8,4), "cc400");
+ check_base_class_offset(lv, (bb00*), ABISELECT(8,4), "cc400");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc400.c");
+ test_class_info(&lv, &cd_cc400);
+ dp->~cc400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc400(Test_cc400, "cc400", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc400C1Ev();
+extern void _ZN5cc400D1Ev();
+Name_Map name_map_cc400[] = {
+ NSPAIR(_ZN5cc400C1Ev),
+ NSPAIR(_ZN5cc400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc400[];
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_cc400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+Class_Descriptor cd_cc400 = { "cc400", // class name
+ bases_cc400, 2,
+ &(vtc_cc400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc400),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 0, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0400 : cc400 {
+ int d;
+ ~dd0400(); // tgen
+ dd0400(); // tgen
+};
+//SIG(-1 dd0400) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd0400 ::~dd0400(){ note_dtor("dd0400", this);} // tgen
+dd0400 ::dd0400(){ note_ctor("dd0400", this);} // tgen
+
+static void Test_dd0400()
+{
+ extern Class_Descriptor cd_dd0400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0400, buf);
+ dd0400 *dp, &lv = *(dp=new (buf) dd0400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(8,4), "dd0400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(8,4), "dd0400");
+ check_base_class_offset(lv, (cc400*), 0, "dd0400");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0400.d");
+ test_class_info(&lv, &cd_dd0400);
+ dp->~dd0400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0400(Test_dd0400, "dd0400", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0400C1Ev();
+extern void _ZN6dd0400D1Ev();
+Name_Map name_map_dd0400[] = {
+ NSPAIR(_ZN6dd0400C1Ev),
+ NSPAIR(_ZN6dd0400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+static Base_Class bases_dd0400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_dd0400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+Class_Descriptor cd_dd0400 = { "dd0400", // class name
+ bases_dd0400, 3,
+ &(vtc_dd0400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0400),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00400 : dd0400 {
+ int e;
+ ~ee00400(); // tgen
+ ee00400(); // tgen
+};
+//SIG(1 ee00400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00400 ::~ee00400(){ note_dtor("ee00400", this);} // tgen
+ee00400 ::ee00400(){ note_ctor("ee00400", this);} // tgen
+
+static void Test_ee00400()
+{
+ extern Class_Descriptor cd_ee00400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00400, buf);
+ ee00400 *dp, &lv = *(dp=new (buf) ee00400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd0400*), ABISELECT(8,4), "ee00400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd0400*), ABISELECT(8,4), "ee00400");
+ check_base_class_offset(lv, (cc400*)(dd0400*), 0, "ee00400");
+ check_base_class_offset(lv, (dd0400*), 0, "ee00400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00400.e");
+ test_class_info(&lv, &cd_ee00400);
+ dp->~ee00400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00400(Test_ee00400, "ee00400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00400C1Ev();
+extern void _ZN7ee00400D1Ev();
+Name_Map name_map_ee00400[] = {
+ NSPAIR(_ZN7ee00400C1Ev),
+ NSPAIR(_ZN7ee00400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd0400;
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+static Base_Class bases_ee00400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00400[];
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee00400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00400[];
+extern VTBL_ENTRY _ZTV7ee00400[];
+Class_Descriptor cd_ee00400 = { "ee00400", // class name
+ bases_ee00400, 4,
+ &(vtc_ee00400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00400),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10400 : virtual dd0400 {
+ int e;
+ ~ee10400(); // tgen
+ ee10400(); // tgen
+};
+//SIG(1 ee10400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10400 ::~ee10400(){ note_dtor("ee10400", this);} // tgen
+ee10400 ::ee10400(){ note_ctor("ee10400", this);} // tgen
+
+static void Test_ee10400()
+{
+ extern Class_Descriptor cd_ee10400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10400, buf);
+ ee10400 *dp, &lv = *(dp=new (buf) ee10400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd0400*), ABISELECT(24,12), "ee10400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd0400*), ABISELECT(24,12), "ee10400");
+ check_base_class_offset(lv, (cc400*)(dd0400*), ABISELECT(16,8), "ee10400");
+ check_base_class_offset(lv, (dd0400*), ABISELECT(16,8), "ee10400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10400.e");
+ test_class_info(&lv, &cd_ee10400);
+ dp->~ee10400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10400(Test_ee10400, "ee10400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10400C1Ev();
+extern void _ZN7ee10400D1Ev();
+Name_Map name_map_ee10400[] = {
+ NSPAIR(_ZN7ee10400C1Ev),
+ NSPAIR(_ZN7ee10400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd0400;
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+static Base_Class bases_ee10400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10400[];
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee10400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10400[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10400[];
+static VTT_ENTRY vtt_ee10400[] = {
+ {&(_ZTV7ee10400[3]), 3,7},
+ {&(_ZTV7ee10400[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10400[];
+extern VTBL_ENTRY _ZTV7ee10400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10400[];
+Class_Descriptor cd_ee10400 = { "ee10400", // class name
+ bases_ee10400, 4,
+ &(vtc_ee10400[0]), // expected_vtbl_contents
+ &(vtt_ee10400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10400),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20400 : dd0400 {
+ int e;
+ virtual void foo(); // _ZN7ee204003fooEv
+ ~ee20400(); // tgen
+ ee20400(); // tgen
+};
+//SIG(1 ee20400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20400 ::foo(){vfunc_called(this, "_ZN7ee204003fooEv");}
+ee20400 ::~ee20400(){ note_dtor("ee20400", this);} // tgen
+ee20400 ::ee20400(){ note_ctor("ee20400", this);} // tgen
+
+static void Test_ee20400()
+{
+ extern Class_Descriptor cd_ee20400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20400, buf);
+ ee20400 *dp, &lv = *(dp=new (buf) ee20400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd0400*), ABISELECT(8,4), "ee20400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd0400*), ABISELECT(8,4), "ee20400");
+ check_base_class_offset(lv, (cc400*)(dd0400*), 0, "ee20400");
+ check_base_class_offset(lv, (dd0400*), 0, "ee20400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20400.e");
+ test_class_info(&lv, &cd_ee20400);
+ dp->~ee20400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20400(Test_ee20400, "ee20400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20400C1Ev();
+extern void _ZN7ee20400D1Ev();
+Name_Map name_map_ee20400[] = {
+ NSPAIR(_ZN7ee20400C1Ev),
+ NSPAIR(_ZN7ee20400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd0400;
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+static Base_Class bases_ee20400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20400[];
+extern void _ZN5cc4003barEv();
+extern void _ZN7ee204003fooEv();
+static VTBL_ENTRY vtc_ee20400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+ (VTBL_ENTRY)&_ZN7ee204003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20400[];
+extern VTBL_ENTRY _ZTV7ee20400[];
+Class_Descriptor cd_ee20400 = { "ee20400", // class name
+ bases_ee20400, 4,
+ &(vtc_ee20400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30400 : virtual dd0400 {
+ int e;
+ virtual void foo(); // _ZN7ee304003fooEv
+ ~ee30400(); // tgen
+ ee30400(); // tgen
+};
+//SIG(1 ee30400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30400 ::foo(){vfunc_called(this, "_ZN7ee304003fooEv");}
+ee30400 ::~ee30400(){ note_dtor("ee30400", this);} // tgen
+ee30400 ::ee30400(){ note_ctor("ee30400", this);} // tgen
+
+static void Test_ee30400()
+{
+ extern Class_Descriptor cd_ee30400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30400, buf);
+ ee30400 *dp, &lv = *(dp=new (buf) ee30400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd0400*), ABISELECT(24,12), "ee30400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd0400*), ABISELECT(24,12), "ee30400");
+ check_base_class_offset(lv, (cc400*)(dd0400*), ABISELECT(16,8), "ee30400");
+ check_base_class_offset(lv, (dd0400*), ABISELECT(16,8), "ee30400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30400.e");
+ test_class_info(&lv, &cd_ee30400);
+ dp->~ee30400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30400(Test_ee30400, "ee30400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30400C1Ev();
+extern void _ZN7ee30400D1Ev();
+Name_Map name_map_ee30400[] = {
+ NSPAIR(_ZN7ee30400C1Ev),
+ NSPAIR(_ZN7ee30400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd0400;
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+static Base_Class bases_ee30400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30400[];
+extern void _ZN7ee304003fooEv();
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee30400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30400[0]),
+ (VTBL_ENTRY)&_ZN7ee304003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30400[];
+static VTT_ENTRY vtt_ee30400[] = {
+ {&(_ZTV7ee30400[3]), 3,8},
+ {&(_ZTV7ee30400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30400[];
+extern VTBL_ENTRY _ZTV7ee30400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30400[];
+Class_Descriptor cd_ee30400 = { "ee30400", // class name
+ bases_ee30400, 4,
+ &(vtc_ee30400[0]), // expected_vtbl_contents
+ &(vtt_ee30400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40400 : dd0400 {
+ int e;
+ virtual void bar(); // _ZN7ee404003barEv
+ ~ee40400(); // tgen
+ ee40400(); // tgen
+};
+//SIG(1 ee40400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40400 ::bar(){vfunc_called(this, "_ZN7ee404003barEv");}
+ee40400 ::~ee40400(){ note_dtor("ee40400", this);} // tgen
+ee40400 ::ee40400(){ note_ctor("ee40400", this);} // tgen
+
+static void Test_ee40400()
+{
+ extern Class_Descriptor cd_ee40400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40400, buf);
+ ee40400 *dp, &lv = *(dp=new (buf) ee40400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd0400*), ABISELECT(8,4), "ee40400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd0400*), ABISELECT(8,4), "ee40400");
+ check_base_class_offset(lv, (cc400*)(dd0400*), 0, "ee40400");
+ check_base_class_offset(lv, (dd0400*), 0, "ee40400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40400.e");
+ test_class_info(&lv, &cd_ee40400);
+ dp->~ee40400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40400(Test_ee40400, "ee40400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40400C1Ev();
+extern void _ZN7ee40400D1Ev();
+Name_Map name_map_ee40400[] = {
+ NSPAIR(_ZN7ee40400C1Ev),
+ NSPAIR(_ZN7ee40400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd0400;
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+static Base_Class bases_ee40400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40400[];
+extern void _ZN7ee404003barEv();
+static VTBL_ENTRY vtc_ee40400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40400[0]),
+ (VTBL_ENTRY)&_ZN7ee404003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40400[];
+extern VTBL_ENTRY _ZTV7ee40400[];
+Class_Descriptor cd_ee40400 = { "ee40400", // class name
+ bases_ee40400, 4,
+ &(vtc_ee40400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40400),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50400 : virtual dd0400 {
+ int e;
+ virtual void bar(); // _ZN7ee504003barEv
+ ~ee50400(); // tgen
+ ee50400(); // tgen
+};
+//SIG(1 ee50400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50400 ::bar(){vfunc_called(this, "_ZN7ee504003barEv");}
+ee50400 ::~ee50400(){ note_dtor("ee50400", this);} // tgen
+ee50400 ::ee50400(){ note_ctor("ee50400", this);} // tgen
+
+static void Test_ee50400()
+{
+ extern Class_Descriptor cd_ee50400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50400, buf);
+ ee50400 *dp, &lv = *(dp=new (buf) ee50400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd0400*), ABISELECT(24,12), "ee50400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd0400*), ABISELECT(24,12), "ee50400");
+ check_base_class_offset(lv, (cc400*)(dd0400*), ABISELECT(16,8), "ee50400");
+ check_base_class_offset(lv, (dd0400*), ABISELECT(16,8), "ee50400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50400.e");
+ test_class_info(&lv, &cd_ee50400);
+ dp->~ee50400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50400(Test_ee50400, "ee50400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50400C1Ev();
+extern void _ZN7ee50400D1Ev();
+Name_Map name_map_ee50400[] = {
+ NSPAIR(_ZN7ee50400C1Ev),
+ NSPAIR(_ZN7ee50400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd0400;
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+static Base_Class bases_ee50400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50400[];
+extern void _ZN7ee504003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee504003barEv,_ZTv0_n12_N7ee504003barEv)();
+extern void ABISELECT(_ZThn16_N7ee504003barEv,_ZThn8_N7ee504003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50400[0]),
+ (VTBL_ENTRY)&_ZN7ee504003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee504003barEv,_ZTv0_n12_N7ee504003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50400[];
+static VTT_ENTRY vtt_ee50400[] = {
+ {&(_ZTV7ee50400[3]), 3,8},
+ {&(_ZTV7ee50400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50400[];
+extern VTBL_ENTRY _ZTV7ee50400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50400[];
+static VTBL_ENTRY alt_thunk_names103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee504003barEv,_ZTv0_n12_N7ee504003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504003barEv,_ZThn8_N7ee504003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50400 = { "ee50400", // class name
+ bases_ee50400, 4,
+ &(vtc_ee50400[0]), // expected_vtbl_contents
+ &(vtt_ee50400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60400 : dd0400 {
+ int e;
+ virtual void foo(); // _ZN7ee604003fooEv
+ virtual void bar(); // _ZN7ee604003barEv
+ ~ee60400(); // tgen
+ ee60400(); // tgen
+};
+//SIG(1 ee60400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60400 ::foo(){vfunc_called(this, "_ZN7ee604003fooEv");}
+void ee60400 ::bar(){vfunc_called(this, "_ZN7ee604003barEv");}
+ee60400 ::~ee60400(){ note_dtor("ee60400", this);} // tgen
+ee60400 ::ee60400(){ note_ctor("ee60400", this);} // tgen
+
+static void Test_ee60400()
+{
+ extern Class_Descriptor cd_ee60400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60400, buf);
+ ee60400 *dp, &lv = *(dp=new (buf) ee60400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd0400*), ABISELECT(8,4), "ee60400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd0400*), ABISELECT(8,4), "ee60400");
+ check_base_class_offset(lv, (cc400*)(dd0400*), 0, "ee60400");
+ check_base_class_offset(lv, (dd0400*), 0, "ee60400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60400.e");
+ test_class_info(&lv, &cd_ee60400);
+ dp->~ee60400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60400(Test_ee60400, "ee60400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60400C1Ev();
+extern void _ZN7ee60400D1Ev();
+Name_Map name_map_ee60400[] = {
+ NSPAIR(_ZN7ee60400C1Ev),
+ NSPAIR(_ZN7ee60400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd0400;
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+static Base_Class bases_ee60400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60400[];
+extern void _ZN7ee604003barEv();
+extern void _ZN7ee604003fooEv();
+static VTBL_ENTRY vtc_ee60400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60400[0]),
+ (VTBL_ENTRY)&_ZN7ee604003barEv,
+ (VTBL_ENTRY)&_ZN7ee604003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee60400[];
+extern VTBL_ENTRY _ZTV7ee60400[];
+Class_Descriptor cd_ee60400 = { "ee60400", // class name
+ bases_ee60400, 4,
+ &(vtc_ee60400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70400 : virtual dd0400 {
+ int e;
+ virtual void foo(); // _ZN7ee704003fooEv
+ virtual void bar(); // _ZN7ee704003barEv
+ ~ee70400(); // tgen
+ ee70400(); // tgen
+};
+//SIG(1 ee70400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70400 ::foo(){vfunc_called(this, "_ZN7ee704003fooEv");}
+void ee70400 ::bar(){vfunc_called(this, "_ZN7ee704003barEv");}
+ee70400 ::~ee70400(){ note_dtor("ee70400", this);} // tgen
+ee70400 ::ee70400(){ note_ctor("ee70400", this);} // tgen
+
+static void Test_ee70400()
+{
+ extern Class_Descriptor cd_ee70400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70400, buf);
+ ee70400 *dp, &lv = *(dp=new (buf) ee70400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd0400*), ABISELECT(24,12), "ee70400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd0400*), ABISELECT(24,12), "ee70400");
+ check_base_class_offset(lv, (cc400*)(dd0400*), ABISELECT(16,8), "ee70400");
+ check_base_class_offset(lv, (dd0400*), ABISELECT(16,8), "ee70400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70400.e");
+ test_class_info(&lv, &cd_ee70400);
+ dp->~ee70400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70400(Test_ee70400, "ee70400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70400C1Ev();
+extern void _ZN7ee70400D1Ev();
+Name_Map name_map_ee70400[] = {
+ NSPAIR(_ZN7ee70400C1Ev),
+ NSPAIR(_ZN7ee70400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd0400;
+extern VTBL_ENTRY _ZTI6dd0400[];
+extern VTBL_ENTRY _ZTV6dd0400[];
+static Base_Class bases_ee70400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70400[];
+extern void _ZN7ee704003fooEv();
+extern void _ZN7ee704003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704003barEv,_ZTv0_n12_N7ee704003barEv)();
+extern void ABISELECT(_ZThn16_N7ee704003barEv,_ZThn8_N7ee704003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70400[0]),
+ (VTBL_ENTRY)&_ZN7ee704003fooEv,
+ (VTBL_ENTRY)&_ZN7ee704003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704003barEv,_ZTv0_n12_N7ee704003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70400[];
+static VTT_ENTRY vtt_ee70400[] = {
+ {&(_ZTV7ee70400[3]), 3,9},
+ {&(_ZTV7ee70400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70400[];
+extern VTBL_ENTRY _ZTV7ee70400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70400[];
+static VTBL_ENTRY alt_thunk_names104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704003barEv,_ZTv0_n12_N7ee704003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704003barEv,_ZThn8_N7ee704003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70400 = { "ee70400", // class name
+ bases_ee70400, 4,
+ &(vtc_ee70400[0]), // expected_vtbl_contents
+ &(vtt_ee70400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names104,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1400 : virtual cc400 {
+ int d;
+ ~dd1400(); // tgen
+ dd1400(); // tgen
+};
+//SIG(-1 dd1400) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd1400 ::~dd1400(){ note_dtor("dd1400", this);} // tgen
+dd1400 ::dd1400(){ note_ctor("dd1400", this);} // tgen
+
+static void Test_dd1400()
+{
+ extern Class_Descriptor cd_dd1400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1400, buf);
+ dd1400 *dp, &lv = *(dp=new (buf) dd1400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,12), "dd1400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,12), "dd1400");
+ check_base_class_offset(lv, (cc400*), ABISELECT(16,8), "dd1400");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1400.d");
+ test_class_info(&lv, &cd_dd1400);
+ dp->~dd1400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1400(Test_dd1400, "dd1400", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1400C1Ev();
+extern void _ZN6dd1400D1Ev();
+Name_Map name_map_dd1400[] = {
+ NSPAIR(_ZN6dd1400C1Ev),
+ NSPAIR(_ZN6dd1400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+static Base_Class bases_dd1400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_dd1400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1400[];
+static VTT_ENTRY vtt_dd1400[] = {
+ {&(_ZTV6dd1400[3]), 3,7},
+ {&(_ZTV6dd1400[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+Class_Descriptor cd_dd1400 = { "dd1400", // class name
+ bases_dd1400, 3,
+ &(vtc_dd1400[0]), // expected_vtbl_contents
+ &(vtt_dd1400[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1400),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1400),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 ee01400 : dd1400 {
+ int e;
+ ~ee01400(); // tgen
+ ee01400(); // tgen
+};
+//SIG(1 ee01400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01400 ::~ee01400(){ note_dtor("ee01400", this);} // tgen
+ee01400 ::ee01400(){ note_ctor("ee01400", this);} // tgen
+
+static void Test_ee01400()
+{
+ extern Class_Descriptor cd_ee01400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01400, buf);
+ ee01400 *dp, &lv = *(dp=new (buf) ee01400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee01400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee01400");
+ check_base_class_offset(lv, (cc400*)(dd1400*), ABISELECT(16,12), "ee01400");
+ check_base_class_offset(lv, (dd1400*), 0, "ee01400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01400.e");
+ test_class_info(&lv, &cd_ee01400);
+ dp->~ee01400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01400(Test_ee01400, "ee01400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01400C1Ev();
+extern void _ZN7ee01400D1Ev();
+Name_Map name_map_ee01400[] = {
+ NSPAIR(_ZN7ee01400C1Ev),
+ NSPAIR(_ZN7ee01400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd1400;
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+static Base_Class bases_ee01400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01400[];
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee01400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01400[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01400[];
+static VTBL_ENTRY _tg__ZTV6dd1400__7ee01400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd1400__7ee01400[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee01400[] = {
+ {&(_ZTV7ee01400[3]), 3,7},
+ {&(_tg__ZTV6dd1400__7ee01400[3]), 3,3},
+ {&(_tg__ZTV5cc400__6dd1400__7ee01400[3]), 3,4},
+ {&(_ZTV7ee01400[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01400[];
+extern VTBL_ENTRY _ZTV7ee01400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01400[];
+Class_Descriptor cd_ee01400 = { "ee01400", // class name
+ bases_ee01400, 4,
+ &(vtc_ee01400[0]), // expected_vtbl_contents
+ &(vtt_ee01400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01400),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01400),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 ee11400 : virtual dd1400 {
+ int e;
+ ~ee11400(); // tgen
+ ee11400(); // tgen
+};
+//SIG(1 ee11400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11400 ::~ee11400(){ note_dtor("ee11400", this);} // tgen
+ee11400 ::ee11400(){ note_ctor("ee11400", this);} // tgen
+
+static void Test_ee11400()
+{
+ extern Class_Descriptor cd_ee11400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11400, buf);
+ ee11400 *dp, &lv = *(dp=new (buf) ee11400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee11400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee11400");
+ check_base_class_offset(lv, (cc400*)(dd1400*), ABISELECT(32,16), "ee11400");
+ check_base_class_offset(lv, (dd1400*), ABISELECT(16,8), "ee11400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11400.e");
+ test_class_info(&lv, &cd_ee11400);
+ dp->~ee11400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11400(Test_ee11400, "ee11400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11400C1Ev();
+extern void _ZN7ee11400D1Ev();
+Name_Map name_map_ee11400[] = {
+ NSPAIR(_ZN7ee11400C1Ev),
+ NSPAIR(_ZN7ee11400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd1400;
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+static Base_Class bases_ee11400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11400[];
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee11400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11400[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11400[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11400[];
+static VTBL_ENTRY _tg__ZTV6dd1400__7ee11400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd1400__7ee11400[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee11400[] = {
+ {&(_ZTV7ee11400[4]), 4,11},
+ {&(_ZTV7ee11400[7]), 7,11},
+ {&(_ZTV7ee11400[10]), 10,11},
+ {&(_tg__ZTV6dd1400__7ee11400[3]), 3,3},
+ {&(_tg__ZTV5cc400__6dd1400__7ee11400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11400[];
+extern VTBL_ENTRY _ZTV7ee11400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11400[];
+Class_Descriptor cd_ee11400 = { "ee11400", // class name
+ bases_ee11400, 4,
+ &(vtc_ee11400[0]), // expected_vtbl_contents
+ &(vtt_ee11400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11400),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11400),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 ee21400 : dd1400 {
+ int e;
+ virtual void foo(); // _ZN7ee214003fooEv
+ ~ee21400(); // tgen
+ ee21400(); // tgen
+};
+//SIG(1 ee21400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21400 ::foo(){vfunc_called(this, "_ZN7ee214003fooEv");}
+ee21400 ::~ee21400(){ note_dtor("ee21400", this);} // tgen
+ee21400 ::ee21400(){ note_ctor("ee21400", this);} // tgen
+
+static void Test_ee21400()
+{
+ extern Class_Descriptor cd_ee21400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21400, buf);
+ ee21400 *dp, &lv = *(dp=new (buf) ee21400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee21400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee21400");
+ check_base_class_offset(lv, (cc400*)(dd1400*), ABISELECT(16,12), "ee21400");
+ check_base_class_offset(lv, (dd1400*), 0, "ee21400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21400.e");
+ test_class_info(&lv, &cd_ee21400);
+ dp->~ee21400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21400(Test_ee21400, "ee21400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21400C1Ev();
+extern void _ZN7ee21400D1Ev();
+Name_Map name_map_ee21400[] = {
+ NSPAIR(_ZN7ee21400C1Ev),
+ NSPAIR(_ZN7ee21400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd1400;
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+static Base_Class bases_ee21400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21400[];
+extern void _ZN7ee214003fooEv();
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee21400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21400[0]),
+ (VTBL_ENTRY)&_ZN7ee214003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21400[];
+static VTBL_ENTRY _tg__ZTV6dd1400__7ee21400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd1400__7ee21400[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee21400[] = {
+ {&(_ZTV7ee21400[3]), 3,8},
+ {&(_tg__ZTV6dd1400__7ee21400[3]), 3,3},
+ {&(_tg__ZTV5cc400__6dd1400__7ee21400[3]), 3,4},
+ {&(_ZTV7ee21400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21400[];
+extern VTBL_ENTRY _ZTV7ee21400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21400[];
+Class_Descriptor cd_ee21400 = { "ee21400", // class name
+ bases_ee21400, 4,
+ &(vtc_ee21400[0]), // expected_vtbl_contents
+ &(vtt_ee21400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21400),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 ee31400 : virtual dd1400 {
+ int e;
+ virtual void foo(); // _ZN7ee314003fooEv
+ ~ee31400(); // tgen
+ ee31400(); // tgen
+};
+//SIG(1 ee31400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31400 ::foo(){vfunc_called(this, "_ZN7ee314003fooEv");}
+ee31400 ::~ee31400(){ note_dtor("ee31400", this);} // tgen
+ee31400 ::ee31400(){ note_ctor("ee31400", this);} // tgen
+
+static void Test_ee31400()
+{
+ extern Class_Descriptor cd_ee31400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31400, buf);
+ ee31400 *dp, &lv = *(dp=new (buf) ee31400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee31400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee31400");
+ check_base_class_offset(lv, (cc400*)(dd1400*), ABISELECT(32,16), "ee31400");
+ check_base_class_offset(lv, (dd1400*), ABISELECT(16,8), "ee31400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31400.e");
+ test_class_info(&lv, &cd_ee31400);
+ dp->~ee31400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31400(Test_ee31400, "ee31400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31400C1Ev();
+extern void _ZN7ee31400D1Ev();
+Name_Map name_map_ee31400[] = {
+ NSPAIR(_ZN7ee31400C1Ev),
+ NSPAIR(_ZN7ee31400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd1400;
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+static Base_Class bases_ee31400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31400[];
+extern void _ZN7ee314003fooEv();
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee31400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31400[0]),
+ (VTBL_ENTRY)&_ZN7ee314003fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31400[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31400[];
+static VTBL_ENTRY _tg__ZTV6dd1400__7ee31400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd1400__7ee31400[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee31400[] = {
+ {&(_ZTV7ee31400[4]), 4,12},
+ {&(_ZTV7ee31400[8]), 8,12},
+ {&(_ZTV7ee31400[11]), 11,12},
+ {&(_tg__ZTV6dd1400__7ee31400[3]), 3,3},
+ {&(_tg__ZTV5cc400__6dd1400__7ee31400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31400[];
+extern VTBL_ENTRY _ZTV7ee31400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31400[];
+Class_Descriptor cd_ee31400 = { "ee31400", // class name
+ bases_ee31400, 4,
+ &(vtc_ee31400[0]), // expected_vtbl_contents
+ &(vtt_ee31400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31400),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31400),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 ee41400 : dd1400 {
+ int e;
+ virtual void bar(); // _ZN7ee414003barEv
+ ~ee41400(); // tgen
+ ee41400(); // tgen
+};
+//SIG(1 ee41400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41400 ::bar(){vfunc_called(this, "_ZN7ee414003barEv");}
+ee41400 ::~ee41400(){ note_dtor("ee41400", this);} // tgen
+ee41400 ::ee41400(){ note_ctor("ee41400", this);} // tgen
+
+static void Test_ee41400()
+{
+ extern Class_Descriptor cd_ee41400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41400, buf);
+ ee41400 *dp, &lv = *(dp=new (buf) ee41400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee41400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee41400");
+ check_base_class_offset(lv, (cc400*)(dd1400*), ABISELECT(16,12), "ee41400");
+ check_base_class_offset(lv, (dd1400*), 0, "ee41400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41400.e");
+ test_class_info(&lv, &cd_ee41400);
+ dp->~ee41400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41400(Test_ee41400, "ee41400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41400C1Ev();
+extern void _ZN7ee41400D1Ev();
+Name_Map name_map_ee41400[] = {
+ NSPAIR(_ZN7ee41400C1Ev),
+ NSPAIR(_ZN7ee41400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd1400;
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+static Base_Class bases_ee41400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41400[];
+extern void _ZN7ee414003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee414003barEv,_ZTv0_n12_N7ee414003barEv)();
+extern void ABISELECT(_ZThn16_N7ee414003barEv,_ZThn12_N7ee414003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41400[0]),
+ (VTBL_ENTRY)&_ZN7ee414003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee414003barEv,_ZTv0_n12_N7ee414003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41400[];
+static VTBL_ENTRY _tg__ZTV6dd1400__7ee41400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd1400__7ee41400[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee41400[] = {
+ {&(_ZTV7ee41400[3]), 3,8},
+ {&(_tg__ZTV6dd1400__7ee41400[3]), 3,3},
+ {&(_tg__ZTV5cc400__6dd1400__7ee41400[3]), 3,4},
+ {&(_ZTV7ee41400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41400[];
+extern VTBL_ENTRY _ZTV7ee41400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41400[];
+static VTBL_ENTRY alt_thunk_names105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee414003barEv,_ZTv0_n12_N7ee414003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414003barEv,_ZThn12_N7ee414003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41400 = { "ee41400", // class name
+ bases_ee41400, 4,
+ &(vtc_ee41400[0]), // expected_vtbl_contents
+ &(vtt_ee41400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names105,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51400 : virtual dd1400 {
+ int e;
+ virtual void bar(); // _ZN7ee514003barEv
+ ~ee51400(); // tgen
+ ee51400(); // tgen
+};
+//SIG(1 ee51400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51400 ::bar(){vfunc_called(this, "_ZN7ee514003barEv");}
+ee51400 ::~ee51400(){ note_dtor("ee51400", this);} // tgen
+ee51400 ::ee51400(){ note_ctor("ee51400", this);} // tgen
+
+static void Test_ee51400()
+{
+ extern Class_Descriptor cd_ee51400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51400, buf);
+ ee51400 *dp, &lv = *(dp=new (buf) ee51400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee51400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee51400");
+ check_base_class_offset(lv, (cc400*)(dd1400*), ABISELECT(32,16), "ee51400");
+ check_base_class_offset(lv, (dd1400*), ABISELECT(16,8), "ee51400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51400.e");
+ test_class_info(&lv, &cd_ee51400);
+ dp->~ee51400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51400(Test_ee51400, "ee51400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51400C1Ev();
+extern void _ZN7ee51400D1Ev();
+Name_Map name_map_ee51400[] = {
+ NSPAIR(_ZN7ee51400C1Ev),
+ NSPAIR(_ZN7ee51400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd1400;
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+static Base_Class bases_ee51400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51400[];
+extern void _ZN7ee514003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee514003barEv,_ZTv0_n12_N7ee514003barEv)();
+extern void ABISELECT(_ZThn32_N7ee514003barEv,_ZThn16_N7ee514003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51400[0]),
+ (VTBL_ENTRY)&_ZN7ee514003barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51400[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee514003barEv,_ZTv0_n12_N7ee514003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51400[];
+static VTBL_ENTRY _tg__ZTV6dd1400__7ee51400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd1400__7ee51400[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee51400[] = {
+ {&(_ZTV7ee51400[4]), 4,12},
+ {&(_ZTV7ee51400[8]), 8,12},
+ {&(_ZTV7ee51400[11]), 11,12},
+ {&(_tg__ZTV6dd1400__7ee51400[3]), 3,3},
+ {&(_tg__ZTV5cc400__6dd1400__7ee51400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51400[];
+extern VTBL_ENTRY _ZTV7ee51400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51400[];
+static VTBL_ENTRY alt_thunk_names106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee514003barEv,_ZTv0_n12_N7ee514003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514003barEv,_ZThn16_N7ee514003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51400 = { "ee51400", // class name
+ bases_ee51400, 4,
+ &(vtc_ee51400[0]), // expected_vtbl_contents
+ &(vtt_ee51400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51400),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names106,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61400 : dd1400 {
+ int e;
+ virtual void foo(); // _ZN7ee614003fooEv
+ virtual void bar(); // _ZN7ee614003barEv
+ ~ee61400(); // tgen
+ ee61400(); // tgen
+};
+//SIG(1 ee61400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61400 ::foo(){vfunc_called(this, "_ZN7ee614003fooEv");}
+void ee61400 ::bar(){vfunc_called(this, "_ZN7ee614003barEv");}
+ee61400 ::~ee61400(){ note_dtor("ee61400", this);} // tgen
+ee61400 ::ee61400(){ note_ctor("ee61400", this);} // tgen
+
+static void Test_ee61400()
+{
+ extern Class_Descriptor cd_ee61400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61400, buf);
+ ee61400 *dp, &lv = *(dp=new (buf) ee61400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee61400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee61400");
+ check_base_class_offset(lv, (cc400*)(dd1400*), ABISELECT(16,12), "ee61400");
+ check_base_class_offset(lv, (dd1400*), 0, "ee61400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61400.e");
+ test_class_info(&lv, &cd_ee61400);
+ dp->~ee61400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61400(Test_ee61400, "ee61400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61400C1Ev();
+extern void _ZN7ee61400D1Ev();
+Name_Map name_map_ee61400[] = {
+ NSPAIR(_ZN7ee61400C1Ev),
+ NSPAIR(_ZN7ee61400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd1400;
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+static Base_Class bases_ee61400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61400[];
+extern void _ZN7ee614003fooEv();
+extern void _ZN7ee614003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614003barEv,_ZTv0_n12_N7ee614003barEv)();
+extern void ABISELECT(_ZThn16_N7ee614003barEv,_ZThn12_N7ee614003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61400[0]),
+ (VTBL_ENTRY)&_ZN7ee614003fooEv,
+ (VTBL_ENTRY)&_ZN7ee614003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614003barEv,_ZTv0_n12_N7ee614003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61400[];
+static VTBL_ENTRY _tg__ZTV6dd1400__7ee61400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd1400__7ee61400[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee61400[] = {
+ {&(_ZTV7ee61400[3]), 3,9},
+ {&(_tg__ZTV6dd1400__7ee61400[3]), 3,3},
+ {&(_tg__ZTV5cc400__6dd1400__7ee61400[3]), 3,4},
+ {&(_ZTV7ee61400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61400[];
+extern VTBL_ENTRY _ZTV7ee61400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61400[];
+static VTBL_ENTRY alt_thunk_names107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614003barEv,_ZTv0_n12_N7ee614003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614003barEv,_ZThn12_N7ee614003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61400 = { "ee61400", // class name
+ bases_ee61400, 4,
+ &(vtc_ee61400[0]), // expected_vtbl_contents
+ &(vtt_ee61400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names107,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71400 : virtual dd1400 {
+ int e;
+ virtual void foo(); // _ZN7ee714003fooEv
+ virtual void bar(); // _ZN7ee714003barEv
+ ~ee71400(); // tgen
+ ee71400(); // tgen
+};
+//SIG(1 ee71400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71400 ::foo(){vfunc_called(this, "_ZN7ee714003fooEv");}
+void ee71400 ::bar(){vfunc_called(this, "_ZN7ee714003barEv");}
+ee71400 ::~ee71400(){ note_dtor("ee71400", this);} // tgen
+ee71400 ::ee71400(){ note_ctor("ee71400", this);} // tgen
+
+static void Test_ee71400()
+{
+ extern Class_Descriptor cd_ee71400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71400, buf);
+ ee71400 *dp, &lv = *(dp=new (buf) ee71400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee71400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee71400");
+ check_base_class_offset(lv, (cc400*)(dd1400*), ABISELECT(32,16), "ee71400");
+ check_base_class_offset(lv, (dd1400*), ABISELECT(16,8), "ee71400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71400.e");
+ test_class_info(&lv, &cd_ee71400);
+ dp->~ee71400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71400(Test_ee71400, "ee71400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71400C1Ev();
+extern void _ZN7ee71400D1Ev();
+Name_Map name_map_ee71400[] = {
+ NSPAIR(_ZN7ee71400C1Ev),
+ NSPAIR(_ZN7ee71400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd1400;
+extern VTBL_ENTRY _ZTI6dd1400[];
+extern VTBL_ENTRY _ZTV6dd1400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1400[];
+static Base_Class bases_ee71400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1400, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71400[];
+extern void _ZN7ee714003fooEv();
+extern void _ZN7ee714003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714003barEv,_ZTv0_n12_N7ee714003barEv)();
+extern void ABISELECT(_ZThn32_N7ee714003barEv,_ZThn16_N7ee714003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71400[0]),
+ (VTBL_ENTRY)&_ZN7ee714003fooEv,
+ (VTBL_ENTRY)&_ZN7ee714003barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71400[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714003barEv,_ZTv0_n12_N7ee714003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71400[];
+static VTBL_ENTRY _tg__ZTV6dd1400__7ee71400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd1400__7ee71400[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee71400[] = {
+ {&(_ZTV7ee71400[4]), 4,13},
+ {&(_ZTV7ee71400[9]), 9,13},
+ {&(_ZTV7ee71400[12]), 12,13},
+ {&(_tg__ZTV6dd1400__7ee71400[3]), 3,3},
+ {&(_tg__ZTV5cc400__6dd1400__7ee71400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71400[];
+extern VTBL_ENTRY _ZTV7ee71400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71400[];
+static VTBL_ENTRY alt_thunk_names108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714003barEv,_ZTv0_n12_N7ee714003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714003barEv,_ZThn16_N7ee714003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71400 = { "ee71400", // class name
+ bases_ee71400, 4,
+ &(vtc_ee71400[0]), // expected_vtbl_contents
+ &(vtt_ee71400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71400),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names108,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2400 : cc400 {
+ int d;
+ virtual void foo(); // _ZN6dd24003fooEv
+ ~dd2400(); // tgen
+ dd2400(); // tgen
+};
+//SIG(-1 dd2400) C1{ BC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd2400 ::foo(){vfunc_called(this, "_ZN6dd24003fooEv");}
+dd2400 ::~dd2400(){ note_dtor("dd2400", this);} // tgen
+dd2400 ::dd2400(){ note_ctor("dd2400", this);} // tgen
+
+static void Test_dd2400()
+{
+ extern Class_Descriptor cd_dd2400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2400, buf);
+ dd2400 *dp, &lv = *(dp=new (buf) dd2400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(8,4), "dd2400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(8,4), "dd2400");
+ check_base_class_offset(lv, (cc400*), 0, "dd2400");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2400.d");
+ test_class_info(&lv, &cd_dd2400);
+ dp->~dd2400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2400(Test_dd2400, "dd2400", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2400C1Ev();
+extern void _ZN6dd2400D1Ev();
+Name_Map name_map_dd2400[] = {
+ NSPAIR(_ZN6dd2400C1Ev),
+ NSPAIR(_ZN6dd2400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+static Base_Class bases_dd2400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern void _ZN5cc4003barEv();
+extern void _ZN6dd24003fooEv();
+static VTBL_ENTRY vtc_dd2400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+ (VTBL_ENTRY)&_ZN6dd24003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+Class_Descriptor cd_dd2400 = { "dd2400", // class name
+ bases_dd2400, 3,
+ &(vtc_dd2400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02400 : dd2400 {
+ int e;
+ ~ee02400(); // tgen
+ ee02400(); // tgen
+};
+//SIG(1 ee02400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02400 ::~ee02400(){ note_dtor("ee02400", this);} // tgen
+ee02400 ::ee02400(){ note_ctor("ee02400", this);} // tgen
+
+static void Test_ee02400()
+{
+ extern Class_Descriptor cd_ee02400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02400, buf);
+ ee02400 *dp, &lv = *(dp=new (buf) ee02400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd2400*), ABISELECT(8,4), "ee02400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd2400*), ABISELECT(8,4), "ee02400");
+ check_base_class_offset(lv, (cc400*)(dd2400*), 0, "ee02400");
+ check_base_class_offset(lv, (dd2400*), 0, "ee02400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02400.e");
+ test_class_info(&lv, &cd_ee02400);
+ dp->~ee02400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02400(Test_ee02400, "ee02400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02400C1Ev();
+extern void _ZN7ee02400D1Ev();
+Name_Map name_map_ee02400[] = {
+ NSPAIR(_ZN7ee02400C1Ev),
+ NSPAIR(_ZN7ee02400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd2400;
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+static Base_Class bases_ee02400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2400, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02400[];
+extern void _ZN5cc4003barEv();
+extern void _ZN6dd24003fooEv();
+static VTBL_ENTRY vtc_ee02400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+ (VTBL_ENTRY)&_ZN6dd24003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02400[];
+extern VTBL_ENTRY _ZTV7ee02400[];
+Class_Descriptor cd_ee02400 = { "ee02400", // class name
+ bases_ee02400, 4,
+ &(vtc_ee02400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12400 : virtual dd2400 {
+ int e;
+ ~ee12400(); // tgen
+ ee12400(); // tgen
+};
+//SIG(1 ee12400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12400 ::~ee12400(){ note_dtor("ee12400", this);} // tgen
+ee12400 ::ee12400(){ note_ctor("ee12400", this);} // tgen
+
+static void Test_ee12400()
+{
+ extern Class_Descriptor cd_ee12400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12400, buf);
+ ee12400 *dp, &lv = *(dp=new (buf) ee12400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd2400*), ABISELECT(24,12), "ee12400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd2400*), ABISELECT(24,12), "ee12400");
+ check_base_class_offset(lv, (cc400*)(dd2400*), ABISELECT(16,8), "ee12400");
+ check_base_class_offset(lv, (dd2400*), ABISELECT(16,8), "ee12400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12400.e");
+ test_class_info(&lv, &cd_ee12400);
+ dp->~ee12400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12400(Test_ee12400, "ee12400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12400C1Ev();
+extern void _ZN7ee12400D1Ev();
+Name_Map name_map_ee12400[] = {
+ NSPAIR(_ZN7ee12400C1Ev),
+ NSPAIR(_ZN7ee12400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd2400;
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+static Base_Class bases_ee12400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2400, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12400[];
+extern void _ZN5cc4003barEv();
+extern void _ZN6dd24003fooEv();
+static VTBL_ENTRY vtc_ee12400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12400[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+ (VTBL_ENTRY)&_ZN6dd24003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12400[];
+static VTT_ENTRY vtt_ee12400[] = {
+ {&(_ZTV7ee12400[3]), 3,9},
+ {&(_ZTV7ee12400[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12400[];
+extern VTBL_ENTRY _ZTV7ee12400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12400[];
+Class_Descriptor cd_ee12400 = { "ee12400", // class name
+ bases_ee12400, 4,
+ &(vtc_ee12400[0]), // expected_vtbl_contents
+ &(vtt_ee12400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22400 : dd2400 {
+ int e;
+ virtual void foo(); // _ZN7ee224003fooEv
+ ~ee22400(); // tgen
+ ee22400(); // tgen
+};
+//SIG(1 ee22400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22400 ::foo(){vfunc_called(this, "_ZN7ee224003fooEv");}
+ee22400 ::~ee22400(){ note_dtor("ee22400", this);} // tgen
+ee22400 ::ee22400(){ note_ctor("ee22400", this);} // tgen
+
+static void Test_ee22400()
+{
+ extern Class_Descriptor cd_ee22400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22400, buf);
+ ee22400 *dp, &lv = *(dp=new (buf) ee22400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd2400*), ABISELECT(8,4), "ee22400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd2400*), ABISELECT(8,4), "ee22400");
+ check_base_class_offset(lv, (cc400*)(dd2400*), 0, "ee22400");
+ check_base_class_offset(lv, (dd2400*), 0, "ee22400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22400.e");
+ test_class_info(&lv, &cd_ee22400);
+ dp->~ee22400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22400(Test_ee22400, "ee22400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22400C1Ev();
+extern void _ZN7ee22400D1Ev();
+Name_Map name_map_ee22400[] = {
+ NSPAIR(_ZN7ee22400C1Ev),
+ NSPAIR(_ZN7ee22400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd2400;
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+static Base_Class bases_ee22400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22400[];
+extern void _ZN5cc4003barEv();
+extern void _ZN7ee224003fooEv();
+static VTBL_ENTRY vtc_ee22400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+ (VTBL_ENTRY)&_ZN7ee224003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22400[];
+extern VTBL_ENTRY _ZTV7ee22400[];
+Class_Descriptor cd_ee22400 = { "ee22400", // class name
+ bases_ee22400, 4,
+ &(vtc_ee22400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32400 : virtual dd2400 {
+ int e;
+ virtual void foo(); // _ZN7ee324003fooEv
+ ~ee32400(); // tgen
+ ee32400(); // tgen
+};
+//SIG(1 ee32400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32400 ::foo(){vfunc_called(this, "_ZN7ee324003fooEv");}
+ee32400 ::~ee32400(){ note_dtor("ee32400", this);} // tgen
+ee32400 ::ee32400(){ note_ctor("ee32400", this);} // tgen
+
+static void Test_ee32400()
+{
+ extern Class_Descriptor cd_ee32400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32400, buf);
+ ee32400 *dp, &lv = *(dp=new (buf) ee32400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd2400*), ABISELECT(24,12), "ee32400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd2400*), ABISELECT(24,12), "ee32400");
+ check_base_class_offset(lv, (cc400*)(dd2400*), ABISELECT(16,8), "ee32400");
+ check_base_class_offset(lv, (dd2400*), ABISELECT(16,8), "ee32400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32400.e");
+ test_class_info(&lv, &cd_ee32400);
+ dp->~ee32400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32400(Test_ee32400, "ee32400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32400C1Ev();
+extern void _ZN7ee32400D1Ev();
+Name_Map name_map_ee32400[] = {
+ NSPAIR(_ZN7ee32400C1Ev),
+ NSPAIR(_ZN7ee32400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd2400;
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+static Base_Class bases_ee32400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32400[];
+extern void _ZN7ee324003fooEv();
+extern void _ZN5cc4003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee324003fooEv,_ZTv0_n16_N7ee324003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324003fooEv,_ZThn8_N7ee324003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32400[0]),
+ (VTBL_ENTRY)&_ZN7ee324003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee324003fooEv,_ZTv0_n16_N7ee324003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32400[];
+static VTT_ENTRY vtt_ee32400[] = {
+ {&(_ZTV7ee32400[3]), 3,10},
+ {&(_ZTV7ee32400[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32400[];
+extern VTBL_ENTRY _ZTV7ee32400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32400[];
+static VTBL_ENTRY alt_thunk_names109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee324003fooEv,_ZTv0_n16_N7ee324003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324003fooEv,_ZThn8_N7ee324003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32400 = { "ee32400", // class name
+ bases_ee32400, 4,
+ &(vtc_ee32400[0]), // expected_vtbl_contents
+ &(vtt_ee32400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32400),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names109,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42400 : dd2400 {
+ int e;
+ virtual void bar(); // _ZN7ee424003barEv
+ ~ee42400(); // tgen
+ ee42400(); // tgen
+};
+//SIG(1 ee42400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42400 ::bar(){vfunc_called(this, "_ZN7ee424003barEv");}
+ee42400 ::~ee42400(){ note_dtor("ee42400", this);} // tgen
+ee42400 ::ee42400(){ note_ctor("ee42400", this);} // tgen
+
+static void Test_ee42400()
+{
+ extern Class_Descriptor cd_ee42400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42400, buf);
+ ee42400 *dp, &lv = *(dp=new (buf) ee42400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd2400*), ABISELECT(8,4), "ee42400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd2400*), ABISELECT(8,4), "ee42400");
+ check_base_class_offset(lv, (cc400*)(dd2400*), 0, "ee42400");
+ check_base_class_offset(lv, (dd2400*), 0, "ee42400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42400.e");
+ test_class_info(&lv, &cd_ee42400);
+ dp->~ee42400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42400(Test_ee42400, "ee42400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42400C1Ev();
+extern void _ZN7ee42400D1Ev();
+Name_Map name_map_ee42400[] = {
+ NSPAIR(_ZN7ee42400C1Ev),
+ NSPAIR(_ZN7ee42400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd2400;
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+static Base_Class bases_ee42400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42400[];
+extern void _ZN7ee424003barEv();
+extern void _ZN6dd24003fooEv();
+static VTBL_ENTRY vtc_ee42400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42400[0]),
+ (VTBL_ENTRY)&_ZN7ee424003barEv,
+ (VTBL_ENTRY)&_ZN6dd24003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee42400[];
+extern VTBL_ENTRY _ZTV7ee42400[];
+Class_Descriptor cd_ee42400 = { "ee42400", // class name
+ bases_ee42400, 4,
+ &(vtc_ee42400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52400 : virtual dd2400 {
+ int e;
+ virtual void bar(); // _ZN7ee524003barEv
+ ~ee52400(); // tgen
+ ee52400(); // tgen
+};
+//SIG(1 ee52400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52400 ::bar(){vfunc_called(this, "_ZN7ee524003barEv");}
+ee52400 ::~ee52400(){ note_dtor("ee52400", this);} // tgen
+ee52400 ::ee52400(){ note_ctor("ee52400", this);} // tgen
+
+static void Test_ee52400()
+{
+ extern Class_Descriptor cd_ee52400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52400, buf);
+ ee52400 *dp, &lv = *(dp=new (buf) ee52400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd2400*), ABISELECT(24,12), "ee52400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd2400*), ABISELECT(24,12), "ee52400");
+ check_base_class_offset(lv, (cc400*)(dd2400*), ABISELECT(16,8), "ee52400");
+ check_base_class_offset(lv, (dd2400*), ABISELECT(16,8), "ee52400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52400.e");
+ test_class_info(&lv, &cd_ee52400);
+ dp->~ee52400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52400(Test_ee52400, "ee52400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52400C1Ev();
+extern void _ZN7ee52400D1Ev();
+Name_Map name_map_ee52400[] = {
+ NSPAIR(_ZN7ee52400C1Ev),
+ NSPAIR(_ZN7ee52400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd2400;
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+static Base_Class bases_ee52400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52400[];
+extern void _ZN7ee524003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee524003barEv,_ZTv0_n12_N7ee524003barEv)();
+extern void ABISELECT(_ZThn16_N7ee524003barEv,_ZThn8_N7ee524003barEv)() __attribute__((weak));
+extern void _ZN6dd24003fooEv();
+static VTBL_ENTRY vtc_ee52400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52400[0]),
+ (VTBL_ENTRY)&_ZN7ee524003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee524003barEv,_ZTv0_n12_N7ee524003barEv),
+ (VTBL_ENTRY)&_ZN6dd24003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52400[];
+static VTT_ENTRY vtt_ee52400[] = {
+ {&(_ZTV7ee52400[3]), 3,10},
+ {&(_ZTV7ee52400[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52400[];
+extern VTBL_ENTRY _ZTV7ee52400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52400[];
+static VTBL_ENTRY alt_thunk_names110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee524003barEv,_ZTv0_n12_N7ee524003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524003barEv,_ZThn8_N7ee524003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52400 = { "ee52400", // class name
+ bases_ee52400, 4,
+ &(vtc_ee52400[0]), // expected_vtbl_contents
+ &(vtt_ee52400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52400),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names110,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62400 : dd2400 {
+ int e;
+ virtual void foo(); // _ZN7ee624003fooEv
+ virtual void bar(); // _ZN7ee624003barEv
+ ~ee62400(); // tgen
+ ee62400(); // tgen
+};
+//SIG(1 ee62400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62400 ::foo(){vfunc_called(this, "_ZN7ee624003fooEv");}
+void ee62400 ::bar(){vfunc_called(this, "_ZN7ee624003barEv");}
+ee62400 ::~ee62400(){ note_dtor("ee62400", this);} // tgen
+ee62400 ::ee62400(){ note_ctor("ee62400", this);} // tgen
+
+static void Test_ee62400()
+{
+ extern Class_Descriptor cd_ee62400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62400, buf);
+ ee62400 *dp, &lv = *(dp=new (buf) ee62400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd2400*), ABISELECT(8,4), "ee62400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd2400*), ABISELECT(8,4), "ee62400");
+ check_base_class_offset(lv, (cc400*)(dd2400*), 0, "ee62400");
+ check_base_class_offset(lv, (dd2400*), 0, "ee62400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62400.e");
+ test_class_info(&lv, &cd_ee62400);
+ dp->~ee62400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62400(Test_ee62400, "ee62400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62400C1Ev();
+extern void _ZN7ee62400D1Ev();
+Name_Map name_map_ee62400[] = {
+ NSPAIR(_ZN7ee62400C1Ev),
+ NSPAIR(_ZN7ee62400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd2400;
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+static Base_Class bases_ee62400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62400[];
+extern void _ZN7ee624003barEv();
+extern void _ZN7ee624003fooEv();
+static VTBL_ENTRY vtc_ee62400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62400[0]),
+ (VTBL_ENTRY)&_ZN7ee624003barEv,
+ (VTBL_ENTRY)&_ZN7ee624003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee62400[];
+extern VTBL_ENTRY _ZTV7ee62400[];
+Class_Descriptor cd_ee62400 = { "ee62400", // class name
+ bases_ee62400, 4,
+ &(vtc_ee62400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72400 : virtual dd2400 {
+ int e;
+ virtual void foo(); // _ZN7ee724003fooEv
+ virtual void bar(); // _ZN7ee724003barEv
+ ~ee72400(); // tgen
+ ee72400(); // tgen
+};
+//SIG(1 ee72400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72400 ::foo(){vfunc_called(this, "_ZN7ee724003fooEv");}
+void ee72400 ::bar(){vfunc_called(this, "_ZN7ee724003barEv");}
+ee72400 ::~ee72400(){ note_dtor("ee72400", this);} // tgen
+ee72400 ::ee72400(){ note_ctor("ee72400", this);} // tgen
+
+static void Test_ee72400()
+{
+ extern Class_Descriptor cd_ee72400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72400, buf);
+ ee72400 *dp, &lv = *(dp=new (buf) ee72400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd2400*), ABISELECT(24,12), "ee72400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd2400*), ABISELECT(24,12), "ee72400");
+ check_base_class_offset(lv, (cc400*)(dd2400*), ABISELECT(16,8), "ee72400");
+ check_base_class_offset(lv, (dd2400*), ABISELECT(16,8), "ee72400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72400.e");
+ test_class_info(&lv, &cd_ee72400);
+ dp->~ee72400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72400(Test_ee72400, "ee72400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72400C1Ev();
+extern void _ZN7ee72400D1Ev();
+Name_Map name_map_ee72400[] = {
+ NSPAIR(_ZN7ee72400C1Ev),
+ NSPAIR(_ZN7ee72400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd2400;
+extern VTBL_ENTRY _ZTI6dd2400[];
+extern VTBL_ENTRY _ZTV6dd2400[];
+static Base_Class bases_ee72400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72400[];
+extern void _ZN7ee724003fooEv();
+extern void _ZN7ee724003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724003barEv,_ZTv0_n12_N7ee724003barEv)();
+extern void ABISELECT(_ZThn16_N7ee724003barEv,_ZThn8_N7ee724003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724003fooEv,_ZTv0_n16_N7ee724003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724003fooEv,_ZThn8_N7ee724003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72400[0]),
+ (VTBL_ENTRY)&_ZN7ee724003fooEv,
+ (VTBL_ENTRY)&_ZN7ee724003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724003barEv,_ZTv0_n12_N7ee724003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724003fooEv,_ZTv0_n16_N7ee724003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72400[];
+static VTT_ENTRY vtt_ee72400[] = {
+ {&(_ZTV7ee72400[3]), 3,11},
+ {&(_ZTV7ee72400[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72400[];
+extern VTBL_ENTRY _ZTV7ee72400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72400[];
+static VTBL_ENTRY alt_thunk_names111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724003fooEv,_ZTv0_n16_N7ee724003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724003fooEv,_ZThn8_N7ee724003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724003barEv,_ZTv0_n12_N7ee724003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724003barEv,_ZThn8_N7ee724003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72400 = { "ee72400", // class name
+ bases_ee72400, 4,
+ &(vtc_ee72400[0]), // expected_vtbl_contents
+ &(vtt_ee72400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72400),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names111,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3400 : virtual cc400 {
+ int d;
+ virtual void foo(); // _ZN6dd34003fooEv
+ ~dd3400(); // tgen
+ dd3400(); // tgen
+};
+//SIG(-1 dd3400) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd3400 ::foo(){vfunc_called(this, "_ZN6dd34003fooEv");}
+dd3400 ::~dd3400(){ note_dtor("dd3400", this);} // tgen
+dd3400 ::dd3400(){ note_ctor("dd3400", this);} // tgen
+
+static void Test_dd3400()
+{
+ extern Class_Descriptor cd_dd3400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3400, buf);
+ dd3400 *dp, &lv = *(dp=new (buf) dd3400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,12), "dd3400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,12), "dd3400");
+ check_base_class_offset(lv, (cc400*), ABISELECT(16,8), "dd3400");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3400.d");
+ test_class_info(&lv, &cd_dd3400);
+ dp->~dd3400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3400(Test_dd3400, "dd3400", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3400C1Ev();
+extern void _ZN6dd3400D1Ev();
+Name_Map name_map_dd3400[] = {
+ NSPAIR(_ZN6dd3400C1Ev),
+ NSPAIR(_ZN6dd3400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+static Base_Class bases_dd3400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern void _ZN6dd34003fooEv();
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_dd3400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3400[];
+static VTT_ENTRY vtt_dd3400[] = {
+ {&(_ZTV6dd3400[3]), 3,8},
+ {&(_ZTV6dd3400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+Class_Descriptor cd_dd3400 = { "dd3400", // class name
+ bases_dd3400, 3,
+ &(vtc_dd3400[0]), // expected_vtbl_contents
+ &(vtt_dd3400[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3400),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 ee03400 : dd3400 {
+ int e;
+ ~ee03400(); // tgen
+ ee03400(); // tgen
+};
+//SIG(1 ee03400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03400 ::~ee03400(){ note_dtor("ee03400", this);} // tgen
+ee03400 ::ee03400(){ note_ctor("ee03400", this);} // tgen
+
+static void Test_ee03400()
+{
+ extern Class_Descriptor cd_ee03400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03400, buf);
+ ee03400 *dp, &lv = *(dp=new (buf) ee03400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee03400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee03400");
+ check_base_class_offset(lv, (cc400*)(dd3400*), ABISELECT(16,12), "ee03400");
+ check_base_class_offset(lv, (dd3400*), 0, "ee03400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03400.e");
+ test_class_info(&lv, &cd_ee03400);
+ dp->~ee03400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03400(Test_ee03400, "ee03400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03400C1Ev();
+extern void _ZN7ee03400D1Ev();
+Name_Map name_map_ee03400[] = {
+ NSPAIR(_ZN7ee03400C1Ev),
+ NSPAIR(_ZN7ee03400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd3400;
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+static Base_Class bases_ee03400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03400[];
+extern void _ZN6dd34003fooEv();
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee03400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03400[];
+extern void _ZN6dd34003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3400__7ee03400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd3400__7ee03400[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee03400[] = {
+ {&(_ZTV7ee03400[3]), 3,8},
+ {&(_tg__ZTV6dd3400__7ee03400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd3400__7ee03400[3]), 3,4},
+ {&(_ZTV7ee03400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03400[];
+extern VTBL_ENTRY _ZTV7ee03400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03400[];
+Class_Descriptor cd_ee03400 = { "ee03400", // class name
+ bases_ee03400, 4,
+ &(vtc_ee03400[0]), // expected_vtbl_contents
+ &(vtt_ee03400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03400),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 ee13400 : virtual dd3400 {
+ int e;
+ ~ee13400(); // tgen
+ ee13400(); // tgen
+};
+//SIG(1 ee13400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13400 ::~ee13400(){ note_dtor("ee13400", this);} // tgen
+ee13400 ::ee13400(){ note_ctor("ee13400", this);} // tgen
+
+static void Test_ee13400()
+{
+ extern Class_Descriptor cd_ee13400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13400, buf);
+ ee13400 *dp, &lv = *(dp=new (buf) ee13400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee13400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee13400");
+ check_base_class_offset(lv, (cc400*)(dd3400*), ABISELECT(32,16), "ee13400");
+ check_base_class_offset(lv, (dd3400*), ABISELECT(16,8), "ee13400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13400.e");
+ test_class_info(&lv, &cd_ee13400);
+ dp->~ee13400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13400(Test_ee13400, "ee13400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13400C1Ev();
+extern void _ZN7ee13400D1Ev();
+Name_Map name_map_ee13400[] = {
+ NSPAIR(_ZN7ee13400C1Ev),
+ NSPAIR(_ZN7ee13400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd3400;
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+static Base_Class bases_ee13400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13400[];
+extern void _ZN6dd34003fooEv();
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee13400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13400[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13400[];
+extern void _ZN6dd34003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3400__7ee13400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd3400__7ee13400[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee13400[] = {
+ {&(_ZTV7ee13400[4]), 4,13},
+ {&(_ZTV7ee13400[8]), 8,13},
+ {&(_ZTV7ee13400[12]), 12,13},
+ {&(_tg__ZTV6dd3400__7ee13400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd3400__7ee13400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13400[];
+extern VTBL_ENTRY _ZTV7ee13400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13400[];
+Class_Descriptor cd_ee13400 = { "ee13400", // class name
+ bases_ee13400, 4,
+ &(vtc_ee13400[0]), // expected_vtbl_contents
+ &(vtt_ee13400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13400),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13400),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 ee23400 : dd3400 {
+ int e;
+ virtual void foo(); // _ZN7ee234003fooEv
+ ~ee23400(); // tgen
+ ee23400(); // tgen
+};
+//SIG(1 ee23400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23400 ::foo(){vfunc_called(this, "_ZN7ee234003fooEv");}
+ee23400 ::~ee23400(){ note_dtor("ee23400", this);} // tgen
+ee23400 ::ee23400(){ note_ctor("ee23400", this);} // tgen
+
+static void Test_ee23400()
+{
+ extern Class_Descriptor cd_ee23400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23400, buf);
+ ee23400 *dp, &lv = *(dp=new (buf) ee23400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee23400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee23400");
+ check_base_class_offset(lv, (cc400*)(dd3400*), ABISELECT(16,12), "ee23400");
+ check_base_class_offset(lv, (dd3400*), 0, "ee23400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23400.e");
+ test_class_info(&lv, &cd_ee23400);
+ dp->~ee23400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23400(Test_ee23400, "ee23400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23400C1Ev();
+extern void _ZN7ee23400D1Ev();
+Name_Map name_map_ee23400[] = {
+ NSPAIR(_ZN7ee23400C1Ev),
+ NSPAIR(_ZN7ee23400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd3400;
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+static Base_Class bases_ee23400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23400[];
+extern void _ZN7ee234003fooEv();
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee23400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23400[0]),
+ (VTBL_ENTRY)&_ZN7ee234003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23400[];
+extern void _ZN6dd34003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3400__7ee23400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd3400__7ee23400[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee23400[] = {
+ {&(_ZTV7ee23400[3]), 3,8},
+ {&(_tg__ZTV6dd3400__7ee23400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd3400__7ee23400[3]), 3,4},
+ {&(_ZTV7ee23400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23400[];
+extern VTBL_ENTRY _ZTV7ee23400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23400[];
+Class_Descriptor cd_ee23400 = { "ee23400", // class name
+ bases_ee23400, 4,
+ &(vtc_ee23400[0]), // expected_vtbl_contents
+ &(vtt_ee23400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23400),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 ee33400 : virtual dd3400 {
+ int e;
+ virtual void foo(); // _ZN7ee334003fooEv
+ ~ee33400(); // tgen
+ ee33400(); // tgen
+};
+//SIG(1 ee33400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33400 ::foo(){vfunc_called(this, "_ZN7ee334003fooEv");}
+ee33400 ::~ee33400(){ note_dtor("ee33400", this);} // tgen
+ee33400 ::ee33400(){ note_ctor("ee33400", this);} // tgen
+
+static void Test_ee33400()
+{
+ extern Class_Descriptor cd_ee33400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33400, buf);
+ ee33400 *dp, &lv = *(dp=new (buf) ee33400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee33400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee33400");
+ check_base_class_offset(lv, (cc400*)(dd3400*), ABISELECT(32,16), "ee33400");
+ check_base_class_offset(lv, (dd3400*), ABISELECT(16,8), "ee33400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33400.e");
+ test_class_info(&lv, &cd_ee33400);
+ dp->~ee33400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33400(Test_ee33400, "ee33400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33400C1Ev();
+extern void _ZN7ee33400D1Ev();
+Name_Map name_map_ee33400[] = {
+ NSPAIR(_ZN7ee33400C1Ev),
+ NSPAIR(_ZN7ee33400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd3400;
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+static Base_Class bases_ee33400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3400, 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 _ZTI7ee33400[];
+extern void _ZN7ee334003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334003fooEv,_ZTv0_n16_N7ee334003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334003fooEv,_ZThn8_N7ee334003fooEv)() __attribute__((weak));
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY vtc_ee33400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33400[0]),
+ (VTBL_ENTRY)&_ZN7ee334003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334003fooEv,_ZTv0_n16_N7ee334003fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33400[];
+extern void _ZN6dd34003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3400__7ee33400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd3400__7ee33400[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee33400[] = {
+ {&(_ZTV7ee33400[4]), 4,14},
+ {&(_ZTV7ee33400[9]), 9,14},
+ {&(_ZTV7ee33400[13]), 13,14},
+ {&(_tg__ZTV6dd3400__7ee33400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd3400__7ee33400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33400[];
+extern VTBL_ENTRY _ZTV7ee33400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33400[];
+static VTBL_ENTRY alt_thunk_names112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334003fooEv,_ZTv0_n16_N7ee334003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334003fooEv,_ZThn8_N7ee334003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33400 = { "ee33400", // class name
+ bases_ee33400, 4,
+ &(vtc_ee33400[0]), // expected_vtbl_contents
+ &(vtt_ee33400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33400),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names112,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43400 : dd3400 {
+ int e;
+ virtual void bar(); // _ZN7ee434003barEv
+ ~ee43400(); // tgen
+ ee43400(); // tgen
+};
+//SIG(1 ee43400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43400 ::bar(){vfunc_called(this, "_ZN7ee434003barEv");}
+ee43400 ::~ee43400(){ note_dtor("ee43400", this);} // tgen
+ee43400 ::ee43400(){ note_ctor("ee43400", this);} // tgen
+
+static void Test_ee43400()
+{
+ extern Class_Descriptor cd_ee43400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43400, buf);
+ ee43400 *dp, &lv = *(dp=new (buf) ee43400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee43400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee43400");
+ check_base_class_offset(lv, (cc400*)(dd3400*), ABISELECT(16,12), "ee43400");
+ check_base_class_offset(lv, (dd3400*), 0, "ee43400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43400.e");
+ test_class_info(&lv, &cd_ee43400);
+ dp->~ee43400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43400(Test_ee43400, "ee43400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43400C1Ev();
+extern void _ZN7ee43400D1Ev();
+Name_Map name_map_ee43400[] = {
+ NSPAIR(_ZN7ee43400C1Ev),
+ NSPAIR(_ZN7ee43400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd3400;
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+static Base_Class bases_ee43400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43400[];
+extern void _ZN6dd34003fooEv();
+extern void _ZN7ee434003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee434003barEv,_ZTv0_n12_N7ee434003barEv)();
+extern void ABISELECT(_ZThn16_N7ee434003barEv,_ZThn12_N7ee434003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+ (VTBL_ENTRY)&_ZN7ee434003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee434003barEv,_ZTv0_n12_N7ee434003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43400[];
+extern void _ZN6dd34003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3400__7ee43400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd3400__7ee43400[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee43400[] = {
+ {&(_ZTV7ee43400[3]), 3,9},
+ {&(_tg__ZTV6dd3400__7ee43400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd3400__7ee43400[3]), 3,4},
+ {&(_ZTV7ee43400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43400[];
+extern VTBL_ENTRY _ZTV7ee43400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43400[];
+static VTBL_ENTRY alt_thunk_names113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee434003barEv,_ZTv0_n12_N7ee434003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434003barEv,_ZThn12_N7ee434003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43400 = { "ee43400", // class name
+ bases_ee43400, 4,
+ &(vtc_ee43400[0]), // expected_vtbl_contents
+ &(vtt_ee43400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names113,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53400 : virtual dd3400 {
+ int e;
+ virtual void bar(); // _ZN7ee534003barEv
+ ~ee53400(); // tgen
+ ee53400(); // tgen
+};
+//SIG(1 ee53400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53400 ::bar(){vfunc_called(this, "_ZN7ee534003barEv");}
+ee53400 ::~ee53400(){ note_dtor("ee53400", this);} // tgen
+ee53400 ::ee53400(){ note_ctor("ee53400", this);} // tgen
+
+static void Test_ee53400()
+{
+ extern Class_Descriptor cd_ee53400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53400, buf);
+ ee53400 *dp, &lv = *(dp=new (buf) ee53400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee53400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee53400");
+ check_base_class_offset(lv, (cc400*)(dd3400*), ABISELECT(32,16), "ee53400");
+ check_base_class_offset(lv, (dd3400*), ABISELECT(16,8), "ee53400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53400.e");
+ test_class_info(&lv, &cd_ee53400);
+ dp->~ee53400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53400(Test_ee53400, "ee53400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53400C1Ev();
+extern void _ZN7ee53400D1Ev();
+Name_Map name_map_ee53400[] = {
+ NSPAIR(_ZN7ee53400C1Ev),
+ NSPAIR(_ZN7ee53400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd3400;
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+static Base_Class bases_ee53400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3400, 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 _ZTI7ee53400[];
+extern void _ZN7ee534003barEv();
+extern void _ZN6dd34003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee534003barEv,_ZTv0_n12_N7ee534003barEv)();
+extern void ABISELECT(_ZThn32_N7ee534003barEv,_ZThn16_N7ee534003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53400[0]),
+ (VTBL_ENTRY)&_ZN7ee534003barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee534003barEv,_ZTv0_n12_N7ee534003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53400[];
+extern void _ZN6dd34003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3400__7ee53400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd3400__7ee53400[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee53400[] = {
+ {&(_ZTV7ee53400[4]), 4,14},
+ {&(_ZTV7ee53400[9]), 9,14},
+ {&(_ZTV7ee53400[13]), 13,14},
+ {&(_tg__ZTV6dd3400__7ee53400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd3400__7ee53400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53400[];
+extern VTBL_ENTRY _ZTV7ee53400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53400[];
+static VTBL_ENTRY alt_thunk_names114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee534003barEv,_ZTv0_n12_N7ee534003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534003barEv,_ZThn16_N7ee534003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53400 = { "ee53400", // class name
+ bases_ee53400, 4,
+ &(vtc_ee53400[0]), // expected_vtbl_contents
+ &(vtt_ee53400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53400),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names114,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63400 : dd3400 {
+ int e;
+ virtual void foo(); // _ZN7ee634003fooEv
+ virtual void bar(); // _ZN7ee634003barEv
+ ~ee63400(); // tgen
+ ee63400(); // tgen
+};
+//SIG(1 ee63400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63400 ::foo(){vfunc_called(this, "_ZN7ee634003fooEv");}
+void ee63400 ::bar(){vfunc_called(this, "_ZN7ee634003barEv");}
+ee63400 ::~ee63400(){ note_dtor("ee63400", this);} // tgen
+ee63400 ::ee63400(){ note_ctor("ee63400", this);} // tgen
+
+static void Test_ee63400()
+{
+ extern Class_Descriptor cd_ee63400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63400, buf);
+ ee63400 *dp, &lv = *(dp=new (buf) ee63400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee63400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee63400");
+ check_base_class_offset(lv, (cc400*)(dd3400*), ABISELECT(16,12), "ee63400");
+ check_base_class_offset(lv, (dd3400*), 0, "ee63400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63400.e");
+ test_class_info(&lv, &cd_ee63400);
+ dp->~ee63400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63400(Test_ee63400, "ee63400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63400C1Ev();
+extern void _ZN7ee63400D1Ev();
+Name_Map name_map_ee63400[] = {
+ NSPAIR(_ZN7ee63400C1Ev),
+ NSPAIR(_ZN7ee63400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd3400;
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+static Base_Class bases_ee63400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63400[];
+extern void _ZN7ee634003fooEv();
+extern void _ZN7ee634003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634003barEv,_ZTv0_n12_N7ee634003barEv)();
+extern void ABISELECT(_ZThn16_N7ee634003barEv,_ZThn12_N7ee634003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63400[0]),
+ (VTBL_ENTRY)&_ZN7ee634003fooEv,
+ (VTBL_ENTRY)&_ZN7ee634003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634003barEv,_ZTv0_n12_N7ee634003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63400[];
+extern void _ZN6dd34003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3400__7ee63400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd3400__7ee63400[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee63400[] = {
+ {&(_ZTV7ee63400[3]), 3,9},
+ {&(_tg__ZTV6dd3400__7ee63400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd3400__7ee63400[3]), 3,4},
+ {&(_ZTV7ee63400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63400[];
+extern VTBL_ENTRY _ZTV7ee63400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63400[];
+static VTBL_ENTRY alt_thunk_names115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634003barEv,_ZTv0_n12_N7ee634003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634003barEv,_ZThn12_N7ee634003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63400 = { "ee63400", // class name
+ bases_ee63400, 4,
+ &(vtc_ee63400[0]), // expected_vtbl_contents
+ &(vtt_ee63400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names115,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73400 : virtual dd3400 {
+ int e;
+ virtual void foo(); // _ZN7ee734003fooEv
+ virtual void bar(); // _ZN7ee734003barEv
+ ~ee73400(); // tgen
+ ee73400(); // tgen
+};
+//SIG(1 ee73400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73400 ::foo(){vfunc_called(this, "_ZN7ee734003fooEv");}
+void ee73400 ::bar(){vfunc_called(this, "_ZN7ee734003barEv");}
+ee73400 ::~ee73400(){ note_dtor("ee73400", this);} // tgen
+ee73400 ::ee73400(){ note_ctor("ee73400", this);} // tgen
+
+static void Test_ee73400()
+{
+ extern Class_Descriptor cd_ee73400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73400, buf);
+ ee73400 *dp, &lv = *(dp=new (buf) ee73400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee73400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee73400");
+ check_base_class_offset(lv, (cc400*)(dd3400*), ABISELECT(32,16), "ee73400");
+ check_base_class_offset(lv, (dd3400*), ABISELECT(16,8), "ee73400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73400.e");
+ test_class_info(&lv, &cd_ee73400);
+ dp->~ee73400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73400(Test_ee73400, "ee73400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73400C1Ev();
+extern void _ZN7ee73400D1Ev();
+Name_Map name_map_ee73400[] = {
+ NSPAIR(_ZN7ee73400C1Ev),
+ NSPAIR(_ZN7ee73400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd3400;
+extern VTBL_ENTRY _ZTI6dd3400[];
+extern VTBL_ENTRY _ZTV6dd3400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3400[];
+static Base_Class bases_ee73400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3400, 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 _ZTI7ee73400[];
+extern void _ZN7ee734003fooEv();
+extern void _ZN7ee734003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734003fooEv,_ZTv0_n16_N7ee734003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734003fooEv,_ZThn8_N7ee734003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734003barEv,_ZTv0_n12_N7ee734003barEv)();
+extern void ABISELECT(_ZThn32_N7ee734003barEv,_ZThn16_N7ee734003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73400[0]),
+ (VTBL_ENTRY)&_ZN7ee734003fooEv,
+ (VTBL_ENTRY)&_ZN7ee734003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734003fooEv,_ZTv0_n16_N7ee734003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734003barEv,_ZTv0_n12_N7ee734003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73400[];
+extern void _ZN6dd34003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3400__7ee73400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN6dd34003fooEv,
+};
+extern void _ZN5cc4003barEv();
+static VTBL_ENTRY _tg__ZTV5cc400__6dd3400__7ee73400[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3400[0]),
+ (VTBL_ENTRY)&_ZN5cc4003barEv,
+};
+static VTT_ENTRY vtt_ee73400[] = {
+ {&(_ZTV7ee73400[4]), 4,15},
+ {&(_ZTV7ee73400[10]), 10,15},
+ {&(_ZTV7ee73400[14]), 14,15},
+ {&(_tg__ZTV6dd3400__7ee73400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd3400__7ee73400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73400[];
+extern VTBL_ENTRY _ZTV7ee73400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73400[];
+static VTBL_ENTRY alt_thunk_names116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734003barEv,_ZTv0_n12_N7ee734003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734003barEv,_ZThn16_N7ee734003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734003fooEv,_ZTv0_n16_N7ee734003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734003fooEv,_ZThn8_N7ee734003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73400 = { "ee73400", // class name
+ bases_ee73400, 4,
+ &(vtc_ee73400[0]), // expected_vtbl_contents
+ &(vtt_ee73400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73400),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4400 : cc400 {
+ int d;
+ virtual void bar(); // _ZN6dd44003barEv
+ ~dd4400(); // tgen
+ dd4400(); // tgen
+};
+//SIG(-1 dd4400) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd4400 ::bar(){vfunc_called(this, "_ZN6dd44003barEv");}
+dd4400 ::~dd4400(){ note_dtor("dd4400", this);} // tgen
+dd4400 ::dd4400(){ note_ctor("dd4400", this);} // tgen
+
+static void Test_dd4400()
+{
+ extern Class_Descriptor cd_dd4400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4400, buf);
+ dd4400 *dp, &lv = *(dp=new (buf) dd4400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(8,4), "dd4400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(8,4), "dd4400");
+ check_base_class_offset(lv, (cc400*), 0, "dd4400");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4400.d");
+ test_class_info(&lv, &cd_dd4400);
+ dp->~dd4400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4400(Test_dd4400, "dd4400", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4400C1Ev();
+extern void _ZN6dd4400D1Ev();
+Name_Map name_map_dd4400[] = {
+ NSPAIR(_ZN6dd4400C1Ev),
+ NSPAIR(_ZN6dd4400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+static Base_Class bases_dd4400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern void _ZN6dd44003barEv();
+static VTBL_ENTRY vtc_dd4400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4400[0]),
+ (VTBL_ENTRY)&_ZN6dd44003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+Class_Descriptor cd_dd4400 = { "dd4400", // class name
+ bases_dd4400, 3,
+ &(vtc_dd4400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4400),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04400 : dd4400 {
+ int e;
+ ~ee04400(); // tgen
+ ee04400(); // tgen
+};
+//SIG(1 ee04400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04400 ::~ee04400(){ note_dtor("ee04400", this);} // tgen
+ee04400 ::ee04400(){ note_ctor("ee04400", this);} // tgen
+
+static void Test_ee04400()
+{
+ extern Class_Descriptor cd_ee04400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04400, buf);
+ ee04400 *dp, &lv = *(dp=new (buf) ee04400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd4400*), ABISELECT(8,4), "ee04400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd4400*), ABISELECT(8,4), "ee04400");
+ check_base_class_offset(lv, (cc400*)(dd4400*), 0, "ee04400");
+ check_base_class_offset(lv, (dd4400*), 0, "ee04400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04400.e");
+ test_class_info(&lv, &cd_ee04400);
+ dp->~ee04400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04400(Test_ee04400, "ee04400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04400C1Ev();
+extern void _ZN7ee04400D1Ev();
+Name_Map name_map_ee04400[] = {
+ NSPAIR(_ZN7ee04400C1Ev),
+ NSPAIR(_ZN7ee04400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd4400;
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+static Base_Class bases_ee04400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4400, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04400[];
+extern void _ZN6dd44003barEv();
+static VTBL_ENTRY vtc_ee04400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04400[0]),
+ (VTBL_ENTRY)&_ZN6dd44003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04400[];
+extern VTBL_ENTRY _ZTV7ee04400[];
+Class_Descriptor cd_ee04400 = { "ee04400", // class name
+ bases_ee04400, 4,
+ &(vtc_ee04400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04400),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14400 : virtual dd4400 {
+ int e;
+ ~ee14400(); // tgen
+ ee14400(); // tgen
+};
+//SIG(1 ee14400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14400 ::~ee14400(){ note_dtor("ee14400", this);} // tgen
+ee14400 ::ee14400(){ note_ctor("ee14400", this);} // tgen
+
+static void Test_ee14400()
+{
+ extern Class_Descriptor cd_ee14400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14400, buf);
+ ee14400 *dp, &lv = *(dp=new (buf) ee14400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd4400*), ABISELECT(24,12), "ee14400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd4400*), ABISELECT(24,12), "ee14400");
+ check_base_class_offset(lv, (cc400*)(dd4400*), ABISELECT(16,8), "ee14400");
+ check_base_class_offset(lv, (dd4400*), ABISELECT(16,8), "ee14400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14400.e");
+ test_class_info(&lv, &cd_ee14400);
+ dp->~ee14400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14400(Test_ee14400, "ee14400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14400C1Ev();
+extern void _ZN7ee14400D1Ev();
+Name_Map name_map_ee14400[] = {
+ NSPAIR(_ZN7ee14400C1Ev),
+ NSPAIR(_ZN7ee14400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd4400;
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+static Base_Class bases_ee14400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4400, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14400[];
+extern void _ZN6dd44003barEv();
+static VTBL_ENTRY vtc_ee14400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14400[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14400[0]),
+ (VTBL_ENTRY)&_ZN6dd44003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14400[];
+static VTT_ENTRY vtt_ee14400[] = {
+ {&(_ZTV7ee14400[3]), 3,7},
+ {&(_ZTV7ee14400[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee14400[];
+extern VTBL_ENTRY _ZTV7ee14400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14400[];
+Class_Descriptor cd_ee14400 = { "ee14400", // class name
+ bases_ee14400, 4,
+ &(vtc_ee14400[0]), // expected_vtbl_contents
+ &(vtt_ee14400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14400),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24400 : dd4400 {
+ int e;
+ virtual void foo(); // _ZN7ee244003fooEv
+ ~ee24400(); // tgen
+ ee24400(); // tgen
+};
+//SIG(1 ee24400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24400 ::foo(){vfunc_called(this, "_ZN7ee244003fooEv");}
+ee24400 ::~ee24400(){ note_dtor("ee24400", this);} // tgen
+ee24400 ::ee24400(){ note_ctor("ee24400", this);} // tgen
+
+static void Test_ee24400()
+{
+ extern Class_Descriptor cd_ee24400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24400, buf);
+ ee24400 *dp, &lv = *(dp=new (buf) ee24400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd4400*), ABISELECT(8,4), "ee24400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd4400*), ABISELECT(8,4), "ee24400");
+ check_base_class_offset(lv, (cc400*)(dd4400*), 0, "ee24400");
+ check_base_class_offset(lv, (dd4400*), 0, "ee24400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24400.e");
+ test_class_info(&lv, &cd_ee24400);
+ dp->~ee24400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24400(Test_ee24400, "ee24400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24400C1Ev();
+extern void _ZN7ee24400D1Ev();
+Name_Map name_map_ee24400[] = {
+ NSPAIR(_ZN7ee24400C1Ev),
+ NSPAIR(_ZN7ee24400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd4400;
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+static Base_Class bases_ee24400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24400[];
+extern void _ZN6dd44003barEv();
+extern void _ZN7ee244003fooEv();
+static VTBL_ENTRY vtc_ee24400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24400[0]),
+ (VTBL_ENTRY)&_ZN6dd44003barEv,
+ (VTBL_ENTRY)&_ZN7ee244003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee24400[];
+extern VTBL_ENTRY _ZTV7ee24400[];
+Class_Descriptor cd_ee24400 = { "ee24400", // class name
+ bases_ee24400, 4,
+ &(vtc_ee24400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34400 : virtual dd4400 {
+ int e;
+ virtual void foo(); // _ZN7ee344003fooEv
+ ~ee34400(); // tgen
+ ee34400(); // tgen
+};
+//SIG(1 ee34400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34400 ::foo(){vfunc_called(this, "_ZN7ee344003fooEv");}
+ee34400 ::~ee34400(){ note_dtor("ee34400", this);} // tgen
+ee34400 ::ee34400(){ note_ctor("ee34400", this);} // tgen
+
+static void Test_ee34400()
+{
+ extern Class_Descriptor cd_ee34400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34400, buf);
+ ee34400 *dp, &lv = *(dp=new (buf) ee34400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd4400*), ABISELECT(24,12), "ee34400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd4400*), ABISELECT(24,12), "ee34400");
+ check_base_class_offset(lv, (cc400*)(dd4400*), ABISELECT(16,8), "ee34400");
+ check_base_class_offset(lv, (dd4400*), ABISELECT(16,8), "ee34400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34400.e");
+ test_class_info(&lv, &cd_ee34400);
+ dp->~ee34400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34400(Test_ee34400, "ee34400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34400C1Ev();
+extern void _ZN7ee34400D1Ev();
+Name_Map name_map_ee34400[] = {
+ NSPAIR(_ZN7ee34400C1Ev),
+ NSPAIR(_ZN7ee34400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd4400;
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+static Base_Class bases_ee34400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34400[];
+extern void _ZN7ee344003fooEv();
+extern void _ZN6dd44003barEv();
+static VTBL_ENTRY vtc_ee34400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34400[0]),
+ (VTBL_ENTRY)&_ZN7ee344003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34400[0]),
+ (VTBL_ENTRY)&_ZN6dd44003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34400[];
+static VTT_ENTRY vtt_ee34400[] = {
+ {&(_ZTV7ee34400[3]), 3,8},
+ {&(_ZTV7ee34400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee34400[];
+extern VTBL_ENTRY _ZTV7ee34400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34400[];
+Class_Descriptor cd_ee34400 = { "ee34400", // class name
+ bases_ee34400, 4,
+ &(vtc_ee34400[0]), // expected_vtbl_contents
+ &(vtt_ee34400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44400 : dd4400 {
+ int e;
+ virtual void bar(); // _ZN7ee444003barEv
+ ~ee44400(); // tgen
+ ee44400(); // tgen
+};
+//SIG(1 ee44400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44400 ::bar(){vfunc_called(this, "_ZN7ee444003barEv");}
+ee44400 ::~ee44400(){ note_dtor("ee44400", this);} // tgen
+ee44400 ::ee44400(){ note_ctor("ee44400", this);} // tgen
+
+static void Test_ee44400()
+{
+ extern Class_Descriptor cd_ee44400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44400, buf);
+ ee44400 *dp, &lv = *(dp=new (buf) ee44400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd4400*), ABISELECT(8,4), "ee44400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd4400*), ABISELECT(8,4), "ee44400");
+ check_base_class_offset(lv, (cc400*)(dd4400*), 0, "ee44400");
+ check_base_class_offset(lv, (dd4400*), 0, "ee44400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44400.e");
+ test_class_info(&lv, &cd_ee44400);
+ dp->~ee44400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44400(Test_ee44400, "ee44400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44400C1Ev();
+extern void _ZN7ee44400D1Ev();
+Name_Map name_map_ee44400[] = {
+ NSPAIR(_ZN7ee44400C1Ev),
+ NSPAIR(_ZN7ee44400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd4400;
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+static Base_Class bases_ee44400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44400[];
+extern void _ZN7ee444003barEv();
+static VTBL_ENTRY vtc_ee44400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44400[0]),
+ (VTBL_ENTRY)&_ZN7ee444003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44400[];
+extern VTBL_ENTRY _ZTV7ee44400[];
+Class_Descriptor cd_ee44400 = { "ee44400", // class name
+ bases_ee44400, 4,
+ &(vtc_ee44400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44400),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54400 : virtual dd4400 {
+ int e;
+ virtual void bar(); // _ZN7ee544003barEv
+ ~ee54400(); // tgen
+ ee54400(); // tgen
+};
+//SIG(1 ee54400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54400 ::bar(){vfunc_called(this, "_ZN7ee544003barEv");}
+ee54400 ::~ee54400(){ note_dtor("ee54400", this);} // tgen
+ee54400 ::ee54400(){ note_ctor("ee54400", this);} // tgen
+
+static void Test_ee54400()
+{
+ extern Class_Descriptor cd_ee54400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54400, buf);
+ ee54400 *dp, &lv = *(dp=new (buf) ee54400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd4400*), ABISELECT(24,12), "ee54400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd4400*), ABISELECT(24,12), "ee54400");
+ check_base_class_offset(lv, (cc400*)(dd4400*), ABISELECT(16,8), "ee54400");
+ check_base_class_offset(lv, (dd4400*), ABISELECT(16,8), "ee54400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54400.e");
+ test_class_info(&lv, &cd_ee54400);
+ dp->~ee54400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54400(Test_ee54400, "ee54400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54400C1Ev();
+extern void _ZN7ee54400D1Ev();
+Name_Map name_map_ee54400[] = {
+ NSPAIR(_ZN7ee54400C1Ev),
+ NSPAIR(_ZN7ee54400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd4400;
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+static Base_Class bases_ee54400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54400[];
+extern void _ZN7ee544003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee544003barEv,_ZTv0_n12_N7ee544003barEv)();
+extern void ABISELECT(_ZThn16_N7ee544003barEv,_ZThn8_N7ee544003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54400[0]),
+ (VTBL_ENTRY)&_ZN7ee544003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee544003barEv,_ZTv0_n12_N7ee544003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54400[];
+static VTT_ENTRY vtt_ee54400[] = {
+ {&(_ZTV7ee54400[3]), 3,8},
+ {&(_ZTV7ee54400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee54400[];
+extern VTBL_ENTRY _ZTV7ee54400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54400[];
+static VTBL_ENTRY alt_thunk_names117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee544003barEv,_ZTv0_n12_N7ee544003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544003barEv,_ZThn8_N7ee544003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54400 = { "ee54400", // class name
+ bases_ee54400, 4,
+ &(vtc_ee54400[0]), // expected_vtbl_contents
+ &(vtt_ee54400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names117,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64400 : dd4400 {
+ int e;
+ virtual void foo(); // _ZN7ee644003fooEv
+ virtual void bar(); // _ZN7ee644003barEv
+ ~ee64400(); // tgen
+ ee64400(); // tgen
+};
+//SIG(1 ee64400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64400 ::foo(){vfunc_called(this, "_ZN7ee644003fooEv");}
+void ee64400 ::bar(){vfunc_called(this, "_ZN7ee644003barEv");}
+ee64400 ::~ee64400(){ note_dtor("ee64400", this);} // tgen
+ee64400 ::ee64400(){ note_ctor("ee64400", this);} // tgen
+
+static void Test_ee64400()
+{
+ extern Class_Descriptor cd_ee64400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64400, buf);
+ ee64400 *dp, &lv = *(dp=new (buf) ee64400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd4400*), ABISELECT(8,4), "ee64400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd4400*), ABISELECT(8,4), "ee64400");
+ check_base_class_offset(lv, (cc400*)(dd4400*), 0, "ee64400");
+ check_base_class_offset(lv, (dd4400*), 0, "ee64400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64400.e");
+ test_class_info(&lv, &cd_ee64400);
+ dp->~ee64400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64400(Test_ee64400, "ee64400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64400C1Ev();
+extern void _ZN7ee64400D1Ev();
+Name_Map name_map_ee64400[] = {
+ NSPAIR(_ZN7ee64400C1Ev),
+ NSPAIR(_ZN7ee64400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd4400;
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+static Base_Class bases_ee64400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64400[];
+extern void _ZN7ee644003barEv();
+extern void _ZN7ee644003fooEv();
+static VTBL_ENTRY vtc_ee64400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64400[0]),
+ (VTBL_ENTRY)&_ZN7ee644003barEv,
+ (VTBL_ENTRY)&_ZN7ee644003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee64400[];
+extern VTBL_ENTRY _ZTV7ee64400[];
+Class_Descriptor cd_ee64400 = { "ee64400", // class name
+ bases_ee64400, 4,
+ &(vtc_ee64400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74400 : virtual dd4400 {
+ int e;
+ virtual void foo(); // _ZN7ee744003fooEv
+ virtual void bar(); // _ZN7ee744003barEv
+ ~ee74400(); // tgen
+ ee74400(); // tgen
+};
+//SIG(1 ee74400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74400 ::foo(){vfunc_called(this, "_ZN7ee744003fooEv");}
+void ee74400 ::bar(){vfunc_called(this, "_ZN7ee744003barEv");}
+ee74400 ::~ee74400(){ note_dtor("ee74400", this);} // tgen
+ee74400 ::ee74400(){ note_ctor("ee74400", this);} // tgen
+
+static void Test_ee74400()
+{
+ extern Class_Descriptor cd_ee74400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74400, buf);
+ ee74400 *dp, &lv = *(dp=new (buf) ee74400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd4400*), ABISELECT(24,12), "ee74400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd4400*), ABISELECT(24,12), "ee74400");
+ check_base_class_offset(lv, (cc400*)(dd4400*), ABISELECT(16,8), "ee74400");
+ check_base_class_offset(lv, (dd4400*), ABISELECT(16,8), "ee74400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74400.e");
+ test_class_info(&lv, &cd_ee74400);
+ dp->~ee74400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74400(Test_ee74400, "ee74400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74400C1Ev();
+extern void _ZN7ee74400D1Ev();
+Name_Map name_map_ee74400[] = {
+ NSPAIR(_ZN7ee74400C1Ev),
+ NSPAIR(_ZN7ee74400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd4400;
+extern VTBL_ENTRY _ZTI6dd4400[];
+extern VTBL_ENTRY _ZTV6dd4400[];
+static Base_Class bases_ee74400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74400[];
+extern void _ZN7ee744003fooEv();
+extern void _ZN7ee744003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744003barEv,_ZTv0_n12_N7ee744003barEv)();
+extern void ABISELECT(_ZThn16_N7ee744003barEv,_ZThn8_N7ee744003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74400[0]),
+ (VTBL_ENTRY)&_ZN7ee744003fooEv,
+ (VTBL_ENTRY)&_ZN7ee744003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744003barEv,_ZTv0_n12_N7ee744003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74400[];
+static VTT_ENTRY vtt_ee74400[] = {
+ {&(_ZTV7ee74400[3]), 3,9},
+ {&(_ZTV7ee74400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee74400[];
+extern VTBL_ENTRY _ZTV7ee74400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74400[];
+static VTBL_ENTRY alt_thunk_names118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744003barEv,_ZTv0_n12_N7ee744003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744003barEv,_ZThn8_N7ee744003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74400 = { "ee74400", // class name
+ bases_ee74400, 4,
+ &(vtc_ee74400[0]), // expected_vtbl_contents
+ &(vtt_ee74400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names118,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5400 : virtual cc400 {
+ int d;
+ virtual void bar(); // _ZN6dd54003barEv
+ ~dd5400(); // tgen
+ dd5400(); // tgen
+};
+//SIG(-1 dd5400) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd5400 ::bar(){vfunc_called(this, "_ZN6dd54003barEv");}
+dd5400 ::~dd5400(){ note_dtor("dd5400", this);} // tgen
+dd5400 ::dd5400(){ note_ctor("dd5400", this);} // tgen
+
+static void Test_dd5400()
+{
+ extern Class_Descriptor cd_dd5400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5400, buf);
+ dd5400 *dp, &lv = *(dp=new (buf) dd5400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,12), "dd5400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,12), "dd5400");
+ check_base_class_offset(lv, (cc400*), ABISELECT(16,8), "dd5400");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5400.d");
+ test_class_info(&lv, &cd_dd5400);
+ dp->~dd5400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5400(Test_dd5400, "dd5400", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5400C1Ev();
+extern void _ZN6dd5400D1Ev();
+Name_Map name_map_dd5400[] = {
+ NSPAIR(_ZN6dd5400C1Ev),
+ NSPAIR(_ZN6dd5400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+static Base_Class bases_dd5400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern void _ZN6dd54003barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5400[];
+static VTT_ENTRY vtt_dd5400[] = {
+ {&(_ZTV6dd5400[3]), 3,8},
+ {&(_ZTV6dd5400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static VTBL_ENTRY alt_thunk_names119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5400 = { "dd5400", // class name
+ bases_dd5400, 3,
+ &(vtc_dd5400[0]), // expected_vtbl_contents
+ &(vtt_dd5400[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5400),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names119,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05400 : dd5400 {
+ int e;
+ ~ee05400(); // tgen
+ ee05400(); // tgen
+};
+//SIG(1 ee05400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05400 ::~ee05400(){ note_dtor("ee05400", this);} // tgen
+ee05400 ::ee05400(){ note_ctor("ee05400", this);} // tgen
+
+static void Test_ee05400()
+{
+ extern Class_Descriptor cd_ee05400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05400, buf);
+ ee05400 *dp, &lv = *(dp=new (buf) ee05400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee05400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee05400");
+ check_base_class_offset(lv, (cc400*)(dd5400*), ABISELECT(16,12), "ee05400");
+ check_base_class_offset(lv, (dd5400*), 0, "ee05400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05400.e");
+ test_class_info(&lv, &cd_ee05400);
+ dp->~ee05400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05400(Test_ee05400, "ee05400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05400C1Ev();
+extern void _ZN7ee05400D1Ev();
+Name_Map name_map_ee05400[] = {
+ NSPAIR(_ZN7ee05400C1Ev),
+ NSPAIR(_ZN7ee05400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd5400;
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static Base_Class bases_ee05400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05400[];
+extern void _ZN6dd54003barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05400[];
+extern void _ZN6dd54003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5400__7ee05400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd5400__7ee05400[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+static VTT_ENTRY vtt_ee05400[] = {
+ {&(_ZTV7ee05400[3]), 3,8},
+ {&(_tg__ZTV6dd5400__7ee05400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd5400__7ee05400[3]), 3,4},
+ {&(_ZTV7ee05400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05400[];
+extern VTBL_ENTRY _ZTV7ee05400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05400[];
+static VTBL_ENTRY alt_thunk_names120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05400 = { "ee05400", // class name
+ bases_ee05400, 4,
+ &(vtc_ee05400[0]), // expected_vtbl_contents
+ &(vtt_ee05400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names120,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15400 : virtual dd5400 {
+ int e;
+ ~ee15400(); // tgen
+ ee15400(); // tgen
+};
+//SIG(1 ee15400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15400 ::~ee15400(){ note_dtor("ee15400", this);} // tgen
+ee15400 ::ee15400(){ note_ctor("ee15400", this);} // tgen
+
+static void Test_ee15400()
+{
+ extern Class_Descriptor cd_ee15400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15400, buf);
+ ee15400 *dp, &lv = *(dp=new (buf) ee15400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee15400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee15400");
+ check_base_class_offset(lv, (cc400*)(dd5400*), ABISELECT(32,16), "ee15400");
+ check_base_class_offset(lv, (dd5400*), ABISELECT(16,8), "ee15400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15400.e");
+ test_class_info(&lv, &cd_ee15400);
+ dp->~ee15400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15400(Test_ee15400, "ee15400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15400C1Ev();
+extern void _ZN7ee15400D1Ev();
+Name_Map name_map_ee15400[] = {
+ NSPAIR(_ZN7ee15400C1Ev),
+ NSPAIR(_ZN7ee15400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd5400;
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static Base_Class bases_ee15400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15400[];
+extern void _ZN6dd54003barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15400[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15400[];
+extern void _ZN6dd54003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5400__7ee15400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd5400__7ee15400[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+static VTT_ENTRY vtt_ee15400[] = {
+ {&(_ZTV7ee15400[4]), 4,13},
+ {&(_ZTV7ee15400[8]), 8,13},
+ {&(_ZTV7ee15400[12]), 12,13},
+ {&(_tg__ZTV6dd5400__7ee15400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd5400__7ee15400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15400[];
+extern VTBL_ENTRY _ZTV7ee15400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15400[];
+static VTBL_ENTRY alt_thunk_names121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15400 = { "ee15400", // class name
+ bases_ee15400, 4,
+ &(vtc_ee15400[0]), // expected_vtbl_contents
+ &(vtt_ee15400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15400),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names121,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25400 : dd5400 {
+ int e;
+ virtual void foo(); // _ZN7ee254003fooEv
+ ~ee25400(); // tgen
+ ee25400(); // tgen
+};
+//SIG(1 ee25400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25400 ::foo(){vfunc_called(this, "_ZN7ee254003fooEv");}
+ee25400 ::~ee25400(){ note_dtor("ee25400", this);} // tgen
+ee25400 ::ee25400(){ note_ctor("ee25400", this);} // tgen
+
+static void Test_ee25400()
+{
+ extern Class_Descriptor cd_ee25400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25400, buf);
+ ee25400 *dp, &lv = *(dp=new (buf) ee25400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee25400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee25400");
+ check_base_class_offset(lv, (cc400*)(dd5400*), ABISELECT(16,12), "ee25400");
+ check_base_class_offset(lv, (dd5400*), 0, "ee25400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25400.e");
+ test_class_info(&lv, &cd_ee25400);
+ dp->~ee25400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25400(Test_ee25400, "ee25400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25400C1Ev();
+extern void _ZN7ee25400D1Ev();
+Name_Map name_map_ee25400[] = {
+ NSPAIR(_ZN7ee25400C1Ev),
+ NSPAIR(_ZN7ee25400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd5400;
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static Base_Class bases_ee25400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25400[];
+extern void _ZN6dd54003barEv();
+extern void _ZN7ee254003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+ (VTBL_ENTRY)&_ZN7ee254003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25400[];
+extern void _ZN6dd54003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5400__7ee25400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd5400__7ee25400[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+static VTT_ENTRY vtt_ee25400[] = {
+ {&(_ZTV7ee25400[3]), 3,9},
+ {&(_tg__ZTV6dd5400__7ee25400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd5400__7ee25400[3]), 3,4},
+ {&(_ZTV7ee25400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25400[];
+extern VTBL_ENTRY _ZTV7ee25400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25400[];
+static VTBL_ENTRY alt_thunk_names122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25400 = { "ee25400", // class name
+ bases_ee25400, 4,
+ &(vtc_ee25400[0]), // expected_vtbl_contents
+ &(vtt_ee25400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names122,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35400 : virtual dd5400 {
+ int e;
+ virtual void foo(); // _ZN7ee354003fooEv
+ ~ee35400(); // tgen
+ ee35400(); // tgen
+};
+//SIG(1 ee35400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35400 ::foo(){vfunc_called(this, "_ZN7ee354003fooEv");}
+ee35400 ::~ee35400(){ note_dtor("ee35400", this);} // tgen
+ee35400 ::ee35400(){ note_ctor("ee35400", this);} // tgen
+
+static void Test_ee35400()
+{
+ extern Class_Descriptor cd_ee35400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35400, buf);
+ ee35400 *dp, &lv = *(dp=new (buf) ee35400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee35400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee35400");
+ check_base_class_offset(lv, (cc400*)(dd5400*), ABISELECT(32,16), "ee35400");
+ check_base_class_offset(lv, (dd5400*), ABISELECT(16,8), "ee35400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35400.e");
+ test_class_info(&lv, &cd_ee35400);
+ dp->~ee35400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35400(Test_ee35400, "ee35400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35400C1Ev();
+extern void _ZN7ee35400D1Ev();
+Name_Map name_map_ee35400[] = {
+ NSPAIR(_ZN7ee35400C1Ev),
+ NSPAIR(_ZN7ee35400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd5400;
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static Base_Class bases_ee35400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5400, 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 _ZTI7ee35400[];
+extern void _ZN7ee354003fooEv();
+extern void _ZN6dd54003barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35400[0]),
+ (VTBL_ENTRY)&_ZN7ee354003fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35400[];
+extern void _ZN6dd54003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5400__7ee35400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd5400__7ee35400[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+static VTT_ENTRY vtt_ee35400[] = {
+ {&(_ZTV7ee35400[4]), 4,14},
+ {&(_ZTV7ee35400[9]), 9,14},
+ {&(_ZTV7ee35400[13]), 13,14},
+ {&(_tg__ZTV6dd5400__7ee35400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd5400__7ee35400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35400[];
+extern VTBL_ENTRY _ZTV7ee35400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35400[];
+static VTBL_ENTRY alt_thunk_names123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35400 = { "ee35400", // class name
+ bases_ee35400, 4,
+ &(vtc_ee35400[0]), // expected_vtbl_contents
+ &(vtt_ee35400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35400),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names123,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45400 : dd5400 {
+ int e;
+ virtual void bar(); // _ZN7ee454003barEv
+ ~ee45400(); // tgen
+ ee45400(); // tgen
+};
+//SIG(1 ee45400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45400 ::bar(){vfunc_called(this, "_ZN7ee454003barEv");}
+ee45400 ::~ee45400(){ note_dtor("ee45400", this);} // tgen
+ee45400 ::ee45400(){ note_ctor("ee45400", this);} // tgen
+
+static void Test_ee45400()
+{
+ extern Class_Descriptor cd_ee45400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45400, buf);
+ ee45400 *dp, &lv = *(dp=new (buf) ee45400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee45400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee45400");
+ check_base_class_offset(lv, (cc400*)(dd5400*), ABISELECT(16,12), "ee45400");
+ check_base_class_offset(lv, (dd5400*), 0, "ee45400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45400.e");
+ test_class_info(&lv, &cd_ee45400);
+ dp->~ee45400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45400(Test_ee45400, "ee45400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45400C1Ev();
+extern void _ZN7ee45400D1Ev();
+Name_Map name_map_ee45400[] = {
+ NSPAIR(_ZN7ee45400C1Ev),
+ NSPAIR(_ZN7ee45400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd5400;
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static Base_Class bases_ee45400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45400[];
+extern void _ZN7ee454003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee454003barEv,_ZTv0_n12_N7ee454003barEv)();
+extern void ABISELECT(_ZThn16_N7ee454003barEv,_ZThn12_N7ee454003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45400[0]),
+ (VTBL_ENTRY)&_ZN7ee454003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee454003barEv,_ZTv0_n12_N7ee454003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45400[];
+extern void _ZN6dd54003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5400__7ee45400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd5400__7ee45400[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+static VTT_ENTRY vtt_ee45400[] = {
+ {&(_ZTV7ee45400[3]), 3,8},
+ {&(_tg__ZTV6dd5400__7ee45400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd5400__7ee45400[3]), 3,4},
+ {&(_ZTV7ee45400[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45400[];
+extern VTBL_ENTRY _ZTV7ee45400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45400[];
+static VTBL_ENTRY alt_thunk_names124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee454003barEv,_ZTv0_n12_N7ee454003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454003barEv,_ZThn12_N7ee454003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45400 = { "ee45400", // class name
+ bases_ee45400, 4,
+ &(vtc_ee45400[0]), // expected_vtbl_contents
+ &(vtt_ee45400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45400),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55400 : virtual dd5400 {
+ int e;
+ virtual void bar(); // _ZN7ee554003barEv
+ ~ee55400(); // tgen
+ ee55400(); // tgen
+};
+//SIG(1 ee55400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55400 ::bar(){vfunc_called(this, "_ZN7ee554003barEv");}
+ee55400 ::~ee55400(){ note_dtor("ee55400", this);} // tgen
+ee55400 ::ee55400(){ note_ctor("ee55400", this);} // tgen
+
+static void Test_ee55400()
+{
+ extern Class_Descriptor cd_ee55400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55400, buf);
+ ee55400 *dp, &lv = *(dp=new (buf) ee55400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee55400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee55400");
+ check_base_class_offset(lv, (cc400*)(dd5400*), ABISELECT(32,16), "ee55400");
+ check_base_class_offset(lv, (dd5400*), ABISELECT(16,8), "ee55400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55400.e");
+ test_class_info(&lv, &cd_ee55400);
+ dp->~ee55400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55400(Test_ee55400, "ee55400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55400C1Ev();
+extern void _ZN7ee55400D1Ev();
+Name_Map name_map_ee55400[] = {
+ NSPAIR(_ZN7ee55400C1Ev),
+ NSPAIR(_ZN7ee55400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd5400;
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static Base_Class bases_ee55400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5400, 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 _ZTI7ee55400[];
+extern void _ZN7ee554003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554003barEv,_ZTv0_n16_N7ee554003barEv)();
+extern void ABISELECT(_ZThn16_N7ee554003barEv,_ZThn8_N7ee554003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee554003barEv,_ZTv0_n12_N7ee554003barEv)();
+extern void ABISELECT(_ZThn32_N7ee554003barEv,_ZThn16_N7ee554003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55400[0]),
+ (VTBL_ENTRY)&_ZN7ee554003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554003barEv,_ZTv0_n16_N7ee554003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee554003barEv,_ZTv0_n12_N7ee554003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55400[];
+extern void _ZN6dd54003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5400__7ee55400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd5400__7ee55400[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+static VTT_ENTRY vtt_ee55400[] = {
+ {&(_ZTV7ee55400[4]), 4,14},
+ {&(_ZTV7ee55400[9]), 9,14},
+ {&(_ZTV7ee55400[13]), 13,14},
+ {&(_tg__ZTV6dd5400__7ee55400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd5400__7ee55400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55400[];
+extern VTBL_ENTRY _ZTV7ee55400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55400[];
+static VTBL_ENTRY alt_thunk_names125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee554003barEv,_ZTv0_n12_N7ee554003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554003barEv,_ZThn16_N7ee554003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554003barEv,_ZTv0_n16_N7ee554003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554003barEv,_ZThn8_N7ee554003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55400 = { "ee55400", // class name
+ bases_ee55400, 4,
+ &(vtc_ee55400[0]), // expected_vtbl_contents
+ &(vtt_ee55400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55400),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names125,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65400 : dd5400 {
+ int e;
+ virtual void foo(); // _ZN7ee654003fooEv
+ virtual void bar(); // _ZN7ee654003barEv
+ ~ee65400(); // tgen
+ ee65400(); // tgen
+};
+//SIG(1 ee65400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65400 ::foo(){vfunc_called(this, "_ZN7ee654003fooEv");}
+void ee65400 ::bar(){vfunc_called(this, "_ZN7ee654003barEv");}
+ee65400 ::~ee65400(){ note_dtor("ee65400", this);} // tgen
+ee65400 ::ee65400(){ note_ctor("ee65400", this);} // tgen
+
+static void Test_ee65400()
+{
+ extern Class_Descriptor cd_ee65400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65400, buf);
+ ee65400 *dp, &lv = *(dp=new (buf) ee65400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee65400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee65400");
+ check_base_class_offset(lv, (cc400*)(dd5400*), ABISELECT(16,12), "ee65400");
+ check_base_class_offset(lv, (dd5400*), 0, "ee65400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65400.e");
+ test_class_info(&lv, &cd_ee65400);
+ dp->~ee65400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65400(Test_ee65400, "ee65400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65400C1Ev();
+extern void _ZN7ee65400D1Ev();
+Name_Map name_map_ee65400[] = {
+ NSPAIR(_ZN7ee65400C1Ev),
+ NSPAIR(_ZN7ee65400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd5400;
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static Base_Class bases_ee65400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65400[];
+extern void _ZN7ee654003barEv();
+extern void _ZN7ee654003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654003barEv,_ZTv0_n12_N7ee654003barEv)();
+extern void ABISELECT(_ZThn16_N7ee654003barEv,_ZThn12_N7ee654003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65400[0]),
+ (VTBL_ENTRY)&_ZN7ee654003barEv,
+ (VTBL_ENTRY)&_ZN7ee654003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654003barEv,_ZTv0_n12_N7ee654003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65400[];
+extern void _ZN6dd54003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5400__7ee65400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd5400__7ee65400[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+static VTT_ENTRY vtt_ee65400[] = {
+ {&(_ZTV7ee65400[3]), 3,9},
+ {&(_tg__ZTV6dd5400__7ee65400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd5400__7ee65400[3]), 3,4},
+ {&(_ZTV7ee65400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65400[];
+extern VTBL_ENTRY _ZTV7ee65400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65400[];
+static VTBL_ENTRY alt_thunk_names126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn12_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654003barEv,_ZTv0_n12_N7ee654003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654003barEv,_ZThn12_N7ee654003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65400 = { "ee65400", // class name
+ bases_ee65400, 4,
+ &(vtc_ee65400[0]), // expected_vtbl_contents
+ &(vtt_ee65400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names126,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75400 : virtual dd5400 {
+ int e;
+ virtual void foo(); // _ZN7ee754003fooEv
+ virtual void bar(); // _ZN7ee754003barEv
+ ~ee75400(); // tgen
+ ee75400(); // tgen
+};
+//SIG(1 ee75400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75400 ::foo(){vfunc_called(this, "_ZN7ee754003fooEv");}
+void ee75400 ::bar(){vfunc_called(this, "_ZN7ee754003barEv");}
+ee75400 ::~ee75400(){ note_dtor("ee75400", this);} // tgen
+ee75400 ::ee75400(){ note_ctor("ee75400", this);} // tgen
+
+static void Test_ee75400()
+{
+ extern Class_Descriptor cd_ee75400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75400, buf);
+ ee75400 *dp, &lv = *(dp=new (buf) ee75400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee75400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee75400");
+ check_base_class_offset(lv, (cc400*)(dd5400*), ABISELECT(32,16), "ee75400");
+ check_base_class_offset(lv, (dd5400*), ABISELECT(16,8), "ee75400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75400.e");
+ test_class_info(&lv, &cd_ee75400);
+ dp->~ee75400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75400(Test_ee75400, "ee75400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75400C1Ev();
+extern void _ZN7ee75400D1Ev();
+Name_Map name_map_ee75400[] = {
+ NSPAIR(_ZN7ee75400C1Ev),
+ NSPAIR(_ZN7ee75400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd5400;
+extern VTBL_ENTRY _ZTI6dd5400[];
+extern VTBL_ENTRY _ZTV6dd5400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5400[];
+static Base_Class bases_ee75400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5400, 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 _ZTI7ee75400[];
+extern void _ZN7ee754003fooEv();
+extern void _ZN7ee754003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754003barEv,_ZTv0_n16_N7ee754003barEv)();
+extern void ABISELECT(_ZThn16_N7ee754003barEv,_ZThn8_N7ee754003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754003barEv,_ZTv0_n12_N7ee754003barEv)();
+extern void ABISELECT(_ZThn32_N7ee754003barEv,_ZThn16_N7ee754003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75400[0]),
+ (VTBL_ENTRY)&_ZN7ee754003fooEv,
+ (VTBL_ENTRY)&_ZN7ee754003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754003barEv,_ZTv0_n16_N7ee754003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754003barEv,_ZTv0_n12_N7ee754003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75400[];
+extern void _ZN6dd54003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5400__7ee75400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&_ZN6dd54003barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv)();
+extern void ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd5400__7ee75400[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv),
+};
+static VTT_ENTRY vtt_ee75400[] = {
+ {&(_ZTV7ee75400[4]), 4,15},
+ {&(_ZTV7ee75400[10]), 10,15},
+ {&(_ZTV7ee75400[14]), 14,15},
+ {&(_tg__ZTV6dd5400__7ee75400[3]), 3,4},
+ {&(_tg__ZTV5cc400__6dd5400__7ee75400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75400[];
+extern VTBL_ENTRY _ZTV7ee75400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75400[];
+static VTBL_ENTRY alt_thunk_names127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd54003barEv,_ZTv0_n12_N6dd54003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54003barEv,_ZThn8_N6dd54003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754003barEv,_ZTv0_n12_N7ee754003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754003barEv,_ZThn16_N7ee754003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754003barEv,_ZTv0_n16_N7ee754003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754003barEv,_ZThn8_N7ee754003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75400 = { "ee75400", // class name
+ bases_ee75400, 4,
+ &(vtc_ee75400[0]), // expected_vtbl_contents
+ &(vtt_ee75400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75400),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names127,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6400 : cc400 {
+ int d;
+ virtual void bar(); // _ZN6dd64003barEv
+ virtual void foo(); // _ZN6dd64003fooEv
+ ~dd6400(); // tgen
+ dd6400(); // tgen
+};
+//SIG(-1 dd6400) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6400 ::bar(){vfunc_called(this, "_ZN6dd64003barEv");}
+void dd6400 ::foo(){vfunc_called(this, "_ZN6dd64003fooEv");}
+dd6400 ::~dd6400(){ note_dtor("dd6400", this);} // tgen
+dd6400 ::dd6400(){ note_ctor("dd6400", this);} // tgen
+
+static void Test_dd6400()
+{
+ extern Class_Descriptor cd_dd6400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6400, buf);
+ dd6400 *dp, &lv = *(dp=new (buf) dd6400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(8,4), "dd6400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(8,4), "dd6400");
+ check_base_class_offset(lv, (cc400*), 0, "dd6400");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6400.d");
+ test_class_info(&lv, &cd_dd6400);
+ dp->~dd6400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6400(Test_dd6400, "dd6400", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6400C1Ev();
+extern void _ZN6dd6400D1Ev();
+Name_Map name_map_dd6400[] = {
+ NSPAIR(_ZN6dd6400C1Ev),
+ NSPAIR(_ZN6dd6400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+static Base_Class bases_dd6400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern void _ZN6dd64003barEv();
+extern void _ZN6dd64003fooEv();
+static VTBL_ENTRY vtc_dd6400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6400[0]),
+ (VTBL_ENTRY)&_ZN6dd64003barEv,
+ (VTBL_ENTRY)&_ZN6dd64003fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+Class_Descriptor cd_dd6400 = { "dd6400", // class name
+ bases_dd6400, 3,
+ &(vtc_dd6400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06400 : dd6400 {
+ int e;
+ ~ee06400(); // tgen
+ ee06400(); // tgen
+};
+//SIG(1 ee06400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06400 ::~ee06400(){ note_dtor("ee06400", this);} // tgen
+ee06400 ::ee06400(){ note_ctor("ee06400", this);} // tgen
+
+static void Test_ee06400()
+{
+ extern Class_Descriptor cd_ee06400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06400, buf);
+ ee06400 *dp, &lv = *(dp=new (buf) ee06400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd6400*), ABISELECT(8,4), "ee06400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd6400*), ABISELECT(8,4), "ee06400");
+ check_base_class_offset(lv, (cc400*)(dd6400*), 0, "ee06400");
+ check_base_class_offset(lv, (dd6400*), 0, "ee06400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06400.e");
+ test_class_info(&lv, &cd_ee06400);
+ dp->~ee06400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06400(Test_ee06400, "ee06400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06400C1Ev();
+extern void _ZN7ee06400D1Ev();
+Name_Map name_map_ee06400[] = {
+ NSPAIR(_ZN7ee06400C1Ev),
+ NSPAIR(_ZN7ee06400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd6400;
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+static Base_Class bases_ee06400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6400, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06400[];
+extern void _ZN6dd64003barEv();
+extern void _ZN6dd64003fooEv();
+static VTBL_ENTRY vtc_ee06400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06400[0]),
+ (VTBL_ENTRY)&_ZN6dd64003barEv,
+ (VTBL_ENTRY)&_ZN6dd64003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee06400[];
+extern VTBL_ENTRY _ZTV7ee06400[];
+Class_Descriptor cd_ee06400 = { "ee06400", // class name
+ bases_ee06400, 4,
+ &(vtc_ee06400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16400 : virtual dd6400 {
+ int e;
+ ~ee16400(); // tgen
+ ee16400(); // tgen
+};
+//SIG(1 ee16400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16400 ::~ee16400(){ note_dtor("ee16400", this);} // tgen
+ee16400 ::ee16400(){ note_ctor("ee16400", this);} // tgen
+
+static void Test_ee16400()
+{
+ extern Class_Descriptor cd_ee16400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16400, buf);
+ ee16400 *dp, &lv = *(dp=new (buf) ee16400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd6400*), ABISELECT(24,12), "ee16400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd6400*), ABISELECT(24,12), "ee16400");
+ check_base_class_offset(lv, (cc400*)(dd6400*), ABISELECT(16,8), "ee16400");
+ check_base_class_offset(lv, (dd6400*), ABISELECT(16,8), "ee16400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16400.e");
+ test_class_info(&lv, &cd_ee16400);
+ dp->~ee16400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16400(Test_ee16400, "ee16400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16400C1Ev();
+extern void _ZN7ee16400D1Ev();
+Name_Map name_map_ee16400[] = {
+ NSPAIR(_ZN7ee16400C1Ev),
+ NSPAIR(_ZN7ee16400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd6400;
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+static Base_Class bases_ee16400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6400, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16400[];
+extern void _ZN6dd64003barEv();
+extern void _ZN6dd64003fooEv();
+static VTBL_ENTRY vtc_ee16400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16400[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16400[0]),
+ (VTBL_ENTRY)&_ZN6dd64003barEv,
+ (VTBL_ENTRY)&_ZN6dd64003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16400[];
+static VTT_ENTRY vtt_ee16400[] = {
+ {&(_ZTV7ee16400[3]), 3,9},
+ {&(_ZTV7ee16400[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16400[];
+extern VTBL_ENTRY _ZTV7ee16400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16400[];
+Class_Descriptor cd_ee16400 = { "ee16400", // class name
+ bases_ee16400, 4,
+ &(vtc_ee16400[0]), // expected_vtbl_contents
+ &(vtt_ee16400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26400 : dd6400 {
+ int e;
+ virtual void foo(); // _ZN7ee264003fooEv
+ ~ee26400(); // tgen
+ ee26400(); // tgen
+};
+//SIG(1 ee26400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26400 ::foo(){vfunc_called(this, "_ZN7ee264003fooEv");}
+ee26400 ::~ee26400(){ note_dtor("ee26400", this);} // tgen
+ee26400 ::ee26400(){ note_ctor("ee26400", this);} // tgen
+
+static void Test_ee26400()
+{
+ extern Class_Descriptor cd_ee26400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26400, buf);
+ ee26400 *dp, &lv = *(dp=new (buf) ee26400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd6400*), ABISELECT(8,4), "ee26400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd6400*), ABISELECT(8,4), "ee26400");
+ check_base_class_offset(lv, (cc400*)(dd6400*), 0, "ee26400");
+ check_base_class_offset(lv, (dd6400*), 0, "ee26400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26400.e");
+ test_class_info(&lv, &cd_ee26400);
+ dp->~ee26400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26400(Test_ee26400, "ee26400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26400C1Ev();
+extern void _ZN7ee26400D1Ev();
+Name_Map name_map_ee26400[] = {
+ NSPAIR(_ZN7ee26400C1Ev),
+ NSPAIR(_ZN7ee26400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd6400;
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+static Base_Class bases_ee26400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26400[];
+extern void _ZN6dd64003barEv();
+extern void _ZN7ee264003fooEv();
+static VTBL_ENTRY vtc_ee26400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26400[0]),
+ (VTBL_ENTRY)&_ZN6dd64003barEv,
+ (VTBL_ENTRY)&_ZN7ee264003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee26400[];
+extern VTBL_ENTRY _ZTV7ee26400[];
+Class_Descriptor cd_ee26400 = { "ee26400", // class name
+ bases_ee26400, 4,
+ &(vtc_ee26400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36400 : virtual dd6400 {
+ int e;
+ virtual void foo(); // _ZN7ee364003fooEv
+ ~ee36400(); // tgen
+ ee36400(); // tgen
+};
+//SIG(1 ee36400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36400 ::foo(){vfunc_called(this, "_ZN7ee364003fooEv");}
+ee36400 ::~ee36400(){ note_dtor("ee36400", this);} // tgen
+ee36400 ::ee36400(){ note_ctor("ee36400", this);} // tgen
+
+static void Test_ee36400()
+{
+ extern Class_Descriptor cd_ee36400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36400, buf);
+ ee36400 *dp, &lv = *(dp=new (buf) ee36400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd6400*), ABISELECT(24,12), "ee36400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd6400*), ABISELECT(24,12), "ee36400");
+ check_base_class_offset(lv, (cc400*)(dd6400*), ABISELECT(16,8), "ee36400");
+ check_base_class_offset(lv, (dd6400*), ABISELECT(16,8), "ee36400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36400.e");
+ test_class_info(&lv, &cd_ee36400);
+ dp->~ee36400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36400(Test_ee36400, "ee36400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36400C1Ev();
+extern void _ZN7ee36400D1Ev();
+Name_Map name_map_ee36400[] = {
+ NSPAIR(_ZN7ee36400C1Ev),
+ NSPAIR(_ZN7ee36400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd6400;
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+static Base_Class bases_ee36400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36400[];
+extern void _ZN7ee364003fooEv();
+extern void _ZN6dd64003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee364003fooEv,_ZTv0_n16_N7ee364003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364003fooEv,_ZThn8_N7ee364003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36400[0]),
+ (VTBL_ENTRY)&_ZN7ee364003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36400[0]),
+ (VTBL_ENTRY)&_ZN6dd64003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee364003fooEv,_ZTv0_n16_N7ee364003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36400[];
+static VTT_ENTRY vtt_ee36400[] = {
+ {&(_ZTV7ee36400[3]), 3,10},
+ {&(_ZTV7ee36400[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36400[];
+extern VTBL_ENTRY _ZTV7ee36400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36400[];
+static VTBL_ENTRY alt_thunk_names128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee364003fooEv,_ZTv0_n16_N7ee364003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364003fooEv,_ZThn8_N7ee364003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36400 = { "ee36400", // class name
+ bases_ee36400, 4,
+ &(vtc_ee36400[0]), // expected_vtbl_contents
+ &(vtt_ee36400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36400),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names128,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46400 : dd6400 {
+ int e;
+ virtual void bar(); // _ZN7ee464003barEv
+ ~ee46400(); // tgen
+ ee46400(); // tgen
+};
+//SIG(1 ee46400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46400 ::bar(){vfunc_called(this, "_ZN7ee464003barEv");}
+ee46400 ::~ee46400(){ note_dtor("ee46400", this);} // tgen
+ee46400 ::ee46400(){ note_ctor("ee46400", this);} // tgen
+
+static void Test_ee46400()
+{
+ extern Class_Descriptor cd_ee46400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46400, buf);
+ ee46400 *dp, &lv = *(dp=new (buf) ee46400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd6400*), ABISELECT(8,4), "ee46400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd6400*), ABISELECT(8,4), "ee46400");
+ check_base_class_offset(lv, (cc400*)(dd6400*), 0, "ee46400");
+ check_base_class_offset(lv, (dd6400*), 0, "ee46400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46400.e");
+ test_class_info(&lv, &cd_ee46400);
+ dp->~ee46400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46400(Test_ee46400, "ee46400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46400C1Ev();
+extern void _ZN7ee46400D1Ev();
+Name_Map name_map_ee46400[] = {
+ NSPAIR(_ZN7ee46400C1Ev),
+ NSPAIR(_ZN7ee46400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd6400;
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+static Base_Class bases_ee46400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46400[];
+extern void _ZN7ee464003barEv();
+extern void _ZN6dd64003fooEv();
+static VTBL_ENTRY vtc_ee46400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46400[0]),
+ (VTBL_ENTRY)&_ZN7ee464003barEv,
+ (VTBL_ENTRY)&_ZN6dd64003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee46400[];
+extern VTBL_ENTRY _ZTV7ee46400[];
+Class_Descriptor cd_ee46400 = { "ee46400", // class name
+ bases_ee46400, 4,
+ &(vtc_ee46400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56400 : virtual dd6400 {
+ int e;
+ virtual void bar(); // _ZN7ee564003barEv
+ ~ee56400(); // tgen
+ ee56400(); // tgen
+};
+//SIG(1 ee56400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56400 ::bar(){vfunc_called(this, "_ZN7ee564003barEv");}
+ee56400 ::~ee56400(){ note_dtor("ee56400", this);} // tgen
+ee56400 ::ee56400(){ note_ctor("ee56400", this);} // tgen
+
+static void Test_ee56400()
+{
+ extern Class_Descriptor cd_ee56400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56400, buf);
+ ee56400 *dp, &lv = *(dp=new (buf) ee56400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd6400*), ABISELECT(24,12), "ee56400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd6400*), ABISELECT(24,12), "ee56400");
+ check_base_class_offset(lv, (cc400*)(dd6400*), ABISELECT(16,8), "ee56400");
+ check_base_class_offset(lv, (dd6400*), ABISELECT(16,8), "ee56400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56400.e");
+ test_class_info(&lv, &cd_ee56400);
+ dp->~ee56400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56400(Test_ee56400, "ee56400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56400C1Ev();
+extern void _ZN7ee56400D1Ev();
+Name_Map name_map_ee56400[] = {
+ NSPAIR(_ZN7ee56400C1Ev),
+ NSPAIR(_ZN7ee56400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd6400;
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+static Base_Class bases_ee56400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56400[];
+extern void _ZN7ee564003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee564003barEv,_ZTv0_n12_N7ee564003barEv)();
+extern void ABISELECT(_ZThn16_N7ee564003barEv,_ZThn8_N7ee564003barEv)() __attribute__((weak));
+extern void _ZN6dd64003fooEv();
+static VTBL_ENTRY vtc_ee56400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56400[0]),
+ (VTBL_ENTRY)&_ZN7ee564003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee564003barEv,_ZTv0_n12_N7ee564003barEv),
+ (VTBL_ENTRY)&_ZN6dd64003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56400[];
+static VTT_ENTRY vtt_ee56400[] = {
+ {&(_ZTV7ee56400[3]), 3,10},
+ {&(_ZTV7ee56400[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56400[];
+extern VTBL_ENTRY _ZTV7ee56400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56400[];
+static VTBL_ENTRY alt_thunk_names129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee564003barEv,_ZTv0_n12_N7ee564003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564003barEv,_ZThn8_N7ee564003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56400 = { "ee56400", // class name
+ bases_ee56400, 4,
+ &(vtc_ee56400[0]), // expected_vtbl_contents
+ &(vtt_ee56400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56400),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names129,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66400 : dd6400 {
+ int e;
+ virtual void foo(); // _ZN7ee664003fooEv
+ virtual void bar(); // _ZN7ee664003barEv
+ ~ee66400(); // tgen
+ ee66400(); // tgen
+};
+//SIG(1 ee66400) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66400 ::foo(){vfunc_called(this, "_ZN7ee664003fooEv");}
+void ee66400 ::bar(){vfunc_called(this, "_ZN7ee664003barEv");}
+ee66400 ::~ee66400(){ note_dtor("ee66400", this);} // tgen
+ee66400 ::ee66400(){ note_ctor("ee66400", this);} // tgen
+
+static void Test_ee66400()
+{
+ extern Class_Descriptor cd_ee66400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66400, buf);
+ ee66400 *dp, &lv = *(dp=new (buf) ee66400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd6400*), ABISELECT(8,4), "ee66400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd6400*), ABISELECT(8,4), "ee66400");
+ check_base_class_offset(lv, (cc400*)(dd6400*), 0, "ee66400");
+ check_base_class_offset(lv, (dd6400*), 0, "ee66400");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66400.e");
+ test_class_info(&lv, &cd_ee66400);
+ dp->~ee66400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66400(Test_ee66400, "ee66400", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66400C1Ev();
+extern void _ZN7ee66400D1Ev();
+Name_Map name_map_ee66400[] = {
+ NSPAIR(_ZN7ee66400C1Ev),
+ NSPAIR(_ZN7ee66400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd6400;
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+static Base_Class bases_ee66400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66400[];
+extern void _ZN7ee664003barEv();
+extern void _ZN7ee664003fooEv();
+static VTBL_ENTRY vtc_ee66400[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66400[0]),
+ (VTBL_ENTRY)&_ZN7ee664003barEv,
+ (VTBL_ENTRY)&_ZN7ee664003fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee66400[];
+extern VTBL_ENTRY _ZTV7ee66400[];
+Class_Descriptor cd_ee66400 = { "ee66400", // class name
+ bases_ee66400, 4,
+ &(vtc_ee66400[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66400),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76400 : virtual dd6400 {
+ int e;
+ virtual void foo(); // _ZN7ee764003fooEv
+ virtual void bar(); // _ZN7ee764003barEv
+ ~ee76400(); // tgen
+ ee76400(); // tgen
+};
+//SIG(1 ee76400) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76400 ::foo(){vfunc_called(this, "_ZN7ee764003fooEv");}
+void ee76400 ::bar(){vfunc_called(this, "_ZN7ee764003barEv");}
+ee76400 ::~ee76400(){ note_dtor("ee76400", this);} // tgen
+ee76400 ::ee76400(){ note_ctor("ee76400", this);} // tgen
+
+static void Test_ee76400()
+{
+ extern Class_Descriptor cd_ee76400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76400, buf);
+ ee76400 *dp, &lv = *(dp=new (buf) ee76400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*)(dd6400*), ABISELECT(24,12), "ee76400");
+ check_base_class_offset(lv, (bb00*)(cc400*)(dd6400*), ABISELECT(24,12), "ee76400");
+ check_base_class_offset(lv, (cc400*)(dd6400*), ABISELECT(16,8), "ee76400");
+ check_base_class_offset(lv, (dd6400*), ABISELECT(16,8), "ee76400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76400.e");
+ test_class_info(&lv, &cd_ee76400);
+ dp->~ee76400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76400(Test_ee76400, "ee76400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76400C1Ev();
+extern void _ZN7ee76400D1Ev();
+Name_Map name_map_ee76400[] = {
+ NSPAIR(_ZN7ee76400C1Ev),
+ NSPAIR(_ZN7ee76400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd6400;
+extern VTBL_ENTRY _ZTI6dd6400[];
+extern VTBL_ENTRY _ZTV6dd6400[];
+static Base_Class bases_ee76400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76400[];
+extern void _ZN7ee764003fooEv();
+extern void _ZN7ee764003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764003barEv,_ZTv0_n12_N7ee764003barEv)();
+extern void ABISELECT(_ZThn16_N7ee764003barEv,_ZThn8_N7ee764003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764003fooEv,_ZTv0_n16_N7ee764003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764003fooEv,_ZThn8_N7ee764003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76400[0]),
+ (VTBL_ENTRY)&_ZN7ee764003fooEv,
+ (VTBL_ENTRY)&_ZN7ee764003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764003barEv,_ZTv0_n12_N7ee764003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764003fooEv,_ZTv0_n16_N7ee764003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76400[];
+static VTT_ENTRY vtt_ee76400[] = {
+ {&(_ZTV7ee76400[3]), 3,11},
+ {&(_ZTV7ee76400[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76400[];
+extern VTBL_ENTRY _ZTV7ee76400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76400[];
+static VTBL_ENTRY alt_thunk_names130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764003fooEv,_ZTv0_n16_N7ee764003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764003fooEv,_ZThn8_N7ee764003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764003barEv,_ZTv0_n12_N7ee764003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764003barEv,_ZThn8_N7ee764003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76400 = { "ee76400", // class name
+ bases_ee76400, 4,
+ &(vtc_ee76400[0]), // expected_vtbl_contents
+ &(vtt_ee76400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76400),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76400),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names130,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7400 : virtual cc400 {
+ int d;
+ virtual void bar(); // _ZN6dd74003barEv
+ virtual void foo(); // _ZN6dd74003fooEv
+ ~dd7400(); // tgen
+ dd7400(); // tgen
+};
+//SIG(-1 dd7400) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7400 ::bar(){vfunc_called(this, "_ZN6dd74003barEv");}
+void dd7400 ::foo(){vfunc_called(this, "_ZN6dd74003fooEv");}
+dd7400 ::~dd7400(){ note_dtor("dd7400", this);} // tgen
+dd7400 ::dd7400(){ note_ctor("dd7400", this);} // tgen
+
+static void Test_dd7400()
+{
+ extern Class_Descriptor cd_dd7400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7400, buf);
+ dd7400 *dp, &lv = *(dp=new (buf) dd7400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,12), "dd7400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,12), "dd7400");
+ check_base_class_offset(lv, (cc400*), ABISELECT(16,8), "dd7400");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7400.d");
+ test_class_info(&lv, &cd_dd7400);
+ dp->~dd7400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7400(Test_dd7400, "dd7400", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7400C1Ev();
+extern void _ZN6dd7400D1Ev();
+Name_Map name_map_dd7400[] = {
+ NSPAIR(_ZN6dd7400C1Ev),
+ NSPAIR(_ZN6dd7400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+static Base_Class bases_dd7400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7400[];
+static VTT_ENTRY vtt_dd7400[] = {
+ {&(_ZTV6dd7400[3]), 3,9},
+ {&(_ZTV6dd7400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static VTBL_ENTRY alt_thunk_names131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7400 = { "dd7400", // class name
+ bases_dd7400, 3,
+ &(vtc_dd7400[0]), // expected_vtbl_contents
+ &(vtt_dd7400[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7400),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names131,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07400 : dd7400 {
+ int e;
+ ~ee07400(); // tgen
+ ee07400(); // tgen
+};
+//SIG(1 ee07400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07400 ::~ee07400(){ note_dtor("ee07400", this);} // tgen
+ee07400 ::ee07400(){ note_ctor("ee07400", this);} // tgen
+
+static void Test_ee07400()
+{
+ extern Class_Descriptor cd_ee07400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07400, buf);
+ ee07400 *dp, &lv = *(dp=new (buf) ee07400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee07400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee07400");
+ check_base_class_offset(lv, (cc400*)(dd7400*), ABISELECT(16,12), "ee07400");
+ check_base_class_offset(lv, (dd7400*), 0, "ee07400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07400.e");
+ test_class_info(&lv, &cd_ee07400);
+ dp->~ee07400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07400(Test_ee07400, "ee07400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07400C1Ev();
+extern void _ZN7ee07400D1Ev();
+Name_Map name_map_ee07400[] = {
+ NSPAIR(_ZN7ee07400C1Ev),
+ NSPAIR(_ZN7ee07400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd7400;
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static Base_Class bases_ee07400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7400__7ee07400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd7400__7ee07400[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+static VTT_ENTRY vtt_ee07400[] = {
+ {&(_ZTV7ee07400[3]), 3,9},
+ {&(_tg__ZTV6dd7400__7ee07400[3]), 3,5},
+ {&(_tg__ZTV5cc400__6dd7400__7ee07400[3]), 3,4},
+ {&(_ZTV7ee07400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee07400[];
+extern VTBL_ENTRY _ZTV7ee07400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07400[];
+static VTBL_ENTRY alt_thunk_names132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07400 = { "ee07400", // class name
+ bases_ee07400, 4,
+ &(vtc_ee07400[0]), // expected_vtbl_contents
+ &(vtt_ee07400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names132,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17400 : virtual dd7400 {
+ int e;
+ ~ee17400(); // tgen
+ ee17400(); // tgen
+};
+//SIG(1 ee17400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17400 ::~ee17400(){ note_dtor("ee17400", this);} // tgen
+ee17400 ::ee17400(){ note_ctor("ee17400", this);} // tgen
+
+static void Test_ee17400()
+{
+ extern Class_Descriptor cd_ee17400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17400, buf);
+ ee17400 *dp, &lv = *(dp=new (buf) ee17400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee17400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee17400");
+ check_base_class_offset(lv, (cc400*)(dd7400*), ABISELECT(32,16), "ee17400");
+ check_base_class_offset(lv, (dd7400*), ABISELECT(16,8), "ee17400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17400.e");
+ test_class_info(&lv, &cd_ee17400);
+ dp->~ee17400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17400(Test_ee17400, "ee17400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17400C1Ev();
+extern void _ZN7ee17400D1Ev();
+Name_Map name_map_ee17400[] = {
+ NSPAIR(_ZN7ee17400C1Ev),
+ NSPAIR(_ZN7ee17400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd7400;
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static Base_Class bases_ee17400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7400, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17400[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7400__7ee17400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd7400__7ee17400[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+static VTT_ENTRY vtt_ee17400[] = {
+ {&(_ZTV7ee17400[4]), 4,15},
+ {&(_ZTV7ee17400[9]), 9,15},
+ {&(_ZTV7ee17400[14]), 14,15},
+ {&(_tg__ZTV6dd7400__7ee17400[3]), 3,5},
+ {&(_tg__ZTV5cc400__6dd7400__7ee17400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17400[];
+extern VTBL_ENTRY _ZTV7ee17400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17400[];
+static VTBL_ENTRY alt_thunk_names133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17400 = { "ee17400", // class name
+ bases_ee17400, 4,
+ &(vtc_ee17400[0]), // expected_vtbl_contents
+ &(vtt_ee17400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17400),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names133,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27400 : dd7400 {
+ int e;
+ virtual void foo(); // _ZN7ee274003fooEv
+ ~ee27400(); // tgen
+ ee27400(); // tgen
+};
+//SIG(1 ee27400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27400 ::foo(){vfunc_called(this, "_ZN7ee274003fooEv");}
+ee27400 ::~ee27400(){ note_dtor("ee27400", this);} // tgen
+ee27400 ::ee27400(){ note_ctor("ee27400", this);} // tgen
+
+static void Test_ee27400()
+{
+ extern Class_Descriptor cd_ee27400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27400, buf);
+ ee27400 *dp, &lv = *(dp=new (buf) ee27400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee27400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee27400");
+ check_base_class_offset(lv, (cc400*)(dd7400*), ABISELECT(16,12), "ee27400");
+ check_base_class_offset(lv, (dd7400*), 0, "ee27400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27400.e");
+ test_class_info(&lv, &cd_ee27400);
+ dp->~ee27400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27400(Test_ee27400, "ee27400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27400C1Ev();
+extern void _ZN7ee27400D1Ev();
+Name_Map name_map_ee27400[] = {
+ NSPAIR(_ZN7ee27400C1Ev),
+ NSPAIR(_ZN7ee27400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd7400;
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static Base_Class bases_ee27400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN7ee274003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN7ee274003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7400__7ee27400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd7400__7ee27400[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+static VTT_ENTRY vtt_ee27400[] = {
+ {&(_ZTV7ee27400[3]), 3,9},
+ {&(_tg__ZTV6dd7400__7ee27400[3]), 3,5},
+ {&(_tg__ZTV5cc400__6dd7400__7ee27400[3]), 3,4},
+ {&(_ZTV7ee27400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee27400[];
+extern VTBL_ENTRY _ZTV7ee27400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27400[];
+static VTBL_ENTRY alt_thunk_names134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27400 = { "ee27400", // class name
+ bases_ee27400, 4,
+ &(vtc_ee27400[0]), // expected_vtbl_contents
+ &(vtt_ee27400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names134,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37400 : virtual dd7400 {
+ int e;
+ virtual void foo(); // _ZN7ee374003fooEv
+ ~ee37400(); // tgen
+ ee37400(); // tgen
+};
+//SIG(1 ee37400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37400 ::foo(){vfunc_called(this, "_ZN7ee374003fooEv");}
+ee37400 ::~ee37400(){ note_dtor("ee37400", this);} // tgen
+ee37400 ::ee37400(){ note_ctor("ee37400", this);} // tgen
+
+static void Test_ee37400()
+{
+ extern Class_Descriptor cd_ee37400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37400, buf);
+ ee37400 *dp, &lv = *(dp=new (buf) ee37400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee37400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee37400");
+ check_base_class_offset(lv, (cc400*)(dd7400*), ABISELECT(32,16), "ee37400");
+ check_base_class_offset(lv, (dd7400*), ABISELECT(16,8), "ee37400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37400.e");
+ test_class_info(&lv, &cd_ee37400);
+ dp->~ee37400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37400(Test_ee37400, "ee37400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37400C1Ev();
+extern void _ZN7ee37400D1Ev();
+Name_Map name_map_ee37400[] = {
+ NSPAIR(_ZN7ee37400C1Ev),
+ NSPAIR(_ZN7ee37400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd7400;
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static Base_Class bases_ee37400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37400[];
+extern void _ZN7ee374003fooEv();
+extern void _ZN6dd74003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374003fooEv,_ZTv0_n20_N7ee374003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374003fooEv,_ZThn8_N7ee374003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37400[0]),
+ (VTBL_ENTRY)&_ZN7ee374003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374003fooEv,_ZTv0_n20_N7ee374003fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7400__7ee37400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd7400__7ee37400[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+static VTT_ENTRY vtt_ee37400[] = {
+ {&(_ZTV7ee37400[4]), 4,16},
+ {&(_ZTV7ee37400[10]), 10,16},
+ {&(_ZTV7ee37400[15]), 15,16},
+ {&(_tg__ZTV6dd7400__7ee37400[3]), 3,5},
+ {&(_tg__ZTV5cc400__6dd7400__7ee37400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37400[];
+extern VTBL_ENTRY _ZTV7ee37400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37400[];
+static VTBL_ENTRY alt_thunk_names135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374003fooEv,_ZTv0_n20_N7ee374003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374003fooEv,_ZThn8_N7ee374003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37400 = { "ee37400", // class name
+ bases_ee37400, 4,
+ &(vtc_ee37400[0]), // expected_vtbl_contents
+ &(vtt_ee37400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37400),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47400 : dd7400 {
+ int e;
+ virtual void bar(); // _ZN7ee474003barEv
+ ~ee47400(); // tgen
+ ee47400(); // tgen
+};
+//SIG(1 ee47400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47400 ::bar(){vfunc_called(this, "_ZN7ee474003barEv");}
+ee47400 ::~ee47400(){ note_dtor("ee47400", this);} // tgen
+ee47400 ::ee47400(){ note_ctor("ee47400", this);} // tgen
+
+static void Test_ee47400()
+{
+ extern Class_Descriptor cd_ee47400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47400, buf);
+ ee47400 *dp, &lv = *(dp=new (buf) ee47400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee47400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee47400");
+ check_base_class_offset(lv, (cc400*)(dd7400*), ABISELECT(16,12), "ee47400");
+ check_base_class_offset(lv, (dd7400*), 0, "ee47400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47400.e");
+ test_class_info(&lv, &cd_ee47400);
+ dp->~ee47400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47400(Test_ee47400, "ee47400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47400C1Ev();
+extern void _ZN7ee47400D1Ev();
+Name_Map name_map_ee47400[] = {
+ NSPAIR(_ZN7ee47400C1Ev),
+ NSPAIR(_ZN7ee47400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd7400;
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static Base_Class bases_ee47400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47400[];
+extern void _ZN7ee474003barEv();
+extern void _ZN6dd74003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee474003barEv,_ZTv0_n12_N7ee474003barEv)();
+extern void ABISELECT(_ZThn16_N7ee474003barEv,_ZThn12_N7ee474003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47400[0]),
+ (VTBL_ENTRY)&_ZN7ee474003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee474003barEv,_ZTv0_n12_N7ee474003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7400__7ee47400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd7400__7ee47400[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+static VTT_ENTRY vtt_ee47400[] = {
+ {&(_ZTV7ee47400[3]), 3,9},
+ {&(_tg__ZTV6dd7400__7ee47400[3]), 3,5},
+ {&(_tg__ZTV5cc400__6dd7400__7ee47400[3]), 3,4},
+ {&(_ZTV7ee47400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee47400[];
+extern VTBL_ENTRY _ZTV7ee47400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47400[];
+static VTBL_ENTRY alt_thunk_names136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee474003barEv,_ZTv0_n12_N7ee474003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474003barEv,_ZThn12_N7ee474003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47400 = { "ee47400", // class name
+ bases_ee47400, 4,
+ &(vtc_ee47400[0]), // expected_vtbl_contents
+ &(vtt_ee47400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names136,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57400 : virtual dd7400 {
+ int e;
+ virtual void bar(); // _ZN7ee574003barEv
+ ~ee57400(); // tgen
+ ee57400(); // tgen
+};
+//SIG(1 ee57400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57400 ::bar(){vfunc_called(this, "_ZN7ee574003barEv");}
+ee57400 ::~ee57400(){ note_dtor("ee57400", this);} // tgen
+ee57400 ::ee57400(){ note_ctor("ee57400", this);} // tgen
+
+static void Test_ee57400()
+{
+ extern Class_Descriptor cd_ee57400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57400, buf);
+ ee57400 *dp, &lv = *(dp=new (buf) ee57400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee57400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee57400");
+ check_base_class_offset(lv, (cc400*)(dd7400*), ABISELECT(32,16), "ee57400");
+ check_base_class_offset(lv, (dd7400*), ABISELECT(16,8), "ee57400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57400.e");
+ test_class_info(&lv, &cd_ee57400);
+ dp->~ee57400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57400(Test_ee57400, "ee57400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57400C1Ev();
+extern void _ZN7ee57400D1Ev();
+Name_Map name_map_ee57400[] = {
+ NSPAIR(_ZN7ee57400C1Ev),
+ NSPAIR(_ZN7ee57400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd7400;
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static Base_Class bases_ee57400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7400, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57400[];
+extern void _ZN7ee574003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574003barEv,_ZTv0_n16_N7ee574003barEv)();
+extern void ABISELECT(_ZThn16_N7ee574003barEv,_ZThn8_N7ee574003barEv)() __attribute__((weak));
+extern void _ZN6dd74003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee574003barEv,_ZTv0_n12_N7ee574003barEv)();
+extern void ABISELECT(_ZThn32_N7ee574003barEv,_ZThn16_N7ee574003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57400[0]),
+ (VTBL_ENTRY)&_ZN7ee574003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574003barEv,_ZTv0_n16_N7ee574003barEv),
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee574003barEv,_ZTv0_n12_N7ee574003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7400__7ee57400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd7400__7ee57400[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+static VTT_ENTRY vtt_ee57400[] = {
+ {&(_ZTV7ee57400[4]), 4,16},
+ {&(_ZTV7ee57400[10]), 10,16},
+ {&(_ZTV7ee57400[15]), 15,16},
+ {&(_tg__ZTV6dd7400__7ee57400[3]), 3,5},
+ {&(_tg__ZTV5cc400__6dd7400__7ee57400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57400[];
+extern VTBL_ENTRY _ZTV7ee57400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57400[];
+static VTBL_ENTRY alt_thunk_names137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee574003barEv,_ZTv0_n12_N7ee574003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574003barEv,_ZThn16_N7ee574003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574003barEv,_ZTv0_n16_N7ee574003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574003barEv,_ZThn8_N7ee574003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57400 = { "ee57400", // class name
+ bases_ee57400, 4,
+ &(vtc_ee57400[0]), // expected_vtbl_contents
+ &(vtt_ee57400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57400),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names137,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67400 : dd7400 {
+ int e;
+ virtual void foo(); // _ZN7ee674003fooEv
+ virtual void bar(); // _ZN7ee674003barEv
+ ~ee67400(); // tgen
+ ee67400(); // tgen
+};
+//SIG(1 ee67400) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67400 ::foo(){vfunc_called(this, "_ZN7ee674003fooEv");}
+void ee67400 ::bar(){vfunc_called(this, "_ZN7ee674003barEv");}
+ee67400 ::~ee67400(){ note_dtor("ee67400", this);} // tgen
+ee67400 ::ee67400(){ note_ctor("ee67400", this);} // tgen
+
+static void Test_ee67400()
+{
+ extern Class_Descriptor cd_ee67400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67400, buf);
+ ee67400 *dp, &lv = *(dp=new (buf) ee67400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(24,16), "ee67400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(24,16), "ee67400");
+ check_base_class_offset(lv, (cc400*)(dd7400*), ABISELECT(16,12), "ee67400");
+ check_base_class_offset(lv, (dd7400*), 0, "ee67400");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67400.e");
+ test_class_info(&lv, &cd_ee67400);
+ dp->~ee67400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67400(Test_ee67400, "ee67400", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67400C1Ev();
+extern void _ZN7ee67400D1Ev();
+Name_Map name_map_ee67400[] = {
+ NSPAIR(_ZN7ee67400C1Ev),
+ NSPAIR(_ZN7ee67400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd7400;
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static Base_Class bases_ee67400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7400, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67400[];
+extern void _ZN7ee674003barEv();
+extern void _ZN7ee674003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674003barEv,_ZTv0_n12_N7ee674003barEv)();
+extern void ABISELECT(_ZThn16_N7ee674003barEv,_ZThn12_N7ee674003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67400[0]),
+ (VTBL_ENTRY)&_ZN7ee674003barEv,
+ (VTBL_ENTRY)&_ZN7ee674003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674003barEv,_ZTv0_n12_N7ee674003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7400__7ee67400[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd7400__7ee67400[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+static VTT_ENTRY vtt_ee67400[] = {
+ {&(_ZTV7ee67400[3]), 3,9},
+ {&(_tg__ZTV6dd7400__7ee67400[3]), 3,5},
+ {&(_tg__ZTV5cc400__6dd7400__7ee67400[3]), 3,4},
+ {&(_ZTV7ee67400[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee67400[];
+extern VTBL_ENTRY _ZTV7ee67400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67400[];
+static VTBL_ENTRY alt_thunk_names138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn12_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674003barEv,_ZTv0_n12_N7ee674003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674003barEv,_ZThn12_N7ee674003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67400 = { "ee67400", // class name
+ bases_ee67400, 4,
+ &(vtc_ee67400[0]), // expected_vtbl_contents
+ &(vtt_ee67400[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67400),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67400),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67400),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names138,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77400 : virtual dd7400 {
+ int e;
+ virtual void foo(); // _ZN7ee774003fooEv
+ virtual void bar(); // _ZN7ee774003barEv
+ ~ee77400(); // tgen
+ ee77400(); // tgen
+};
+//SIG(1 ee77400) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77400 ::foo(){vfunc_called(this, "_ZN7ee774003fooEv");}
+void ee77400 ::bar(){vfunc_called(this, "_ZN7ee774003barEv");}
+ee77400 ::~ee77400(){ note_dtor("ee77400", this);} // tgen
+ee77400 ::ee77400(){ note_ctor("ee77400", this);} // tgen
+
+static void Test_ee77400()
+{
+ extern Class_Descriptor cd_ee77400;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77400, buf);
+ ee77400 *dp, &lv = *(dp=new (buf) ee77400());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77400)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77400)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc400*), ABISELECT(40,20), "ee77400");
+ check_base_class_offset(lv, (bb00*)(cc400*), ABISELECT(40,20), "ee77400");
+ check_base_class_offset(lv, (cc400*)(dd7400*), ABISELECT(32,16), "ee77400");
+ check_base_class_offset(lv, (dd7400*), ABISELECT(16,8), "ee77400");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77400.e");
+ test_class_info(&lv, &cd_ee77400);
+ dp->~ee77400();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77400(Test_ee77400, "ee77400", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77400C1Ev();
+extern void _ZN7ee77400D1Ev();
+Name_Map name_map_ee77400[] = {
+ NSPAIR(_ZN7ee77400C1Ev),
+ NSPAIR(_ZN7ee77400D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc400;
+extern VTBL_ENTRY _ZTI5cc400[];
+extern VTBL_ENTRY _ZTV5cc400[];
+extern Class_Descriptor cd_dd7400;
+extern VTBL_ENTRY _ZTI6dd7400[];
+extern VTBL_ENTRY _ZTV6dd7400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7400[];
+static Base_Class bases_ee77400[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc400, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7400, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77400[];
+extern void _ZN7ee774003fooEv();
+extern void _ZN7ee774003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774003barEv,_ZTv0_n16_N7ee774003barEv)();
+extern void ABISELECT(_ZThn16_N7ee774003barEv,_ZThn8_N7ee774003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774003fooEv,_ZTv0_n20_N7ee774003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774003fooEv,_ZThn8_N7ee774003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774003barEv,_ZTv0_n12_N7ee774003barEv)();
+extern void ABISELECT(_ZThn32_N7ee774003barEv,_ZThn16_N7ee774003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77400[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77400[0]),
+ (VTBL_ENTRY)&_ZN7ee774003fooEv,
+ (VTBL_ENTRY)&_ZN7ee774003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774003barEv,_ZTv0_n16_N7ee774003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774003fooEv,_ZTv0_n20_N7ee774003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774003barEv,_ZTv0_n12_N7ee774003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77400[];
+extern void _ZN6dd74003barEv();
+extern void _ZN6dd74003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7400__7ee77400[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&_ZN6dd74003barEv,
+ (VTBL_ENTRY)&_ZN6dd74003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv)();
+extern void ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc400__6dd7400__7ee77400[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7400[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv),
+};
+static VTT_ENTRY vtt_ee77400[] = {
+ {&(_ZTV7ee77400[4]), 4,17},
+ {&(_ZTV7ee77400[11]), 11,17},
+ {&(_ZTV7ee77400[16]), 16,17},
+ {&(_tg__ZTV6dd7400__7ee77400[3]), 3,5},
+ {&(_tg__ZTV5cc400__6dd7400__7ee77400[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77400[];
+extern VTBL_ENTRY _ZTV7ee77400[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77400[];
+static VTBL_ENTRY alt_thunk_names139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74003barEv,_ZTv0_n12_N6dd74003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74003barEv,_ZThn8_N6dd74003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774003barEv,_ZTv0_n12_N7ee774003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774003barEv,_ZThn16_N7ee774003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774003fooEv,_ZTv0_n20_N7ee774003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774003fooEv,_ZThn8_N7ee774003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774003barEv,_ZTv0_n16_N7ee774003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774003barEv,_ZThn8_N7ee774003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77400 = { "ee77400", // class name
+ bases_ee77400, 4,
+ &(vtc_ee77400[0]), // expected_vtbl_contents
+ &(vtt_ee77400[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77400),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77400),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77400),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names139,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc500 : virtual bb00 {
+ int c;
+ virtual void bar(); // _ZN5cc5003barEv
+ ~cc500(); // tgen
+ cc500(); // tgen
+};
+//SIG(-1 cc500) C1{ VBC2{ BC3{ Fi} Fi} v1 Fi}
+
+
+void cc500 ::bar(){vfunc_called(this, "_ZN5cc5003barEv");}
+cc500 ::~cc500(){ note_dtor("cc500", this);} // tgen
+cc500 ::cc500(){ note_ctor("cc500", this);} // tgen
+
+static void Test_cc500()
+{
+ extern Class_Descriptor cd_cc500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc500, buf);
+ cc500 *dp, &lv = *(dp=new (buf) cc500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(12,8), "cc500");
+ check_base_class_offset(lv, (bb00*), ABISELECT(12,8), "cc500");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc500.c");
+ test_class_info(&lv, &cd_cc500);
+ dp->~cc500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc500(Test_cc500, "cc500", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc500C1Ev();
+extern void _ZN5cc500D1Ev();
+Name_Map name_map_cc500[] = {
+ NSPAIR(_ZN5cc500C1Ev),
+ NSPAIR(_ZN5cc500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_cc500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV5cc500[];
+static VTT_ENTRY vtt_cc500[] = {
+ {&(_ZTV5cc500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+Class_Descriptor cd_cc500 = { "cc500", // class name
+ bases_cc500, 2,
+ &(vtc_cc500[0]), // expected_vtbl_contents
+ &(vtt_cc500[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc500),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc500),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 dd0500 : cc500 {
+ int d;
+ ~dd0500(); // tgen
+ dd0500(); // tgen
+};
+//SIG(-1 dd0500) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd0500 ::~dd0500(){ note_dtor("dd0500", this);} // tgen
+dd0500 ::dd0500(){ note_ctor("dd0500", this);} // tgen
+
+static void Test_dd0500()
+{
+ extern Class_Descriptor cd_dd0500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0500, buf);
+ dd0500 *dp, &lv = *(dp=new (buf) dd0500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd0500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(16,12), "dd0500");
+ check_base_class_offset(lv, (cc500*), 0, "dd0500");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0500.d");
+ test_class_info(&lv, &cd_dd0500);
+ dp->~dd0500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0500(Test_dd0500, "dd0500", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0500C1Ev();
+extern void _ZN6dd0500D1Ev();
+Name_Map name_map_dd0500[] = {
+ NSPAIR(_ZN6dd0500C1Ev),
+ NSPAIR(_ZN6dd0500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+static Base_Class bases_dd0500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_dd0500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd0500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_dd0500[] = {
+ {&(_ZTV6dd0500[3]), 3,4},
+ {&(_tg__ZTV5cc500__6dd0500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+Class_Descriptor cd_dd0500 = { "dd0500", // class name
+ bases_dd0500, 3,
+ &(vtc_dd0500[0]), // expected_vtbl_contents
+ &(vtt_dd0500[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0500),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0500),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 ee00500 : dd0500 {
+ int e;
+ ~ee00500(); // tgen
+ ee00500(); // tgen
+};
+//SIG(1 ee00500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00500 ::~ee00500(){ note_dtor("ee00500", this);} // tgen
+ee00500 ::ee00500(){ note_ctor("ee00500", this);} // tgen
+
+static void Test_ee00500()
+{
+ extern Class_Descriptor cd_ee00500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00500, buf);
+ ee00500 *dp, &lv = *(dp=new (buf) ee00500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee00500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd0500*), ABISELECT(20,16), "ee00500");
+ check_base_class_offset(lv, (cc500*)(dd0500*), 0, "ee00500");
+ check_base_class_offset(lv, (dd0500*), 0, "ee00500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00500.e");
+ test_class_info(&lv, &cd_ee00500);
+ dp->~ee00500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00500(Test_ee00500, "ee00500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00500C1Ev();
+extern void _ZN7ee00500D1Ev();
+Name_Map name_map_ee00500[] = {
+ NSPAIR(_ZN7ee00500C1Ev),
+ NSPAIR(_ZN7ee00500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd0500;
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+static Base_Class bases_ee00500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee00500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0500__7ee00500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd0500__7ee00500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee00500[] = {
+ {&(_ZTV7ee00500[3]), 3,4},
+ {&(_tg__ZTV6dd0500__7ee00500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd0500__7ee00500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00500[];
+extern VTBL_ENTRY _ZTV7ee00500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00500[];
+Class_Descriptor cd_ee00500 = { "ee00500", // class name
+ bases_ee00500, 4,
+ &(vtc_ee00500[0]), // expected_vtbl_contents
+ &(vtt_ee00500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00500),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00500),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 ee10500 : virtual dd0500 {
+ int e;
+ ~ee10500(); // tgen
+ ee10500(); // tgen
+};
+//SIG(1 ee10500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10500 ::~ee10500(){ note_dtor("ee10500", this);} // tgen
+ee10500 ::ee10500(){ note_ctor("ee10500", this);} // tgen
+
+static void Test_ee10500()
+{
+ extern Class_Descriptor cd_ee10500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10500, buf);
+ ee10500 *dp, &lv = *(dp=new (buf) ee10500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee10500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd0500*), ABISELECT(32,20), "ee10500");
+ check_base_class_offset(lv, (cc500*)(dd0500*), ABISELECT(16,8), "ee10500");
+ check_base_class_offset(lv, (dd0500*), ABISELECT(16,8), "ee10500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10500.e");
+ test_class_info(&lv, &cd_ee10500);
+ dp->~ee10500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10500(Test_ee10500, "ee10500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10500C1Ev();
+extern void _ZN7ee10500D1Ev();
+Name_Map name_map_ee10500[] = {
+ NSPAIR(_ZN7ee10500C1Ev),
+ NSPAIR(_ZN7ee10500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd0500;
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+static Base_Class bases_ee10500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0500, 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 _ZTI7ee10500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee10500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10500[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0500__7ee10500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd0500__7ee10500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee10500[] = {
+ {&(_ZTV7ee10500[4]), 4,9},
+ {&(_ZTV7ee10500[8]), 8,9},
+ {&(_tg__ZTV6dd0500__7ee10500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd0500__7ee10500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10500[];
+extern VTBL_ENTRY _ZTV7ee10500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10500[];
+Class_Descriptor cd_ee10500 = { "ee10500", // class name
+ bases_ee10500, 4,
+ &(vtc_ee10500[0]), // expected_vtbl_contents
+ &(vtt_ee10500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10500),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10500),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 ee20500 : dd0500 {
+ int e;
+ virtual void foo(); // _ZN7ee205003fooEv
+ ~ee20500(); // tgen
+ ee20500(); // tgen
+};
+//SIG(1 ee20500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20500 ::foo(){vfunc_called(this, "_ZN7ee205003fooEv");}
+ee20500 ::~ee20500(){ note_dtor("ee20500", this);} // tgen
+ee20500 ::ee20500(){ note_ctor("ee20500", this);} // tgen
+
+static void Test_ee20500()
+{
+ extern Class_Descriptor cd_ee20500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20500, buf);
+ ee20500 *dp, &lv = *(dp=new (buf) ee20500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee20500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd0500*), ABISELECT(20,16), "ee20500");
+ check_base_class_offset(lv, (cc500*)(dd0500*), 0, "ee20500");
+ check_base_class_offset(lv, (dd0500*), 0, "ee20500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20500.e");
+ test_class_info(&lv, &cd_ee20500);
+ dp->~ee20500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20500(Test_ee20500, "ee20500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20500C1Ev();
+extern void _ZN7ee20500D1Ev();
+Name_Map name_map_ee20500[] = {
+ NSPAIR(_ZN7ee20500C1Ev),
+ NSPAIR(_ZN7ee20500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd0500;
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+static Base_Class bases_ee20500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN7ee205003fooEv();
+static VTBL_ENTRY vtc_ee20500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN7ee205003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0500__7ee20500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd0500__7ee20500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee20500[] = {
+ {&(_ZTV7ee20500[3]), 3,5},
+ {&(_tg__ZTV6dd0500__7ee20500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd0500__7ee20500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20500[];
+extern VTBL_ENTRY _ZTV7ee20500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20500[];
+Class_Descriptor cd_ee20500 = { "ee20500", // class name
+ bases_ee20500, 4,
+ &(vtc_ee20500[0]), // expected_vtbl_contents
+ &(vtt_ee20500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20500),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 ee30500 : virtual dd0500 {
+ int e;
+ virtual void foo(); // _ZN7ee305003fooEv
+ ~ee30500(); // tgen
+ ee30500(); // tgen
+};
+//SIG(1 ee30500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30500 ::foo(){vfunc_called(this, "_ZN7ee305003fooEv");}
+ee30500 ::~ee30500(){ note_dtor("ee30500", this);} // tgen
+ee30500 ::ee30500(){ note_ctor("ee30500", this);} // tgen
+
+static void Test_ee30500()
+{
+ extern Class_Descriptor cd_ee30500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30500, buf);
+ ee30500 *dp, &lv = *(dp=new (buf) ee30500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee30500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd0500*), ABISELECT(32,20), "ee30500");
+ check_base_class_offset(lv, (cc500*)(dd0500*), ABISELECT(16,8), "ee30500");
+ check_base_class_offset(lv, (dd0500*), ABISELECT(16,8), "ee30500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30500.e");
+ test_class_info(&lv, &cd_ee30500);
+ dp->~ee30500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30500(Test_ee30500, "ee30500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30500C1Ev();
+extern void _ZN7ee30500D1Ev();
+Name_Map name_map_ee30500[] = {
+ NSPAIR(_ZN7ee30500C1Ev),
+ NSPAIR(_ZN7ee30500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd0500;
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+static Base_Class bases_ee30500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0500, 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 _ZTI7ee30500[];
+extern void _ZN7ee305003fooEv();
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee30500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30500[0]),
+ (VTBL_ENTRY)&_ZN7ee305003fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0500__7ee30500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd0500__7ee30500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee30500[] = {
+ {&(_ZTV7ee30500[4]), 4,10},
+ {&(_ZTV7ee30500[9]), 9,10},
+ {&(_tg__ZTV6dd0500__7ee30500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd0500__7ee30500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30500[];
+extern VTBL_ENTRY _ZTV7ee30500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30500[];
+Class_Descriptor cd_ee30500 = { "ee30500", // class name
+ bases_ee30500, 4,
+ &(vtc_ee30500[0]), // expected_vtbl_contents
+ &(vtt_ee30500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30500),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 ee40500 : dd0500 {
+ int e;
+ virtual void bar(); // _ZN7ee405003barEv
+ ~ee40500(); // tgen
+ ee40500(); // tgen
+};
+//SIG(1 ee40500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40500 ::bar(){vfunc_called(this, "_ZN7ee405003barEv");}
+ee40500 ::~ee40500(){ note_dtor("ee40500", this);} // tgen
+ee40500 ::ee40500(){ note_ctor("ee40500", this);} // tgen
+
+static void Test_ee40500()
+{
+ extern Class_Descriptor cd_ee40500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40500, buf);
+ ee40500 *dp, &lv = *(dp=new (buf) ee40500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee40500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd0500*), ABISELECT(20,16), "ee40500");
+ check_base_class_offset(lv, (cc500*)(dd0500*), 0, "ee40500");
+ check_base_class_offset(lv, (dd0500*), 0, "ee40500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40500.e");
+ test_class_info(&lv, &cd_ee40500);
+ dp->~ee40500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40500(Test_ee40500, "ee40500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40500C1Ev();
+extern void _ZN7ee40500D1Ev();
+Name_Map name_map_ee40500[] = {
+ NSPAIR(_ZN7ee40500C1Ev),
+ NSPAIR(_ZN7ee40500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd0500;
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+static Base_Class bases_ee40500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40500[];
+extern void _ZN7ee405003barEv();
+static VTBL_ENTRY vtc_ee40500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40500[0]),
+ (VTBL_ENTRY)&_ZN7ee405003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0500__7ee40500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd0500__7ee40500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee40500[] = {
+ {&(_ZTV7ee40500[3]), 3,4},
+ {&(_tg__ZTV6dd0500__7ee40500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd0500__7ee40500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40500[];
+extern VTBL_ENTRY _ZTV7ee40500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40500[];
+Class_Descriptor cd_ee40500 = { "ee40500", // class name
+ bases_ee40500, 4,
+ &(vtc_ee40500[0]), // expected_vtbl_contents
+ &(vtt_ee40500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40500),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40500),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 ee50500 : virtual dd0500 {
+ int e;
+ virtual void bar(); // _ZN7ee505003barEv
+ ~ee50500(); // tgen
+ ee50500(); // tgen
+};
+//SIG(1 ee50500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50500 ::bar(){vfunc_called(this, "_ZN7ee505003barEv");}
+ee50500 ::~ee50500(){ note_dtor("ee50500", this);} // tgen
+ee50500 ::ee50500(){ note_ctor("ee50500", this);} // tgen
+
+static void Test_ee50500()
+{
+ extern Class_Descriptor cd_ee50500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50500, buf);
+ ee50500 *dp, &lv = *(dp=new (buf) ee50500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee50500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd0500*), ABISELECT(32,20), "ee50500");
+ check_base_class_offset(lv, (cc500*)(dd0500*), ABISELECT(16,8), "ee50500");
+ check_base_class_offset(lv, (dd0500*), ABISELECT(16,8), "ee50500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50500.e");
+ test_class_info(&lv, &cd_ee50500);
+ dp->~ee50500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50500(Test_ee50500, "ee50500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50500C1Ev();
+extern void _ZN7ee50500D1Ev();
+Name_Map name_map_ee50500[] = {
+ NSPAIR(_ZN7ee50500C1Ev),
+ NSPAIR(_ZN7ee50500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd0500;
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+static Base_Class bases_ee50500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0500, 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 _ZTI7ee50500[];
+extern void _ZN7ee505003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505003barEv,_ZTv0_n16_N7ee505003barEv)();
+extern void ABISELECT(_ZThn16_N7ee505003barEv,_ZThn8_N7ee505003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50500[0]),
+ (VTBL_ENTRY)&_ZN7ee505003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505003barEv,_ZTv0_n16_N7ee505003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0500__7ee50500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd0500__7ee50500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee50500[] = {
+ {&(_ZTV7ee50500[4]), 4,10},
+ {&(_ZTV7ee50500[9]), 9,10},
+ {&(_tg__ZTV6dd0500__7ee50500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd0500__7ee50500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50500[];
+extern VTBL_ENTRY _ZTV7ee50500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50500[];
+static VTBL_ENTRY alt_thunk_names140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505003barEv,_ZTv0_n16_N7ee505003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505003barEv,_ZThn8_N7ee505003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50500 = { "ee50500", // class name
+ bases_ee50500, 4,
+ &(vtc_ee50500[0]), // expected_vtbl_contents
+ &(vtt_ee50500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names140,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60500 : dd0500 {
+ int e;
+ virtual void foo(); // _ZN7ee605003fooEv
+ virtual void bar(); // _ZN7ee605003barEv
+ ~ee60500(); // tgen
+ ee60500(); // tgen
+};
+//SIG(1 ee60500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60500 ::foo(){vfunc_called(this, "_ZN7ee605003fooEv");}
+void ee60500 ::bar(){vfunc_called(this, "_ZN7ee605003barEv");}
+ee60500 ::~ee60500(){ note_dtor("ee60500", this);} // tgen
+ee60500 ::ee60500(){ note_ctor("ee60500", this);} // tgen
+
+static void Test_ee60500()
+{
+ extern Class_Descriptor cd_ee60500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60500, buf);
+ ee60500 *dp, &lv = *(dp=new (buf) ee60500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee60500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd0500*), ABISELECT(20,16), "ee60500");
+ check_base_class_offset(lv, (cc500*)(dd0500*), 0, "ee60500");
+ check_base_class_offset(lv, (dd0500*), 0, "ee60500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60500.e");
+ test_class_info(&lv, &cd_ee60500);
+ dp->~ee60500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60500(Test_ee60500, "ee60500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60500C1Ev();
+extern void _ZN7ee60500D1Ev();
+Name_Map name_map_ee60500[] = {
+ NSPAIR(_ZN7ee60500C1Ev),
+ NSPAIR(_ZN7ee60500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd0500;
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+static Base_Class bases_ee60500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60500[];
+extern void _ZN7ee605003barEv();
+extern void _ZN7ee605003fooEv();
+static VTBL_ENTRY vtc_ee60500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60500[0]),
+ (VTBL_ENTRY)&_ZN7ee605003barEv,
+ (VTBL_ENTRY)&_ZN7ee605003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee60500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0500__7ee60500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd0500__7ee60500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee60500[] = {
+ {&(_ZTV7ee60500[3]), 3,5},
+ {&(_tg__ZTV6dd0500__7ee60500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd0500__7ee60500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60500[];
+extern VTBL_ENTRY _ZTV7ee60500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60500[];
+Class_Descriptor cd_ee60500 = { "ee60500", // class name
+ bases_ee60500, 4,
+ &(vtc_ee60500[0]), // expected_vtbl_contents
+ &(vtt_ee60500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60500),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 ee70500 : virtual dd0500 {
+ int e;
+ virtual void foo(); // _ZN7ee705003fooEv
+ virtual void bar(); // _ZN7ee705003barEv
+ ~ee70500(); // tgen
+ ee70500(); // tgen
+};
+//SIG(1 ee70500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70500 ::foo(){vfunc_called(this, "_ZN7ee705003fooEv");}
+void ee70500 ::bar(){vfunc_called(this, "_ZN7ee705003barEv");}
+ee70500 ::~ee70500(){ note_dtor("ee70500", this);} // tgen
+ee70500 ::ee70500(){ note_ctor("ee70500", this);} // tgen
+
+static void Test_ee70500()
+{
+ extern Class_Descriptor cd_ee70500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70500, buf);
+ ee70500 *dp, &lv = *(dp=new (buf) ee70500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee70500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd0500*), ABISELECT(32,20), "ee70500");
+ check_base_class_offset(lv, (cc500*)(dd0500*), ABISELECT(16,8), "ee70500");
+ check_base_class_offset(lv, (dd0500*), ABISELECT(16,8), "ee70500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70500.e");
+ test_class_info(&lv, &cd_ee70500);
+ dp->~ee70500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70500(Test_ee70500, "ee70500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70500C1Ev();
+extern void _ZN7ee70500D1Ev();
+Name_Map name_map_ee70500[] = {
+ NSPAIR(_ZN7ee70500C1Ev),
+ NSPAIR(_ZN7ee70500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd0500;
+extern VTBL_ENTRY _ZTI6dd0500[];
+extern VTBL_ENTRY _ZTV6dd0500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0500[];
+static Base_Class bases_ee70500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0500, 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 _ZTI7ee70500[];
+extern void _ZN7ee705003fooEv();
+extern void _ZN7ee705003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705003barEv,_ZTv0_n16_N7ee705003barEv)();
+extern void ABISELECT(_ZThn16_N7ee705003barEv,_ZThn8_N7ee705003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70500[0]),
+ (VTBL_ENTRY)&_ZN7ee705003fooEv,
+ (VTBL_ENTRY)&_ZN7ee705003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705003barEv,_ZTv0_n16_N7ee705003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0500__7ee70500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd0500__7ee70500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee70500[] = {
+ {&(_ZTV7ee70500[4]), 4,11},
+ {&(_ZTV7ee70500[10]), 10,11},
+ {&(_tg__ZTV6dd0500__7ee70500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd0500__7ee70500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70500[];
+extern VTBL_ENTRY _ZTV7ee70500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70500[];
+static VTBL_ENTRY alt_thunk_names141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705003barEv,_ZTv0_n16_N7ee705003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705003barEv,_ZThn8_N7ee705003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70500 = { "ee70500", // class name
+ bases_ee70500, 4,
+ &(vtc_ee70500[0]), // expected_vtbl_contents
+ &(vtt_ee70500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names141,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1500 : virtual cc500 {
+ int d;
+ ~dd1500(); // tgen
+ dd1500(); // tgen
+};
+//SIG(-1 dd1500) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} Fi}
+
+
+dd1500 ::~dd1500(){ note_dtor("dd1500", this);} // tgen
+dd1500 ::dd1500(){ note_ctor("dd1500", this);} // tgen
+
+static void Test_dd1500()
+{
+ extern Class_Descriptor cd_dd1500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1500, buf);
+ dd1500 *dp, &lv = *(dp=new (buf) dd1500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd1500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,16), "dd1500");
+ check_base_class_offset(lv, (cc500*), ABISELECT(16,8), "dd1500");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1500.d");
+ test_class_info(&lv, &cd_dd1500);
+ dp->~dd1500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1500(Test_dd1500, "dd1500", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1500C1Ev();
+extern void _ZN6dd1500D1Ev();
+Name_Map name_map_dd1500[] = {
+ NSPAIR(_ZN6dd1500C1Ev),
+ NSPAIR(_ZN6dd1500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+static Base_Class bases_dd1500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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 _ZTI6dd1500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_dd1500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_dd1500[] = {
+ {&(_ZTV6dd1500[4]), 4,9},
+ {&(_ZTV6dd1500[8]), 8,9},
+ {&(_tg__ZTV5cc500__6dd1500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+Class_Descriptor cd_dd1500 = { "dd1500", // class name
+ bases_dd1500, 3,
+ &(vtc_dd1500[0]), // expected_vtbl_contents
+ &(vtt_dd1500[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1500),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1500),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 ee01500 : dd1500 {
+ int e;
+ ~ee01500(); // tgen
+ ee01500(); // tgen
+};
+//SIG(1 ee01500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01500 ::~ee01500(){ note_dtor("ee01500", this);} // tgen
+ee01500 ::ee01500(){ note_ctor("ee01500", this);} // tgen
+
+static void Test_ee01500()
+{
+ extern Class_Descriptor cd_ee01500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01500, buf);
+ ee01500 *dp, &lv = *(dp=new (buf) ee01500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee01500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee01500");
+ check_base_class_offset(lv, (cc500*)(dd1500*), ABISELECT(16,12), "ee01500");
+ check_base_class_offset(lv, (dd1500*), 0, "ee01500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01500.e");
+ test_class_info(&lv, &cd_ee01500);
+ dp->~ee01500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01500(Test_ee01500, "ee01500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01500C1Ev();
+extern void _ZN7ee01500D1Ev();
+Name_Map name_map_ee01500[] = {
+ NSPAIR(_ZN7ee01500C1Ev),
+ NSPAIR(_ZN7ee01500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd1500;
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+static Base_Class bases_ee01500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee01500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01500[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01500[];
+static VTBL_ENTRY _tg__ZTV6dd1500__7ee01500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500__7ee01500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee01500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee01500[] = {
+ {&(_ZTV7ee01500[4]), 4,9},
+ {&(_tg__ZTV6dd1500__7ee01500[4]), 4,4},
+ {&(_tg__ZTV5cc500__6dd1500__7ee01500[4]), 4,5},
+ {&(_ZTV7ee01500[8]), 8,9},
+ {&(_tg__ZTV5cc500__7ee01500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01500[];
+extern VTBL_ENTRY _ZTV7ee01500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01500[];
+Class_Descriptor cd_ee01500 = { "ee01500", // class name
+ bases_ee01500, 4,
+ &(vtc_ee01500[0]), // expected_vtbl_contents
+ &(vtt_ee01500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01500),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01500),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 ee11500 : virtual dd1500 {
+ int e;
+ ~ee11500(); // tgen
+ ee11500(); // tgen
+};
+//SIG(1 ee11500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11500 ::~ee11500(){ note_dtor("ee11500", this);} // tgen
+ee11500 ::ee11500(){ note_ctor("ee11500", this);} // tgen
+
+static void Test_ee11500()
+{
+ extern Class_Descriptor cd_ee11500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11500, buf);
+ ee11500 *dp, &lv = *(dp=new (buf) ee11500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee11500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee11500");
+ check_base_class_offset(lv, (cc500*)(dd1500*), ABISELECT(32,16), "ee11500");
+ check_base_class_offset(lv, (dd1500*), ABISELECT(16,8), "ee11500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11500.e");
+ test_class_info(&lv, &cd_ee11500);
+ dp->~ee11500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11500(Test_ee11500, "ee11500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11500C1Ev();
+extern void _ZN7ee11500D1Ev();
+Name_Map name_map_ee11500[] = {
+ NSPAIR(_ZN7ee11500C1Ev),
+ NSPAIR(_ZN7ee11500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd1500;
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+static Base_Class bases_ee11500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1500, 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 _ZTI7ee11500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee11500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11500[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11500[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11500[];
+static VTBL_ENTRY _tg__ZTV6dd1500__7ee11500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500__7ee11500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee11500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee11500[] = {
+ {&(_ZTV7ee11500[5]), 5,14},
+ {&(_ZTV7ee11500[9]), 9,14},
+ {&(_ZTV7ee11500[13]), 13,14},
+ {&(_tg__ZTV6dd1500__7ee11500[4]), 4,4},
+ {&(_tg__ZTV5cc500__6dd1500__7ee11500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee11500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11500[];
+extern VTBL_ENTRY _ZTV7ee11500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11500[];
+Class_Descriptor cd_ee11500 = { "ee11500", // class name
+ bases_ee11500, 4,
+ &(vtc_ee11500[0]), // expected_vtbl_contents
+ &(vtt_ee11500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11500),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11500),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 ee21500 : dd1500 {
+ int e;
+ virtual void foo(); // _ZN7ee215003fooEv
+ ~ee21500(); // tgen
+ ee21500(); // tgen
+};
+//SIG(1 ee21500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21500 ::foo(){vfunc_called(this, "_ZN7ee215003fooEv");}
+ee21500 ::~ee21500(){ note_dtor("ee21500", this);} // tgen
+ee21500 ::ee21500(){ note_ctor("ee21500", this);} // tgen
+
+static void Test_ee21500()
+{
+ extern Class_Descriptor cd_ee21500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21500, buf);
+ ee21500 *dp, &lv = *(dp=new (buf) ee21500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee21500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee21500");
+ check_base_class_offset(lv, (cc500*)(dd1500*), ABISELECT(16,12), "ee21500");
+ check_base_class_offset(lv, (dd1500*), 0, "ee21500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21500.e");
+ test_class_info(&lv, &cd_ee21500);
+ dp->~ee21500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21500(Test_ee21500, "ee21500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21500C1Ev();
+extern void _ZN7ee21500D1Ev();
+Name_Map name_map_ee21500[] = {
+ NSPAIR(_ZN7ee21500C1Ev),
+ NSPAIR(_ZN7ee21500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd1500;
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+static Base_Class bases_ee21500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21500[];
+extern void _ZN7ee215003fooEv();
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee21500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21500[0]),
+ (VTBL_ENTRY)&_ZN7ee215003fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21500[];
+static VTBL_ENTRY _tg__ZTV6dd1500__7ee21500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500__7ee21500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee21500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee21500[] = {
+ {&(_ZTV7ee21500[4]), 4,10},
+ {&(_tg__ZTV6dd1500__7ee21500[4]), 4,4},
+ {&(_tg__ZTV5cc500__6dd1500__7ee21500[4]), 4,5},
+ {&(_ZTV7ee21500[9]), 9,10},
+ {&(_tg__ZTV5cc500__7ee21500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21500[];
+extern VTBL_ENTRY _ZTV7ee21500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21500[];
+Class_Descriptor cd_ee21500 = { "ee21500", // class name
+ bases_ee21500, 4,
+ &(vtc_ee21500[0]), // expected_vtbl_contents
+ &(vtt_ee21500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21500),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 ee31500 : virtual dd1500 {
+ int e;
+ virtual void foo(); // _ZN7ee315003fooEv
+ ~ee31500(); // tgen
+ ee31500(); // tgen
+};
+//SIG(1 ee31500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31500 ::foo(){vfunc_called(this, "_ZN7ee315003fooEv");}
+ee31500 ::~ee31500(){ note_dtor("ee31500", this);} // tgen
+ee31500 ::ee31500(){ note_ctor("ee31500", this);} // tgen
+
+static void Test_ee31500()
+{
+ extern Class_Descriptor cd_ee31500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31500, buf);
+ ee31500 *dp, &lv = *(dp=new (buf) ee31500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee31500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee31500");
+ check_base_class_offset(lv, (cc500*)(dd1500*), ABISELECT(32,16), "ee31500");
+ check_base_class_offset(lv, (dd1500*), ABISELECT(16,8), "ee31500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31500.e");
+ test_class_info(&lv, &cd_ee31500);
+ dp->~ee31500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31500(Test_ee31500, "ee31500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31500C1Ev();
+extern void _ZN7ee31500D1Ev();
+Name_Map name_map_ee31500[] = {
+ NSPAIR(_ZN7ee31500C1Ev),
+ NSPAIR(_ZN7ee31500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd1500;
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+static Base_Class bases_ee31500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1500, 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 _ZTI7ee31500[];
+extern void _ZN7ee315003fooEv();
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee31500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31500[0]),
+ (VTBL_ENTRY)&_ZN7ee315003fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31500[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31500[];
+static VTBL_ENTRY _tg__ZTV6dd1500__7ee31500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500__7ee31500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee31500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee31500[] = {
+ {&(_ZTV7ee31500[5]), 5,15},
+ {&(_ZTV7ee31500[10]), 10,15},
+ {&(_ZTV7ee31500[14]), 14,15},
+ {&(_tg__ZTV6dd1500__7ee31500[4]), 4,4},
+ {&(_tg__ZTV5cc500__6dd1500__7ee31500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee31500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31500[];
+extern VTBL_ENTRY _ZTV7ee31500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31500[];
+Class_Descriptor cd_ee31500 = { "ee31500", // class name
+ bases_ee31500, 4,
+ &(vtc_ee31500[0]), // expected_vtbl_contents
+ &(vtt_ee31500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31500),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31500),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 ee41500 : dd1500 {
+ int e;
+ virtual void bar(); // _ZN7ee415003barEv
+ ~ee41500(); // tgen
+ ee41500(); // tgen
+};
+//SIG(1 ee41500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41500 ::bar(){vfunc_called(this, "_ZN7ee415003barEv");}
+ee41500 ::~ee41500(){ note_dtor("ee41500", this);} // tgen
+ee41500 ::ee41500(){ note_ctor("ee41500", this);} // tgen
+
+static void Test_ee41500()
+{
+ extern Class_Descriptor cd_ee41500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41500, buf);
+ ee41500 *dp, &lv = *(dp=new (buf) ee41500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee41500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee41500");
+ check_base_class_offset(lv, (cc500*)(dd1500*), ABISELECT(16,12), "ee41500");
+ check_base_class_offset(lv, (dd1500*), 0, "ee41500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41500.e");
+ test_class_info(&lv, &cd_ee41500);
+ dp->~ee41500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41500(Test_ee41500, "ee41500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41500C1Ev();
+extern void _ZN7ee41500D1Ev();
+Name_Map name_map_ee41500[] = {
+ NSPAIR(_ZN7ee41500C1Ev),
+ NSPAIR(_ZN7ee41500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd1500;
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+static Base_Class bases_ee41500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41500[];
+extern void _ZN7ee415003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415003barEv,_ZTv0_n16_N7ee415003barEv)();
+extern void ABISELECT(_ZThn16_N7ee415003barEv,_ZThn12_N7ee415003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41500[0]),
+ (VTBL_ENTRY)&_ZN7ee415003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415003barEv,_ZTv0_n16_N7ee415003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41500[];
+static VTBL_ENTRY _tg__ZTV6dd1500__7ee41500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500__7ee41500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee41500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee41500[] = {
+ {&(_ZTV7ee41500[4]), 4,10},
+ {&(_tg__ZTV6dd1500__7ee41500[4]), 4,4},
+ {&(_tg__ZTV5cc500__6dd1500__7ee41500[4]), 4,5},
+ {&(_ZTV7ee41500[9]), 9,10},
+ {&(_tg__ZTV5cc500__7ee41500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41500[];
+extern VTBL_ENTRY _ZTV7ee41500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41500[];
+static VTBL_ENTRY alt_thunk_names142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415003barEv,_ZTv0_n16_N7ee415003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415003barEv,_ZThn12_N7ee415003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41500 = { "ee41500", // class name
+ bases_ee41500, 4,
+ &(vtc_ee41500[0]), // expected_vtbl_contents
+ &(vtt_ee41500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names142,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51500 : virtual dd1500 {
+ int e;
+ virtual void bar(); // _ZN7ee515003barEv
+ ~ee51500(); // tgen
+ ee51500(); // tgen
+};
+//SIG(1 ee51500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51500 ::bar(){vfunc_called(this, "_ZN7ee515003barEv");}
+ee51500 ::~ee51500(){ note_dtor("ee51500", this);} // tgen
+ee51500 ::ee51500(){ note_ctor("ee51500", this);} // tgen
+
+static void Test_ee51500()
+{
+ extern Class_Descriptor cd_ee51500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51500, buf);
+ ee51500 *dp, &lv = *(dp=new (buf) ee51500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee51500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee51500");
+ check_base_class_offset(lv, (cc500*)(dd1500*), ABISELECT(32,16), "ee51500");
+ check_base_class_offset(lv, (dd1500*), ABISELECT(16,8), "ee51500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51500.e");
+ test_class_info(&lv, &cd_ee51500);
+ dp->~ee51500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51500(Test_ee51500, "ee51500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51500C1Ev();
+extern void _ZN7ee51500D1Ev();
+Name_Map name_map_ee51500[] = {
+ NSPAIR(_ZN7ee51500C1Ev),
+ NSPAIR(_ZN7ee51500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd1500;
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+static Base_Class bases_ee51500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1500, 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 _ZTI7ee51500[];
+extern void _ZN7ee515003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515003barEv,_ZTv0_n16_N7ee515003barEv)();
+extern void ABISELECT(_ZThn32_N7ee515003barEv,_ZThn16_N7ee515003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51500[0]),
+ (VTBL_ENTRY)&_ZN7ee515003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51500[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515003barEv,_ZTv0_n16_N7ee515003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51500[];
+static VTBL_ENTRY _tg__ZTV6dd1500__7ee51500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500__7ee51500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee51500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee51500[] = {
+ {&(_ZTV7ee51500[5]), 5,15},
+ {&(_ZTV7ee51500[10]), 10,15},
+ {&(_ZTV7ee51500[14]), 14,15},
+ {&(_tg__ZTV6dd1500__7ee51500[4]), 4,4},
+ {&(_tg__ZTV5cc500__6dd1500__7ee51500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee51500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51500[];
+extern VTBL_ENTRY _ZTV7ee51500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51500[];
+static VTBL_ENTRY alt_thunk_names143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515003barEv,_ZTv0_n16_N7ee515003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515003barEv,_ZThn16_N7ee515003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51500 = { "ee51500", // class name
+ bases_ee51500, 4,
+ &(vtc_ee51500[0]), // expected_vtbl_contents
+ &(vtt_ee51500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51500),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names143,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61500 : dd1500 {
+ int e;
+ virtual void foo(); // _ZN7ee615003fooEv
+ virtual void bar(); // _ZN7ee615003barEv
+ ~ee61500(); // tgen
+ ee61500(); // tgen
+};
+//SIG(1 ee61500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61500 ::foo(){vfunc_called(this, "_ZN7ee615003fooEv");}
+void ee61500 ::bar(){vfunc_called(this, "_ZN7ee615003barEv");}
+ee61500 ::~ee61500(){ note_dtor("ee61500", this);} // tgen
+ee61500 ::ee61500(){ note_ctor("ee61500", this);} // tgen
+
+static void Test_ee61500()
+{
+ extern Class_Descriptor cd_ee61500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61500, buf);
+ ee61500 *dp, &lv = *(dp=new (buf) ee61500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee61500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee61500");
+ check_base_class_offset(lv, (cc500*)(dd1500*), ABISELECT(16,12), "ee61500");
+ check_base_class_offset(lv, (dd1500*), 0, "ee61500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61500.e");
+ test_class_info(&lv, &cd_ee61500);
+ dp->~ee61500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61500(Test_ee61500, "ee61500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61500C1Ev();
+extern void _ZN7ee61500D1Ev();
+Name_Map name_map_ee61500[] = {
+ NSPAIR(_ZN7ee61500C1Ev),
+ NSPAIR(_ZN7ee61500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd1500;
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+static Base_Class bases_ee61500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61500[];
+extern void _ZN7ee615003fooEv();
+extern void _ZN7ee615003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615003barEv,_ZTv0_n16_N7ee615003barEv)();
+extern void ABISELECT(_ZThn16_N7ee615003barEv,_ZThn12_N7ee615003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61500[0]),
+ (VTBL_ENTRY)&_ZN7ee615003fooEv,
+ (VTBL_ENTRY)&_ZN7ee615003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615003barEv,_ZTv0_n16_N7ee615003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61500[];
+static VTBL_ENTRY _tg__ZTV6dd1500__7ee61500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500__7ee61500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee61500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee61500[] = {
+ {&(_ZTV7ee61500[4]), 4,11},
+ {&(_tg__ZTV6dd1500__7ee61500[4]), 4,4},
+ {&(_tg__ZTV5cc500__6dd1500__7ee61500[4]), 4,5},
+ {&(_ZTV7ee61500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee61500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61500[];
+extern VTBL_ENTRY _ZTV7ee61500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61500[];
+static VTBL_ENTRY alt_thunk_names144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615003barEv,_ZTv0_n16_N7ee615003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615003barEv,_ZThn12_N7ee615003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61500 = { "ee61500", // class name
+ bases_ee61500, 4,
+ &(vtc_ee61500[0]), // expected_vtbl_contents
+ &(vtt_ee61500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71500 : virtual dd1500 {
+ int e;
+ virtual void foo(); // _ZN7ee715003fooEv
+ virtual void bar(); // _ZN7ee715003barEv
+ ~ee71500(); // tgen
+ ee71500(); // tgen
+};
+//SIG(1 ee71500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71500 ::foo(){vfunc_called(this, "_ZN7ee715003fooEv");}
+void ee71500 ::bar(){vfunc_called(this, "_ZN7ee715003barEv");}
+ee71500 ::~ee71500(){ note_dtor("ee71500", this);} // tgen
+ee71500 ::ee71500(){ note_ctor("ee71500", this);} // tgen
+
+static void Test_ee71500()
+{
+ extern Class_Descriptor cd_ee71500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71500, buf);
+ ee71500 *dp, &lv = *(dp=new (buf) ee71500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee71500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee71500");
+ check_base_class_offset(lv, (cc500*)(dd1500*), ABISELECT(32,16), "ee71500");
+ check_base_class_offset(lv, (dd1500*), ABISELECT(16,8), "ee71500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71500.e");
+ test_class_info(&lv, &cd_ee71500);
+ dp->~ee71500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71500(Test_ee71500, "ee71500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71500C1Ev();
+extern void _ZN7ee71500D1Ev();
+Name_Map name_map_ee71500[] = {
+ NSPAIR(_ZN7ee71500C1Ev),
+ NSPAIR(_ZN7ee71500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd1500;
+extern VTBL_ENTRY _ZTI6dd1500[];
+extern VTBL_ENTRY _ZTV6dd1500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1500[];
+static Base_Class bases_ee71500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1500, 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 _ZTI7ee71500[];
+extern void _ZN7ee715003fooEv();
+extern void _ZN7ee715003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715003barEv,_ZTv0_n16_N7ee715003barEv)();
+extern void ABISELECT(_ZThn32_N7ee715003barEv,_ZThn16_N7ee715003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71500[0]),
+ (VTBL_ENTRY)&_ZN7ee715003fooEv,
+ (VTBL_ENTRY)&_ZN7ee715003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71500[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715003barEv,_ZTv0_n16_N7ee715003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71500[];
+static VTBL_ENTRY _tg__ZTV6dd1500__7ee71500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd1500__7ee71500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee71500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee71500[] = {
+ {&(_ZTV7ee71500[5]), 5,16},
+ {&(_ZTV7ee71500[11]), 11,16},
+ {&(_ZTV7ee71500[15]), 15,16},
+ {&(_tg__ZTV6dd1500__7ee71500[4]), 4,4},
+ {&(_tg__ZTV5cc500__6dd1500__7ee71500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee71500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71500[];
+extern VTBL_ENTRY _ZTV7ee71500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71500[];
+static VTBL_ENTRY alt_thunk_names145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715003barEv,_ZTv0_n16_N7ee715003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715003barEv,_ZThn16_N7ee715003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71500 = { "ee71500", // class name
+ bases_ee71500, 4,
+ &(vtc_ee71500[0]), // expected_vtbl_contents
+ &(vtt_ee71500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71500),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names145,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2500 : cc500 {
+ int d;
+ virtual void foo(); // _ZN6dd25003fooEv
+ ~dd2500(); // tgen
+ dd2500(); // tgen
+};
+//SIG(-1 dd2500) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd2500 ::foo(){vfunc_called(this, "_ZN6dd25003fooEv");}
+dd2500 ::~dd2500(){ note_dtor("dd2500", this);} // tgen
+dd2500 ::dd2500(){ note_ctor("dd2500", this);} // tgen
+
+static void Test_dd2500()
+{
+ extern Class_Descriptor cd_dd2500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2500, buf);
+ dd2500 *dp, &lv = *(dp=new (buf) dd2500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd2500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(16,12), "dd2500");
+ check_base_class_offset(lv, (cc500*), 0, "dd2500");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2500.d");
+ test_class_info(&lv, &cd_dd2500);
+ dp->~dd2500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2500(Test_dd2500, "dd2500", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2500C1Ev();
+extern void _ZN6dd2500D1Ev();
+Name_Map name_map_dd2500[] = {
+ NSPAIR(_ZN6dd2500C1Ev),
+ NSPAIR(_ZN6dd2500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+static Base_Class bases_dd2500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY vtc_dd2500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd2500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_dd2500[] = {
+ {&(_ZTV6dd2500[3]), 3,5},
+ {&(_tg__ZTV5cc500__6dd2500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+Class_Descriptor cd_dd2500 = { "dd2500", // class name
+ bases_dd2500, 3,
+ &(vtc_dd2500[0]), // expected_vtbl_contents
+ &(vtt_dd2500[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2500),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 ee02500 : dd2500 {
+ int e;
+ ~ee02500(); // tgen
+ ee02500(); // tgen
+};
+//SIG(1 ee02500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02500 ::~ee02500(){ note_dtor("ee02500", this);} // tgen
+ee02500 ::ee02500(){ note_ctor("ee02500", this);} // tgen
+
+static void Test_ee02500()
+{
+ extern Class_Descriptor cd_ee02500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02500, buf);
+ ee02500 *dp, &lv = *(dp=new (buf) ee02500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee02500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd2500*), ABISELECT(20,16), "ee02500");
+ check_base_class_offset(lv, (cc500*)(dd2500*), 0, "ee02500");
+ check_base_class_offset(lv, (dd2500*), 0, "ee02500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02500.e");
+ test_class_info(&lv, &cd_ee02500);
+ dp->~ee02500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02500(Test_ee02500, "ee02500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02500C1Ev();
+extern void _ZN7ee02500D1Ev();
+Name_Map name_map_ee02500[] = {
+ NSPAIR(_ZN7ee02500C1Ev),
+ NSPAIR(_ZN7ee02500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd2500;
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+static Base_Class bases_ee02500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee02500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY vtc_ee02500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2500__7ee02500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd2500__7ee02500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee02500[] = {
+ {&(_ZTV7ee02500[3]), 3,5},
+ {&(_tg__ZTV6dd2500__7ee02500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd2500__7ee02500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02500[];
+extern VTBL_ENTRY _ZTV7ee02500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02500[];
+Class_Descriptor cd_ee02500 = { "ee02500", // class name
+ bases_ee02500, 4,
+ &(vtc_ee02500[0]), // expected_vtbl_contents
+ &(vtt_ee02500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02500),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 ee12500 : virtual dd2500 {
+ int e;
+ ~ee12500(); // tgen
+ ee12500(); // tgen
+};
+//SIG(1 ee12500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12500 ::~ee12500(){ note_dtor("ee12500", this);} // tgen
+ee12500 ::ee12500(){ note_ctor("ee12500", this);} // tgen
+
+static void Test_ee12500()
+{
+ extern Class_Descriptor cd_ee12500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12500, buf);
+ ee12500 *dp, &lv = *(dp=new (buf) ee12500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee12500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd2500*), ABISELECT(32,20), "ee12500");
+ check_base_class_offset(lv, (cc500*)(dd2500*), ABISELECT(16,8), "ee12500");
+ check_base_class_offset(lv, (dd2500*), ABISELECT(16,8), "ee12500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12500.e");
+ test_class_info(&lv, &cd_ee12500);
+ dp->~ee12500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12500(Test_ee12500, "ee12500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12500C1Ev();
+extern void _ZN7ee12500D1Ev();
+Name_Map name_map_ee12500[] = {
+ NSPAIR(_ZN7ee12500C1Ev),
+ NSPAIR(_ZN7ee12500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd2500;
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+static Base_Class bases_ee12500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2500, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY vtc_ee12500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12500[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2500__7ee12500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd2500__7ee12500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee12500[] = {
+ {&(_ZTV7ee12500[4]), 4,11},
+ {&(_ZTV7ee12500[9]), 9,11},
+ {&(_tg__ZTV6dd2500__7ee12500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd2500__7ee12500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12500[];
+extern VTBL_ENTRY _ZTV7ee12500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12500[];
+Class_Descriptor cd_ee12500 = { "ee12500", // class name
+ bases_ee12500, 4,
+ &(vtc_ee12500[0]), // expected_vtbl_contents
+ &(vtt_ee12500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12500),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 ee22500 : dd2500 {
+ int e;
+ virtual void foo(); // _ZN7ee225003fooEv
+ ~ee22500(); // tgen
+ ee22500(); // tgen
+};
+//SIG(1 ee22500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22500 ::foo(){vfunc_called(this, "_ZN7ee225003fooEv");}
+ee22500 ::~ee22500(){ note_dtor("ee22500", this);} // tgen
+ee22500 ::ee22500(){ note_ctor("ee22500", this);} // tgen
+
+static void Test_ee22500()
+{
+ extern Class_Descriptor cd_ee22500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22500, buf);
+ ee22500 *dp, &lv = *(dp=new (buf) ee22500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee22500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd2500*), ABISELECT(20,16), "ee22500");
+ check_base_class_offset(lv, (cc500*)(dd2500*), 0, "ee22500");
+ check_base_class_offset(lv, (dd2500*), 0, "ee22500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22500.e");
+ test_class_info(&lv, &cd_ee22500);
+ dp->~ee22500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22500(Test_ee22500, "ee22500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22500C1Ev();
+extern void _ZN7ee22500D1Ev();
+Name_Map name_map_ee22500[] = {
+ NSPAIR(_ZN7ee22500C1Ev),
+ NSPAIR(_ZN7ee22500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd2500;
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+static Base_Class bases_ee22500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN7ee225003fooEv();
+static VTBL_ENTRY vtc_ee22500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN7ee225003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2500__7ee22500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd2500__7ee22500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee22500[] = {
+ {&(_ZTV7ee22500[3]), 3,5},
+ {&(_tg__ZTV6dd2500__7ee22500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd2500__7ee22500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22500[];
+extern VTBL_ENTRY _ZTV7ee22500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22500[];
+Class_Descriptor cd_ee22500 = { "ee22500", // class name
+ bases_ee22500, 4,
+ &(vtc_ee22500[0]), // expected_vtbl_contents
+ &(vtt_ee22500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22500),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 ee32500 : virtual dd2500 {
+ int e;
+ virtual void foo(); // _ZN7ee325003fooEv
+ ~ee32500(); // tgen
+ ee32500(); // tgen
+};
+//SIG(1 ee32500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32500 ::foo(){vfunc_called(this, "_ZN7ee325003fooEv");}
+ee32500 ::~ee32500(){ note_dtor("ee32500", this);} // tgen
+ee32500 ::ee32500(){ note_ctor("ee32500", this);} // tgen
+
+static void Test_ee32500()
+{
+ extern Class_Descriptor cd_ee32500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32500, buf);
+ ee32500 *dp, &lv = *(dp=new (buf) ee32500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee32500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd2500*), ABISELECT(32,20), "ee32500");
+ check_base_class_offset(lv, (cc500*)(dd2500*), ABISELECT(16,8), "ee32500");
+ check_base_class_offset(lv, (dd2500*), ABISELECT(16,8), "ee32500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32500.e");
+ test_class_info(&lv, &cd_ee32500);
+ dp->~ee32500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32500(Test_ee32500, "ee32500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32500C1Ev();
+extern void _ZN7ee32500D1Ev();
+Name_Map name_map_ee32500[] = {
+ NSPAIR(_ZN7ee32500C1Ev),
+ NSPAIR(_ZN7ee32500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd2500;
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+static Base_Class bases_ee32500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32500[];
+extern void _ZN7ee325003fooEv();
+extern void _ZN5cc5003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325003fooEv,_ZTv0_n20_N7ee325003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325003fooEv,_ZThn8_N7ee325003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32500[0]),
+ (VTBL_ENTRY)&_ZN7ee325003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325003fooEv,_ZTv0_n20_N7ee325003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2500__7ee32500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd2500__7ee32500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee32500[] = {
+ {&(_ZTV7ee32500[4]), 4,12},
+ {&(_ZTV7ee32500[10]), 10,12},
+ {&(_tg__ZTV6dd2500__7ee32500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd2500__7ee32500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32500[];
+extern VTBL_ENTRY _ZTV7ee32500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32500[];
+static VTBL_ENTRY alt_thunk_names146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325003fooEv,_ZTv0_n20_N7ee325003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325003fooEv,_ZThn8_N7ee325003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32500 = { "ee32500", // class name
+ bases_ee32500, 4,
+ &(vtc_ee32500[0]), // expected_vtbl_contents
+ &(vtt_ee32500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32500),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names146,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42500 : dd2500 {
+ int e;
+ virtual void bar(); // _ZN7ee425003barEv
+ ~ee42500(); // tgen
+ ee42500(); // tgen
+};
+//SIG(1 ee42500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42500 ::bar(){vfunc_called(this, "_ZN7ee425003barEv");}
+ee42500 ::~ee42500(){ note_dtor("ee42500", this);} // tgen
+ee42500 ::ee42500(){ note_ctor("ee42500", this);} // tgen
+
+static void Test_ee42500()
+{
+ extern Class_Descriptor cd_ee42500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42500, buf);
+ ee42500 *dp, &lv = *(dp=new (buf) ee42500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee42500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd2500*), ABISELECT(20,16), "ee42500");
+ check_base_class_offset(lv, (cc500*)(dd2500*), 0, "ee42500");
+ check_base_class_offset(lv, (dd2500*), 0, "ee42500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42500.e");
+ test_class_info(&lv, &cd_ee42500);
+ dp->~ee42500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42500(Test_ee42500, "ee42500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42500C1Ev();
+extern void _ZN7ee42500D1Ev();
+Name_Map name_map_ee42500[] = {
+ NSPAIR(_ZN7ee42500C1Ev),
+ NSPAIR(_ZN7ee42500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd2500;
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+static Base_Class bases_ee42500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42500[];
+extern void _ZN7ee425003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY vtc_ee42500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42500[0]),
+ (VTBL_ENTRY)&_ZN7ee425003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee42500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2500__7ee42500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd2500__7ee42500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee42500[] = {
+ {&(_ZTV7ee42500[3]), 3,5},
+ {&(_tg__ZTV6dd2500__7ee42500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd2500__7ee42500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42500[];
+extern VTBL_ENTRY _ZTV7ee42500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42500[];
+Class_Descriptor cd_ee42500 = { "ee42500", // class name
+ bases_ee42500, 4,
+ &(vtc_ee42500[0]), // expected_vtbl_contents
+ &(vtt_ee42500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42500),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 ee52500 : virtual dd2500 {
+ int e;
+ virtual void bar(); // _ZN7ee525003barEv
+ ~ee52500(); // tgen
+ ee52500(); // tgen
+};
+//SIG(1 ee52500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52500 ::bar(){vfunc_called(this, "_ZN7ee525003barEv");}
+ee52500 ::~ee52500(){ note_dtor("ee52500", this);} // tgen
+ee52500 ::ee52500(){ note_ctor("ee52500", this);} // tgen
+
+static void Test_ee52500()
+{
+ extern Class_Descriptor cd_ee52500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52500, buf);
+ ee52500 *dp, &lv = *(dp=new (buf) ee52500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee52500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd2500*), ABISELECT(32,20), "ee52500");
+ check_base_class_offset(lv, (cc500*)(dd2500*), ABISELECT(16,8), "ee52500");
+ check_base_class_offset(lv, (dd2500*), ABISELECT(16,8), "ee52500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52500.e");
+ test_class_info(&lv, &cd_ee52500);
+ dp->~ee52500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52500(Test_ee52500, "ee52500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52500C1Ev();
+extern void _ZN7ee52500D1Ev();
+Name_Map name_map_ee52500[] = {
+ NSPAIR(_ZN7ee52500C1Ev),
+ NSPAIR(_ZN7ee52500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd2500;
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+static Base_Class bases_ee52500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52500[];
+extern void _ZN7ee525003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525003barEv,_ZTv0_n16_N7ee525003barEv)();
+extern void ABISELECT(_ZThn16_N7ee525003barEv,_ZThn8_N7ee525003barEv)() __attribute__((weak));
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY vtc_ee52500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52500[0]),
+ (VTBL_ENTRY)&_ZN7ee525003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525003barEv,_ZTv0_n16_N7ee525003barEv),
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2500__7ee52500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd2500__7ee52500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee52500[] = {
+ {&(_ZTV7ee52500[4]), 4,12},
+ {&(_ZTV7ee52500[10]), 10,12},
+ {&(_tg__ZTV6dd2500__7ee52500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd2500__7ee52500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52500[];
+extern VTBL_ENTRY _ZTV7ee52500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52500[];
+static VTBL_ENTRY alt_thunk_names147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525003barEv,_ZTv0_n16_N7ee525003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525003barEv,_ZThn8_N7ee525003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52500 = { "ee52500", // class name
+ bases_ee52500, 4,
+ &(vtc_ee52500[0]), // expected_vtbl_contents
+ &(vtt_ee52500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52500),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names147,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62500 : dd2500 {
+ int e;
+ virtual void foo(); // _ZN7ee625003fooEv
+ virtual void bar(); // _ZN7ee625003barEv
+ ~ee62500(); // tgen
+ ee62500(); // tgen
+};
+//SIG(1 ee62500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62500 ::foo(){vfunc_called(this, "_ZN7ee625003fooEv");}
+void ee62500 ::bar(){vfunc_called(this, "_ZN7ee625003barEv");}
+ee62500 ::~ee62500(){ note_dtor("ee62500", this);} // tgen
+ee62500 ::ee62500(){ note_ctor("ee62500", this);} // tgen
+
+static void Test_ee62500()
+{
+ extern Class_Descriptor cd_ee62500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62500, buf);
+ ee62500 *dp, &lv = *(dp=new (buf) ee62500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee62500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd2500*), ABISELECT(20,16), "ee62500");
+ check_base_class_offset(lv, (cc500*)(dd2500*), 0, "ee62500");
+ check_base_class_offset(lv, (dd2500*), 0, "ee62500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62500.e");
+ test_class_info(&lv, &cd_ee62500);
+ dp->~ee62500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62500(Test_ee62500, "ee62500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62500C1Ev();
+extern void _ZN7ee62500D1Ev();
+Name_Map name_map_ee62500[] = {
+ NSPAIR(_ZN7ee62500C1Ev),
+ NSPAIR(_ZN7ee62500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd2500;
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+static Base_Class bases_ee62500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62500[];
+extern void _ZN7ee625003barEv();
+extern void _ZN7ee625003fooEv();
+static VTBL_ENTRY vtc_ee62500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62500[0]),
+ (VTBL_ENTRY)&_ZN7ee625003barEv,
+ (VTBL_ENTRY)&_ZN7ee625003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee62500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2500__7ee62500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd2500__7ee62500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee62500[] = {
+ {&(_ZTV7ee62500[3]), 3,5},
+ {&(_tg__ZTV6dd2500__7ee62500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd2500__7ee62500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62500[];
+extern VTBL_ENTRY _ZTV7ee62500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62500[];
+Class_Descriptor cd_ee62500 = { "ee62500", // class name
+ bases_ee62500, 4,
+ &(vtc_ee62500[0]), // expected_vtbl_contents
+ &(vtt_ee62500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62500),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 ee72500 : virtual dd2500 {
+ int e;
+ virtual void foo(); // _ZN7ee725003fooEv
+ virtual void bar(); // _ZN7ee725003barEv
+ ~ee72500(); // tgen
+ ee72500(); // tgen
+};
+//SIG(1 ee72500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72500 ::foo(){vfunc_called(this, "_ZN7ee725003fooEv");}
+void ee72500 ::bar(){vfunc_called(this, "_ZN7ee725003barEv");}
+ee72500 ::~ee72500(){ note_dtor("ee72500", this);} // tgen
+ee72500 ::ee72500(){ note_ctor("ee72500", this);} // tgen
+
+static void Test_ee72500()
+{
+ extern Class_Descriptor cd_ee72500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72500, buf);
+ ee72500 *dp, &lv = *(dp=new (buf) ee72500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee72500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd2500*), ABISELECT(32,20), "ee72500");
+ check_base_class_offset(lv, (cc500*)(dd2500*), ABISELECT(16,8), "ee72500");
+ check_base_class_offset(lv, (dd2500*), ABISELECT(16,8), "ee72500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72500.e");
+ test_class_info(&lv, &cd_ee72500);
+ dp->~ee72500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72500(Test_ee72500, "ee72500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72500C1Ev();
+extern void _ZN7ee72500D1Ev();
+Name_Map name_map_ee72500[] = {
+ NSPAIR(_ZN7ee72500C1Ev),
+ NSPAIR(_ZN7ee72500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd2500;
+extern VTBL_ENTRY _ZTI6dd2500[];
+extern VTBL_ENTRY _ZTV6dd2500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2500[];
+static Base_Class bases_ee72500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72500[];
+extern void _ZN7ee725003fooEv();
+extern void _ZN7ee725003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725003barEv,_ZTv0_n16_N7ee725003barEv)();
+extern void ABISELECT(_ZThn16_N7ee725003barEv,_ZThn8_N7ee725003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725003fooEv,_ZTv0_n20_N7ee725003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725003fooEv,_ZThn8_N7ee725003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72500[0]),
+ (VTBL_ENTRY)&_ZN7ee725003fooEv,
+ (VTBL_ENTRY)&_ZN7ee725003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725003barEv,_ZTv0_n16_N7ee725003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725003fooEv,_ZTv0_n20_N7ee725003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72500[];
+extern void _ZN5cc5003barEv();
+extern void _ZN6dd25003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2500__7ee72500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+ (VTBL_ENTRY)&_ZN6dd25003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd2500__7ee72500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee72500[] = {
+ {&(_ZTV7ee72500[4]), 4,13},
+ {&(_ZTV7ee72500[11]), 11,13},
+ {&(_tg__ZTV6dd2500__7ee72500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd2500__7ee72500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72500[];
+extern VTBL_ENTRY _ZTV7ee72500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72500[];
+static VTBL_ENTRY alt_thunk_names148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725003fooEv,_ZTv0_n20_N7ee725003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725003fooEv,_ZThn8_N7ee725003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725003barEv,_ZTv0_n16_N7ee725003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725003barEv,_ZThn8_N7ee725003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72500 = { "ee72500", // class name
+ bases_ee72500, 4,
+ &(vtc_ee72500[0]), // expected_vtbl_contents
+ &(vtt_ee72500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72500),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names148,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3500 : virtual cc500 {
+ int d;
+ virtual void foo(); // _ZN6dd35003fooEv
+ ~dd3500(); // tgen
+ dd3500(); // tgen
+};
+//SIG(-1 dd3500) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd3500 ::foo(){vfunc_called(this, "_ZN6dd35003fooEv");}
+dd3500 ::~dd3500(){ note_dtor("dd3500", this);} // tgen
+dd3500 ::dd3500(){ note_ctor("dd3500", this);} // tgen
+
+static void Test_dd3500()
+{
+ extern Class_Descriptor cd_dd3500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3500, buf);
+ dd3500 *dp, &lv = *(dp=new (buf) dd3500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd3500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,16), "dd3500");
+ check_base_class_offset(lv, (cc500*), ABISELECT(16,8), "dd3500");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3500.d");
+ test_class_info(&lv, &cd_dd3500);
+ dp->~dd3500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3500(Test_dd3500, "dd3500", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3500C1Ev();
+extern void _ZN6dd3500D1Ev();
+Name_Map name_map_dd3500[] = {
+ NSPAIR(_ZN6dd3500C1Ev),
+ NSPAIR(_ZN6dd3500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+static Base_Class bases_dd3500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern void _ZN6dd35003fooEv();
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_dd3500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_dd3500[] = {
+ {&(_ZTV6dd3500[4]), 4,10},
+ {&(_ZTV6dd3500[9]), 9,10},
+ {&(_tg__ZTV5cc500__6dd3500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+Class_Descriptor cd_dd3500 = { "dd3500", // class name
+ bases_dd3500, 3,
+ &(vtc_dd3500[0]), // expected_vtbl_contents
+ &(vtt_dd3500[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3500),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 ee03500 : dd3500 {
+ int e;
+ ~ee03500(); // tgen
+ ee03500(); // tgen
+};
+//SIG(1 ee03500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03500 ::~ee03500(){ note_dtor("ee03500", this);} // tgen
+ee03500 ::ee03500(){ note_ctor("ee03500", this);} // tgen
+
+static void Test_ee03500()
+{
+ extern Class_Descriptor cd_ee03500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03500, buf);
+ ee03500 *dp, &lv = *(dp=new (buf) ee03500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee03500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee03500");
+ check_base_class_offset(lv, (cc500*)(dd3500*), ABISELECT(16,12), "ee03500");
+ check_base_class_offset(lv, (dd3500*), 0, "ee03500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03500.e");
+ test_class_info(&lv, &cd_ee03500);
+ dp->~ee03500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03500(Test_ee03500, "ee03500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03500C1Ev();
+extern void _ZN7ee03500D1Ev();
+Name_Map name_map_ee03500[] = {
+ NSPAIR(_ZN7ee03500C1Ev),
+ NSPAIR(_ZN7ee03500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd3500;
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+static Base_Class bases_ee03500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03500[];
+extern void _ZN6dd35003fooEv();
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee03500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03500[];
+extern void _ZN6dd35003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3500__7ee03500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500__7ee03500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee03500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee03500[] = {
+ {&(_ZTV7ee03500[4]), 4,10},
+ {&(_tg__ZTV6dd3500__7ee03500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd3500__7ee03500[4]), 4,5},
+ {&(_ZTV7ee03500[9]), 9,10},
+ {&(_tg__ZTV5cc500__7ee03500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03500[];
+extern VTBL_ENTRY _ZTV7ee03500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03500[];
+Class_Descriptor cd_ee03500 = { "ee03500", // class name
+ bases_ee03500, 4,
+ &(vtc_ee03500[0]), // expected_vtbl_contents
+ &(vtt_ee03500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03500),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 ee13500 : virtual dd3500 {
+ int e;
+ ~ee13500(); // tgen
+ ee13500(); // tgen
+};
+//SIG(1 ee13500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13500 ::~ee13500(){ note_dtor("ee13500", this);} // tgen
+ee13500 ::ee13500(){ note_ctor("ee13500", this);} // tgen
+
+static void Test_ee13500()
+{
+ extern Class_Descriptor cd_ee13500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13500, buf);
+ ee13500 *dp, &lv = *(dp=new (buf) ee13500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee13500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee13500");
+ check_base_class_offset(lv, (cc500*)(dd3500*), ABISELECT(32,16), "ee13500");
+ check_base_class_offset(lv, (dd3500*), ABISELECT(16,8), "ee13500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13500.e");
+ test_class_info(&lv, &cd_ee13500);
+ dp->~ee13500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13500(Test_ee13500, "ee13500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13500C1Ev();
+extern void _ZN7ee13500D1Ev();
+Name_Map name_map_ee13500[] = {
+ NSPAIR(_ZN7ee13500C1Ev),
+ NSPAIR(_ZN7ee13500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd3500;
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+static Base_Class bases_ee13500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13500[];
+extern void _ZN6dd35003fooEv();
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee13500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13500[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13500[];
+extern void _ZN6dd35003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3500__7ee13500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500__7ee13500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee13500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee13500[] = {
+ {&(_ZTV7ee13500[5]), 5,16},
+ {&(_ZTV7ee13500[10]), 10,16},
+ {&(_ZTV7ee13500[15]), 15,16},
+ {&(_tg__ZTV6dd3500__7ee13500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd3500__7ee13500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee13500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13500[];
+extern VTBL_ENTRY _ZTV7ee13500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13500[];
+Class_Descriptor cd_ee13500 = { "ee13500", // class name
+ bases_ee13500, 4,
+ &(vtc_ee13500[0]), // expected_vtbl_contents
+ &(vtt_ee13500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13500),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13500),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 ee23500 : dd3500 {
+ int e;
+ virtual void foo(); // _ZN7ee235003fooEv
+ ~ee23500(); // tgen
+ ee23500(); // tgen
+};
+//SIG(1 ee23500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23500 ::foo(){vfunc_called(this, "_ZN7ee235003fooEv");}
+ee23500 ::~ee23500(){ note_dtor("ee23500", this);} // tgen
+ee23500 ::ee23500(){ note_ctor("ee23500", this);} // tgen
+
+static void Test_ee23500()
+{
+ extern Class_Descriptor cd_ee23500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23500, buf);
+ ee23500 *dp, &lv = *(dp=new (buf) ee23500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee23500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee23500");
+ check_base_class_offset(lv, (cc500*)(dd3500*), ABISELECT(16,12), "ee23500");
+ check_base_class_offset(lv, (dd3500*), 0, "ee23500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23500.e");
+ test_class_info(&lv, &cd_ee23500);
+ dp->~ee23500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23500(Test_ee23500, "ee23500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23500C1Ev();
+extern void _ZN7ee23500D1Ev();
+Name_Map name_map_ee23500[] = {
+ NSPAIR(_ZN7ee23500C1Ev),
+ NSPAIR(_ZN7ee23500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd3500;
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+static Base_Class bases_ee23500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23500[];
+extern void _ZN7ee235003fooEv();
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee23500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23500[0]),
+ (VTBL_ENTRY)&_ZN7ee235003fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23500[];
+extern void _ZN6dd35003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3500__7ee23500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500__7ee23500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee23500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee23500[] = {
+ {&(_ZTV7ee23500[4]), 4,10},
+ {&(_tg__ZTV6dd3500__7ee23500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd3500__7ee23500[4]), 4,5},
+ {&(_ZTV7ee23500[9]), 9,10},
+ {&(_tg__ZTV5cc500__7ee23500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23500[];
+extern VTBL_ENTRY _ZTV7ee23500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23500[];
+Class_Descriptor cd_ee23500 = { "ee23500", // class name
+ bases_ee23500, 4,
+ &(vtc_ee23500[0]), // expected_vtbl_contents
+ &(vtt_ee23500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23500),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 ee33500 : virtual dd3500 {
+ int e;
+ virtual void foo(); // _ZN7ee335003fooEv
+ ~ee33500(); // tgen
+ ee33500(); // tgen
+};
+//SIG(1 ee33500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33500 ::foo(){vfunc_called(this, "_ZN7ee335003fooEv");}
+ee33500 ::~ee33500(){ note_dtor("ee33500", this);} // tgen
+ee33500 ::ee33500(){ note_ctor("ee33500", this);} // tgen
+
+static void Test_ee33500()
+{
+ extern Class_Descriptor cd_ee33500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33500, buf);
+ ee33500 *dp, &lv = *(dp=new (buf) ee33500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee33500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee33500");
+ check_base_class_offset(lv, (cc500*)(dd3500*), ABISELECT(32,16), "ee33500");
+ check_base_class_offset(lv, (dd3500*), ABISELECT(16,8), "ee33500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33500.e");
+ test_class_info(&lv, &cd_ee33500);
+ dp->~ee33500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33500(Test_ee33500, "ee33500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33500C1Ev();
+extern void _ZN7ee33500D1Ev();
+Name_Map name_map_ee33500[] = {
+ NSPAIR(_ZN7ee33500C1Ev),
+ NSPAIR(_ZN7ee33500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd3500;
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+static Base_Class bases_ee33500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33500[];
+extern void _ZN7ee335003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335003fooEv,_ZTv0_n20_N7ee335003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335003fooEv,_ZThn8_N7ee335003fooEv)() __attribute__((weak));
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY vtc_ee33500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33500[0]),
+ (VTBL_ENTRY)&_ZN7ee335003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335003fooEv,_ZTv0_n20_N7ee335003fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33500[];
+extern void _ZN6dd35003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3500__7ee33500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500__7ee33500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee33500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee33500[] = {
+ {&(_ZTV7ee33500[5]), 5,17},
+ {&(_ZTV7ee33500[11]), 11,17},
+ {&(_ZTV7ee33500[16]), 16,17},
+ {&(_tg__ZTV6dd3500__7ee33500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd3500__7ee33500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee33500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33500[];
+extern VTBL_ENTRY _ZTV7ee33500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33500[];
+static VTBL_ENTRY alt_thunk_names149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335003fooEv,_ZTv0_n20_N7ee335003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335003fooEv,_ZThn8_N7ee335003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33500 = { "ee33500", // class name
+ bases_ee33500, 4,
+ &(vtc_ee33500[0]), // expected_vtbl_contents
+ &(vtt_ee33500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33500),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names149,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43500 : dd3500 {
+ int e;
+ virtual void bar(); // _ZN7ee435003barEv
+ ~ee43500(); // tgen
+ ee43500(); // tgen
+};
+//SIG(1 ee43500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43500 ::bar(){vfunc_called(this, "_ZN7ee435003barEv");}
+ee43500 ::~ee43500(){ note_dtor("ee43500", this);} // tgen
+ee43500 ::ee43500(){ note_ctor("ee43500", this);} // tgen
+
+static void Test_ee43500()
+{
+ extern Class_Descriptor cd_ee43500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43500, buf);
+ ee43500 *dp, &lv = *(dp=new (buf) ee43500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee43500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee43500");
+ check_base_class_offset(lv, (cc500*)(dd3500*), ABISELECT(16,12), "ee43500");
+ check_base_class_offset(lv, (dd3500*), 0, "ee43500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43500.e");
+ test_class_info(&lv, &cd_ee43500);
+ dp->~ee43500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43500(Test_ee43500, "ee43500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43500C1Ev();
+extern void _ZN7ee43500D1Ev();
+Name_Map name_map_ee43500[] = {
+ NSPAIR(_ZN7ee43500C1Ev),
+ NSPAIR(_ZN7ee43500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd3500;
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+static Base_Class bases_ee43500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43500[];
+extern void _ZN6dd35003fooEv();
+extern void _ZN7ee435003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435003barEv,_ZTv0_n16_N7ee435003barEv)();
+extern void ABISELECT(_ZThn16_N7ee435003barEv,_ZThn12_N7ee435003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+ (VTBL_ENTRY)&_ZN7ee435003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435003barEv,_ZTv0_n16_N7ee435003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43500[];
+extern void _ZN6dd35003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3500__7ee43500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500__7ee43500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee43500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee43500[] = {
+ {&(_ZTV7ee43500[4]), 4,11},
+ {&(_tg__ZTV6dd3500__7ee43500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd3500__7ee43500[4]), 4,5},
+ {&(_ZTV7ee43500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee43500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43500[];
+extern VTBL_ENTRY _ZTV7ee43500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43500[];
+static VTBL_ENTRY alt_thunk_names150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435003barEv,_ZTv0_n16_N7ee435003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435003barEv,_ZThn12_N7ee435003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43500 = { "ee43500", // class name
+ bases_ee43500, 4,
+ &(vtc_ee43500[0]), // expected_vtbl_contents
+ &(vtt_ee43500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names150,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53500 : virtual dd3500 {
+ int e;
+ virtual void bar(); // _ZN7ee535003barEv
+ ~ee53500(); // tgen
+ ee53500(); // tgen
+};
+//SIG(1 ee53500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53500 ::bar(){vfunc_called(this, "_ZN7ee535003barEv");}
+ee53500 ::~ee53500(){ note_dtor("ee53500", this);} // tgen
+ee53500 ::ee53500(){ note_ctor("ee53500", this);} // tgen
+
+static void Test_ee53500()
+{
+ extern Class_Descriptor cd_ee53500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53500, buf);
+ ee53500 *dp, &lv = *(dp=new (buf) ee53500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee53500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee53500");
+ check_base_class_offset(lv, (cc500*)(dd3500*), ABISELECT(32,16), "ee53500");
+ check_base_class_offset(lv, (dd3500*), ABISELECT(16,8), "ee53500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53500.e");
+ test_class_info(&lv, &cd_ee53500);
+ dp->~ee53500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53500(Test_ee53500, "ee53500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53500C1Ev();
+extern void _ZN7ee53500D1Ev();
+Name_Map name_map_ee53500[] = {
+ NSPAIR(_ZN7ee53500C1Ev),
+ NSPAIR(_ZN7ee53500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd3500;
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+static Base_Class bases_ee53500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53500[];
+extern void _ZN7ee535003barEv();
+extern void _ZN6dd35003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535003barEv,_ZTv0_n16_N7ee535003barEv)();
+extern void ABISELECT(_ZThn32_N7ee535003barEv,_ZThn16_N7ee535003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53500[0]),
+ (VTBL_ENTRY)&_ZN7ee535003barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535003barEv,_ZTv0_n16_N7ee535003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53500[];
+extern void _ZN6dd35003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3500__7ee53500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500__7ee53500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee53500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee53500[] = {
+ {&(_ZTV7ee53500[5]), 5,17},
+ {&(_ZTV7ee53500[11]), 11,17},
+ {&(_ZTV7ee53500[16]), 16,17},
+ {&(_tg__ZTV6dd3500__7ee53500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd3500__7ee53500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee53500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53500[];
+extern VTBL_ENTRY _ZTV7ee53500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53500[];
+static VTBL_ENTRY alt_thunk_names151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535003barEv,_ZTv0_n16_N7ee535003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535003barEv,_ZThn16_N7ee535003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53500 = { "ee53500", // class name
+ bases_ee53500, 4,
+ &(vtc_ee53500[0]), // expected_vtbl_contents
+ &(vtt_ee53500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53500),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names151,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63500 : dd3500 {
+ int e;
+ virtual void foo(); // _ZN7ee635003fooEv
+ virtual void bar(); // _ZN7ee635003barEv
+ ~ee63500(); // tgen
+ ee63500(); // tgen
+};
+//SIG(1 ee63500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63500 ::foo(){vfunc_called(this, "_ZN7ee635003fooEv");}
+void ee63500 ::bar(){vfunc_called(this, "_ZN7ee635003barEv");}
+ee63500 ::~ee63500(){ note_dtor("ee63500", this);} // tgen
+ee63500 ::ee63500(){ note_ctor("ee63500", this);} // tgen
+
+static void Test_ee63500()
+{
+ extern Class_Descriptor cd_ee63500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63500, buf);
+ ee63500 *dp, &lv = *(dp=new (buf) ee63500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee63500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee63500");
+ check_base_class_offset(lv, (cc500*)(dd3500*), ABISELECT(16,12), "ee63500");
+ check_base_class_offset(lv, (dd3500*), 0, "ee63500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63500.e");
+ test_class_info(&lv, &cd_ee63500);
+ dp->~ee63500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63500(Test_ee63500, "ee63500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63500C1Ev();
+extern void _ZN7ee63500D1Ev();
+Name_Map name_map_ee63500[] = {
+ NSPAIR(_ZN7ee63500C1Ev),
+ NSPAIR(_ZN7ee63500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd3500;
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+static Base_Class bases_ee63500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63500[];
+extern void _ZN7ee635003fooEv();
+extern void _ZN7ee635003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635003barEv,_ZTv0_n16_N7ee635003barEv)();
+extern void ABISELECT(_ZThn16_N7ee635003barEv,_ZThn12_N7ee635003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63500[0]),
+ (VTBL_ENTRY)&_ZN7ee635003fooEv,
+ (VTBL_ENTRY)&_ZN7ee635003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635003barEv,_ZTv0_n16_N7ee635003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63500[];
+extern void _ZN6dd35003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3500__7ee63500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500__7ee63500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee63500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee63500[] = {
+ {&(_ZTV7ee63500[4]), 4,11},
+ {&(_tg__ZTV6dd3500__7ee63500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd3500__7ee63500[4]), 4,5},
+ {&(_ZTV7ee63500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee63500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63500[];
+extern VTBL_ENTRY _ZTV7ee63500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63500[];
+static VTBL_ENTRY alt_thunk_names152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635003barEv,_ZTv0_n16_N7ee635003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635003barEv,_ZThn12_N7ee635003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63500 = { "ee63500", // class name
+ bases_ee63500, 4,
+ &(vtc_ee63500[0]), // expected_vtbl_contents
+ &(vtt_ee63500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names152,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73500 : virtual dd3500 {
+ int e;
+ virtual void foo(); // _ZN7ee735003fooEv
+ virtual void bar(); // _ZN7ee735003barEv
+ ~ee73500(); // tgen
+ ee73500(); // tgen
+};
+//SIG(1 ee73500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73500 ::foo(){vfunc_called(this, "_ZN7ee735003fooEv");}
+void ee73500 ::bar(){vfunc_called(this, "_ZN7ee735003barEv");}
+ee73500 ::~ee73500(){ note_dtor("ee73500", this);} // tgen
+ee73500 ::ee73500(){ note_ctor("ee73500", this);} // tgen
+
+static void Test_ee73500()
+{
+ extern Class_Descriptor cd_ee73500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73500, buf);
+ ee73500 *dp, &lv = *(dp=new (buf) ee73500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee73500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee73500");
+ check_base_class_offset(lv, (cc500*)(dd3500*), ABISELECT(32,16), "ee73500");
+ check_base_class_offset(lv, (dd3500*), ABISELECT(16,8), "ee73500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73500.e");
+ test_class_info(&lv, &cd_ee73500);
+ dp->~ee73500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73500(Test_ee73500, "ee73500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73500C1Ev();
+extern void _ZN7ee73500D1Ev();
+Name_Map name_map_ee73500[] = {
+ NSPAIR(_ZN7ee73500C1Ev),
+ NSPAIR(_ZN7ee73500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd3500;
+extern VTBL_ENTRY _ZTI6dd3500[];
+extern VTBL_ENTRY _ZTV6dd3500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3500[];
+static Base_Class bases_ee73500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3500, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73500[];
+extern void _ZN7ee735003fooEv();
+extern void _ZN7ee735003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735003fooEv,_ZTv0_n20_N7ee735003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735003fooEv,_ZThn8_N7ee735003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735003barEv,_ZTv0_n16_N7ee735003barEv)();
+extern void ABISELECT(_ZThn32_N7ee735003barEv,_ZThn16_N7ee735003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73500[0]),
+ (VTBL_ENTRY)&_ZN7ee735003fooEv,
+ (VTBL_ENTRY)&_ZN7ee735003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735003fooEv,_ZTv0_n20_N7ee735003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735003barEv,_ZTv0_n16_N7ee735003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73500[];
+extern void _ZN6dd35003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3500__7ee73500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN6dd35003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd3500__7ee73500[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee73500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee73500[] = {
+ {&(_ZTV7ee73500[5]), 5,18},
+ {&(_ZTV7ee73500[12]), 12,18},
+ {&(_ZTV7ee73500[17]), 17,18},
+ {&(_tg__ZTV6dd3500__7ee73500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd3500__7ee73500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee73500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73500[];
+extern VTBL_ENTRY _ZTV7ee73500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73500[];
+static VTBL_ENTRY alt_thunk_names153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735003barEv,_ZTv0_n16_N7ee735003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735003barEv,_ZThn16_N7ee735003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735003fooEv,_ZTv0_n20_N7ee735003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735003fooEv,_ZThn8_N7ee735003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73500 = { "ee73500", // class name
+ bases_ee73500, 4,
+ &(vtc_ee73500[0]), // expected_vtbl_contents
+ &(vtt_ee73500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73500),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4500 : cc500 {
+ int d;
+ virtual void bar(); // _ZN6dd45003barEv
+ ~dd4500(); // tgen
+ dd4500(); // tgen
+};
+//SIG(-1 dd4500) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd4500 ::bar(){vfunc_called(this, "_ZN6dd45003barEv");}
+dd4500 ::~dd4500(){ note_dtor("dd4500", this);} // tgen
+dd4500 ::dd4500(){ note_ctor("dd4500", this);} // tgen
+
+static void Test_dd4500()
+{
+ extern Class_Descriptor cd_dd4500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4500, buf);
+ dd4500 *dp, &lv = *(dp=new (buf) dd4500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd4500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(16,12), "dd4500");
+ check_base_class_offset(lv, (cc500*), 0, "dd4500");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4500.d");
+ test_class_info(&lv, &cd_dd4500);
+ dp->~dd4500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4500(Test_dd4500, "dd4500", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4500C1Ev();
+extern void _ZN6dd4500D1Ev();
+Name_Map name_map_dd4500[] = {
+ NSPAIR(_ZN6dd4500C1Ev),
+ NSPAIR(_ZN6dd4500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+static Base_Class bases_dd4500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY vtc_dd4500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd4500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_dd4500[] = {
+ {&(_ZTV6dd4500[3]), 3,4},
+ {&(_tg__ZTV5cc500__6dd4500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+Class_Descriptor cd_dd4500 = { "dd4500", // class name
+ bases_dd4500, 3,
+ &(vtc_dd4500[0]), // expected_vtbl_contents
+ &(vtt_dd4500[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4500),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4500),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 ee04500 : dd4500 {
+ int e;
+ ~ee04500(); // tgen
+ ee04500(); // tgen
+};
+//SIG(1 ee04500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04500 ::~ee04500(){ note_dtor("ee04500", this);} // tgen
+ee04500 ::ee04500(){ note_ctor("ee04500", this);} // tgen
+
+static void Test_ee04500()
+{
+ extern Class_Descriptor cd_ee04500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04500, buf);
+ ee04500 *dp, &lv = *(dp=new (buf) ee04500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee04500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd4500*), ABISELECT(20,16), "ee04500");
+ check_base_class_offset(lv, (cc500*)(dd4500*), 0, "ee04500");
+ check_base_class_offset(lv, (dd4500*), 0, "ee04500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04500.e");
+ test_class_info(&lv, &cd_ee04500);
+ dp->~ee04500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04500(Test_ee04500, "ee04500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04500C1Ev();
+extern void _ZN7ee04500D1Ev();
+Name_Map name_map_ee04500[] = {
+ NSPAIR(_ZN7ee04500C1Ev),
+ NSPAIR(_ZN7ee04500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd4500;
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+static Base_Class bases_ee04500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee04500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY vtc_ee04500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee04500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4500__7ee04500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd4500__7ee04500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee04500[] = {
+ {&(_ZTV7ee04500[3]), 3,4},
+ {&(_tg__ZTV6dd4500__7ee04500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd4500__7ee04500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04500[];
+extern VTBL_ENTRY _ZTV7ee04500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04500[];
+Class_Descriptor cd_ee04500 = { "ee04500", // class name
+ bases_ee04500, 4,
+ &(vtc_ee04500[0]), // expected_vtbl_contents
+ &(vtt_ee04500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04500),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04500),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 ee14500 : virtual dd4500 {
+ int e;
+ ~ee14500(); // tgen
+ ee14500(); // tgen
+};
+//SIG(1 ee14500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14500 ::~ee14500(){ note_dtor("ee14500", this);} // tgen
+ee14500 ::ee14500(){ note_ctor("ee14500", this);} // tgen
+
+static void Test_ee14500()
+{
+ extern Class_Descriptor cd_ee14500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14500, buf);
+ ee14500 *dp, &lv = *(dp=new (buf) ee14500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee14500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd4500*), ABISELECT(32,20), "ee14500");
+ check_base_class_offset(lv, (cc500*)(dd4500*), ABISELECT(16,8), "ee14500");
+ check_base_class_offset(lv, (dd4500*), ABISELECT(16,8), "ee14500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14500.e");
+ test_class_info(&lv, &cd_ee14500);
+ dp->~ee14500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14500(Test_ee14500, "ee14500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14500C1Ev();
+extern void _ZN7ee14500D1Ev();
+Name_Map name_map_ee14500[] = {
+ NSPAIR(_ZN7ee14500C1Ev),
+ NSPAIR(_ZN7ee14500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd4500;
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+static Base_Class bases_ee14500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4500, 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 _ZTI7ee14500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY vtc_ee14500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14500[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4500__7ee14500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd4500__7ee14500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee14500[] = {
+ {&(_ZTV7ee14500[4]), 4,9},
+ {&(_ZTV7ee14500[8]), 8,9},
+ {&(_tg__ZTV6dd4500__7ee14500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd4500__7ee14500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14500[];
+extern VTBL_ENTRY _ZTV7ee14500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14500[];
+Class_Descriptor cd_ee14500 = { "ee14500", // class name
+ bases_ee14500, 4,
+ &(vtc_ee14500[0]), // expected_vtbl_contents
+ &(vtt_ee14500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14500),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14500),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 ee24500 : dd4500 {
+ int e;
+ virtual void foo(); // _ZN7ee245003fooEv
+ ~ee24500(); // tgen
+ ee24500(); // tgen
+};
+//SIG(1 ee24500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24500 ::foo(){vfunc_called(this, "_ZN7ee245003fooEv");}
+ee24500 ::~ee24500(){ note_dtor("ee24500", this);} // tgen
+ee24500 ::ee24500(){ note_ctor("ee24500", this);} // tgen
+
+static void Test_ee24500()
+{
+ extern Class_Descriptor cd_ee24500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24500, buf);
+ ee24500 *dp, &lv = *(dp=new (buf) ee24500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee24500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd4500*), ABISELECT(20,16), "ee24500");
+ check_base_class_offset(lv, (cc500*)(dd4500*), 0, "ee24500");
+ check_base_class_offset(lv, (dd4500*), 0, "ee24500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24500.e");
+ test_class_info(&lv, &cd_ee24500);
+ dp->~ee24500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24500(Test_ee24500, "ee24500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24500C1Ev();
+extern void _ZN7ee24500D1Ev();
+Name_Map name_map_ee24500[] = {
+ NSPAIR(_ZN7ee24500C1Ev),
+ NSPAIR(_ZN7ee24500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd4500;
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+static Base_Class bases_ee24500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24500[];
+extern void _ZN6dd45003barEv();
+extern void _ZN7ee245003fooEv();
+static VTBL_ENTRY vtc_ee24500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+ (VTBL_ENTRY)&_ZN7ee245003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee24500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4500__7ee24500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd4500__7ee24500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee24500[] = {
+ {&(_ZTV7ee24500[3]), 3,5},
+ {&(_tg__ZTV6dd4500__7ee24500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd4500__7ee24500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24500[];
+extern VTBL_ENTRY _ZTV7ee24500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24500[];
+Class_Descriptor cd_ee24500 = { "ee24500", // class name
+ bases_ee24500, 4,
+ &(vtc_ee24500[0]), // expected_vtbl_contents
+ &(vtt_ee24500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24500),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 ee34500 : virtual dd4500 {
+ int e;
+ virtual void foo(); // _ZN7ee345003fooEv
+ ~ee34500(); // tgen
+ ee34500(); // tgen
+};
+//SIG(1 ee34500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34500 ::foo(){vfunc_called(this, "_ZN7ee345003fooEv");}
+ee34500 ::~ee34500(){ note_dtor("ee34500", this);} // tgen
+ee34500 ::ee34500(){ note_ctor("ee34500", this);} // tgen
+
+static void Test_ee34500()
+{
+ extern Class_Descriptor cd_ee34500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34500, buf);
+ ee34500 *dp, &lv = *(dp=new (buf) ee34500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee34500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd4500*), ABISELECT(32,20), "ee34500");
+ check_base_class_offset(lv, (cc500*)(dd4500*), ABISELECT(16,8), "ee34500");
+ check_base_class_offset(lv, (dd4500*), ABISELECT(16,8), "ee34500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34500.e");
+ test_class_info(&lv, &cd_ee34500);
+ dp->~ee34500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34500(Test_ee34500, "ee34500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34500C1Ev();
+extern void _ZN7ee34500D1Ev();
+Name_Map name_map_ee34500[] = {
+ NSPAIR(_ZN7ee34500C1Ev),
+ NSPAIR(_ZN7ee34500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd4500;
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+static Base_Class bases_ee34500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4500, 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 _ZTI7ee34500[];
+extern void _ZN7ee345003fooEv();
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY vtc_ee34500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34500[0]),
+ (VTBL_ENTRY)&_ZN7ee345003fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4500__7ee34500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd4500__7ee34500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee34500[] = {
+ {&(_ZTV7ee34500[4]), 4,10},
+ {&(_ZTV7ee34500[9]), 9,10},
+ {&(_tg__ZTV6dd4500__7ee34500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd4500__7ee34500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34500[];
+extern VTBL_ENTRY _ZTV7ee34500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34500[];
+Class_Descriptor cd_ee34500 = { "ee34500", // class name
+ bases_ee34500, 4,
+ &(vtc_ee34500[0]), // expected_vtbl_contents
+ &(vtt_ee34500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34500),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 ee44500 : dd4500 {
+ int e;
+ virtual void bar(); // _ZN7ee445003barEv
+ ~ee44500(); // tgen
+ ee44500(); // tgen
+};
+//SIG(1 ee44500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44500 ::bar(){vfunc_called(this, "_ZN7ee445003barEv");}
+ee44500 ::~ee44500(){ note_dtor("ee44500", this);} // tgen
+ee44500 ::ee44500(){ note_ctor("ee44500", this);} // tgen
+
+static void Test_ee44500()
+{
+ extern Class_Descriptor cd_ee44500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44500, buf);
+ ee44500 *dp, &lv = *(dp=new (buf) ee44500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee44500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd4500*), ABISELECT(20,16), "ee44500");
+ check_base_class_offset(lv, (cc500*)(dd4500*), 0, "ee44500");
+ check_base_class_offset(lv, (dd4500*), 0, "ee44500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44500.e");
+ test_class_info(&lv, &cd_ee44500);
+ dp->~ee44500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44500(Test_ee44500, "ee44500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44500C1Ev();
+extern void _ZN7ee44500D1Ev();
+Name_Map name_map_ee44500[] = {
+ NSPAIR(_ZN7ee44500C1Ev),
+ NSPAIR(_ZN7ee44500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd4500;
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+static Base_Class bases_ee44500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44500[];
+extern void _ZN7ee445003barEv();
+static VTBL_ENTRY vtc_ee44500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44500[0]),
+ (VTBL_ENTRY)&_ZN7ee445003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee44500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4500__7ee44500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd4500__7ee44500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee44500[] = {
+ {&(_ZTV7ee44500[3]), 3,4},
+ {&(_tg__ZTV6dd4500__7ee44500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd4500__7ee44500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44500[];
+extern VTBL_ENTRY _ZTV7ee44500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44500[];
+Class_Descriptor cd_ee44500 = { "ee44500", // class name
+ bases_ee44500, 4,
+ &(vtc_ee44500[0]), // expected_vtbl_contents
+ &(vtt_ee44500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44500),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44500),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 ee54500 : virtual dd4500 {
+ int e;
+ virtual void bar(); // _ZN7ee545003barEv
+ ~ee54500(); // tgen
+ ee54500(); // tgen
+};
+//SIG(1 ee54500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54500 ::bar(){vfunc_called(this, "_ZN7ee545003barEv");}
+ee54500 ::~ee54500(){ note_dtor("ee54500", this);} // tgen
+ee54500 ::ee54500(){ note_ctor("ee54500", this);} // tgen
+
+static void Test_ee54500()
+{
+ extern Class_Descriptor cd_ee54500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54500, buf);
+ ee54500 *dp, &lv = *(dp=new (buf) ee54500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee54500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd4500*), ABISELECT(32,20), "ee54500");
+ check_base_class_offset(lv, (cc500*)(dd4500*), ABISELECT(16,8), "ee54500");
+ check_base_class_offset(lv, (dd4500*), ABISELECT(16,8), "ee54500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54500.e");
+ test_class_info(&lv, &cd_ee54500);
+ dp->~ee54500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54500(Test_ee54500, "ee54500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54500C1Ev();
+extern void _ZN7ee54500D1Ev();
+Name_Map name_map_ee54500[] = {
+ NSPAIR(_ZN7ee54500C1Ev),
+ NSPAIR(_ZN7ee54500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd4500;
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+static Base_Class bases_ee54500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4500, 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 _ZTI7ee54500[];
+extern void _ZN7ee545003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545003barEv,_ZTv0_n16_N7ee545003barEv)();
+extern void ABISELECT(_ZThn16_N7ee545003barEv,_ZThn8_N7ee545003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54500[0]),
+ (VTBL_ENTRY)&_ZN7ee545003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545003barEv,_ZTv0_n16_N7ee545003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4500__7ee54500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd4500__7ee54500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee54500[] = {
+ {&(_ZTV7ee54500[4]), 4,10},
+ {&(_ZTV7ee54500[9]), 9,10},
+ {&(_tg__ZTV6dd4500__7ee54500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd4500__7ee54500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54500[];
+extern VTBL_ENTRY _ZTV7ee54500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54500[];
+static VTBL_ENTRY alt_thunk_names154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545003barEv,_ZTv0_n16_N7ee545003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545003barEv,_ZThn8_N7ee545003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54500 = { "ee54500", // class name
+ bases_ee54500, 4,
+ &(vtc_ee54500[0]), // expected_vtbl_contents
+ &(vtt_ee54500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names154,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64500 : dd4500 {
+ int e;
+ virtual void foo(); // _ZN7ee645003fooEv
+ virtual void bar(); // _ZN7ee645003barEv
+ ~ee64500(); // tgen
+ ee64500(); // tgen
+};
+//SIG(1 ee64500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64500 ::foo(){vfunc_called(this, "_ZN7ee645003fooEv");}
+void ee64500 ::bar(){vfunc_called(this, "_ZN7ee645003barEv");}
+ee64500 ::~ee64500(){ note_dtor("ee64500", this);} // tgen
+ee64500 ::ee64500(){ note_ctor("ee64500", this);} // tgen
+
+static void Test_ee64500()
+{
+ extern Class_Descriptor cd_ee64500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64500, buf);
+ ee64500 *dp, &lv = *(dp=new (buf) ee64500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee64500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd4500*), ABISELECT(20,16), "ee64500");
+ check_base_class_offset(lv, (cc500*)(dd4500*), 0, "ee64500");
+ check_base_class_offset(lv, (dd4500*), 0, "ee64500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64500.e");
+ test_class_info(&lv, &cd_ee64500);
+ dp->~ee64500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64500(Test_ee64500, "ee64500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64500C1Ev();
+extern void _ZN7ee64500D1Ev();
+Name_Map name_map_ee64500[] = {
+ NSPAIR(_ZN7ee64500C1Ev),
+ NSPAIR(_ZN7ee64500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd4500;
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+static Base_Class bases_ee64500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64500[];
+extern void _ZN7ee645003barEv();
+extern void _ZN7ee645003fooEv();
+static VTBL_ENTRY vtc_ee64500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64500[0]),
+ (VTBL_ENTRY)&_ZN7ee645003barEv,
+ (VTBL_ENTRY)&_ZN7ee645003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee64500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4500__7ee64500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd4500__7ee64500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee64500[] = {
+ {&(_ZTV7ee64500[3]), 3,5},
+ {&(_tg__ZTV6dd4500__7ee64500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd4500__7ee64500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64500[];
+extern VTBL_ENTRY _ZTV7ee64500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64500[];
+Class_Descriptor cd_ee64500 = { "ee64500", // class name
+ bases_ee64500, 4,
+ &(vtc_ee64500[0]), // expected_vtbl_contents
+ &(vtt_ee64500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64500),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 ee74500 : virtual dd4500 {
+ int e;
+ virtual void foo(); // _ZN7ee745003fooEv
+ virtual void bar(); // _ZN7ee745003barEv
+ ~ee74500(); // tgen
+ ee74500(); // tgen
+};
+//SIG(1 ee74500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74500 ::foo(){vfunc_called(this, "_ZN7ee745003fooEv");}
+void ee74500 ::bar(){vfunc_called(this, "_ZN7ee745003barEv");}
+ee74500 ::~ee74500(){ note_dtor("ee74500", this);} // tgen
+ee74500 ::ee74500(){ note_ctor("ee74500", this);} // tgen
+
+static void Test_ee74500()
+{
+ extern Class_Descriptor cd_ee74500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74500, buf);
+ ee74500 *dp, &lv = *(dp=new (buf) ee74500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee74500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd4500*), ABISELECT(32,20), "ee74500");
+ check_base_class_offset(lv, (cc500*)(dd4500*), ABISELECT(16,8), "ee74500");
+ check_base_class_offset(lv, (dd4500*), ABISELECT(16,8), "ee74500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74500.e");
+ test_class_info(&lv, &cd_ee74500);
+ dp->~ee74500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74500(Test_ee74500, "ee74500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74500C1Ev();
+extern void _ZN7ee74500D1Ev();
+Name_Map name_map_ee74500[] = {
+ NSPAIR(_ZN7ee74500C1Ev),
+ NSPAIR(_ZN7ee74500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd4500;
+extern VTBL_ENTRY _ZTI6dd4500[];
+extern VTBL_ENTRY _ZTV6dd4500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4500[];
+static Base_Class bases_ee74500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4500, 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 _ZTI7ee74500[];
+extern void _ZN7ee745003fooEv();
+extern void _ZN7ee745003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745003barEv,_ZTv0_n16_N7ee745003barEv)();
+extern void ABISELECT(_ZThn16_N7ee745003barEv,_ZThn8_N7ee745003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74500[0]),
+ (VTBL_ENTRY)&_ZN7ee745003fooEv,
+ (VTBL_ENTRY)&_ZN7ee745003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745003barEv,_ZTv0_n16_N7ee745003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74500[];
+extern void _ZN6dd45003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4500__7ee74500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4500[0]),
+ (VTBL_ENTRY)&_ZN6dd45003barEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd4500__7ee74500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee74500[] = {
+ {&(_ZTV7ee74500[4]), 4,11},
+ {&(_ZTV7ee74500[10]), 10,11},
+ {&(_tg__ZTV6dd4500__7ee74500[3]), 3,4},
+ {&(_tg__ZTV5cc5006dd4500__7ee74500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74500[];
+extern VTBL_ENTRY _ZTV7ee74500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74500[];
+static VTBL_ENTRY alt_thunk_names155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745003barEv,_ZTv0_n16_N7ee745003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745003barEv,_ZThn8_N7ee745003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74500 = { "ee74500", // class name
+ bases_ee74500, 4,
+ &(vtc_ee74500[0]), // expected_vtbl_contents
+ &(vtt_ee74500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names155,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5500 : virtual cc500 {
+ int d;
+ virtual void bar(); // _ZN6dd55003barEv
+ ~dd5500(); // tgen
+ dd5500(); // tgen
+};
+//SIG(-1 dd5500) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd5500 ::bar(){vfunc_called(this, "_ZN6dd55003barEv");}
+dd5500 ::~dd5500(){ note_dtor("dd5500", this);} // tgen
+dd5500 ::dd5500(){ note_ctor("dd5500", this);} // tgen
+
+static void Test_dd5500()
+{
+ extern Class_Descriptor cd_dd5500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5500, buf);
+ dd5500 *dp, &lv = *(dp=new (buf) dd5500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd5500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,16), "dd5500");
+ check_base_class_offset(lv, (cc500*), ABISELECT(16,8), "dd5500");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5500.d");
+ test_class_info(&lv, &cd_dd5500);
+ dp->~dd5500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5500(Test_dd5500, "dd5500", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5500C1Ev();
+extern void _ZN6dd5500D1Ev();
+Name_Map name_map_dd5500[] = {
+ NSPAIR(_ZN6dd5500C1Ev),
+ NSPAIR(_ZN6dd5500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+static Base_Class bases_dd5500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern void _ZN6dd55003barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_dd5500[] = {
+ {&(_ZTV6dd5500[4]), 4,10},
+ {&(_ZTV6dd5500[9]), 9,10},
+ {&(_tg__ZTV5cc500__6dd5500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static VTBL_ENTRY alt_thunk_names156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5500 = { "dd5500", // class name
+ bases_dd5500, 3,
+ &(vtc_dd5500[0]), // expected_vtbl_contents
+ &(vtt_dd5500[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5500),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names156,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05500 : dd5500 {
+ int e;
+ ~ee05500(); // tgen
+ ee05500(); // tgen
+};
+//SIG(1 ee05500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05500 ::~ee05500(){ note_dtor("ee05500", this);} // tgen
+ee05500 ::ee05500(){ note_ctor("ee05500", this);} // tgen
+
+static void Test_ee05500()
+{
+ extern Class_Descriptor cd_ee05500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05500, buf);
+ ee05500 *dp, &lv = *(dp=new (buf) ee05500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee05500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee05500");
+ check_base_class_offset(lv, (cc500*)(dd5500*), ABISELECT(16,12), "ee05500");
+ check_base_class_offset(lv, (dd5500*), 0, "ee05500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05500.e");
+ test_class_info(&lv, &cd_ee05500);
+ dp->~ee05500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05500(Test_ee05500, "ee05500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05500C1Ev();
+extern void _ZN7ee05500D1Ev();
+Name_Map name_map_ee05500[] = {
+ NSPAIR(_ZN7ee05500C1Ev),
+ NSPAIR(_ZN7ee05500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd5500;
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static Base_Class bases_ee05500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05500[];
+extern void _ZN6dd55003barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05500[];
+extern void _ZN6dd55003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5500__7ee05500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500__7ee05500[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee05500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee05500[] = {
+ {&(_ZTV7ee05500[4]), 4,10},
+ {&(_tg__ZTV6dd5500__7ee05500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd5500__7ee05500[4]), 4,5},
+ {&(_ZTV7ee05500[9]), 9,10},
+ {&(_tg__ZTV5cc500__7ee05500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05500[];
+extern VTBL_ENTRY _ZTV7ee05500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05500[];
+static VTBL_ENTRY alt_thunk_names157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05500 = { "ee05500", // class name
+ bases_ee05500, 4,
+ &(vtc_ee05500[0]), // expected_vtbl_contents
+ &(vtt_ee05500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names157,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15500 : virtual dd5500 {
+ int e;
+ ~ee15500(); // tgen
+ ee15500(); // tgen
+};
+//SIG(1 ee15500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15500 ::~ee15500(){ note_dtor("ee15500", this);} // tgen
+ee15500 ::ee15500(){ note_ctor("ee15500", this);} // tgen
+
+static void Test_ee15500()
+{
+ extern Class_Descriptor cd_ee15500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15500, buf);
+ ee15500 *dp, &lv = *(dp=new (buf) ee15500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee15500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee15500");
+ check_base_class_offset(lv, (cc500*)(dd5500*), ABISELECT(32,16), "ee15500");
+ check_base_class_offset(lv, (dd5500*), ABISELECT(16,8), "ee15500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15500.e");
+ test_class_info(&lv, &cd_ee15500);
+ dp->~ee15500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15500(Test_ee15500, "ee15500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15500C1Ev();
+extern void _ZN7ee15500D1Ev();
+Name_Map name_map_ee15500[] = {
+ NSPAIR(_ZN7ee15500C1Ev),
+ NSPAIR(_ZN7ee15500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd5500;
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static Base_Class bases_ee15500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15500[];
+extern void _ZN6dd55003barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15500[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15500[];
+extern void _ZN6dd55003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5500__7ee15500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500__7ee15500[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee15500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee15500[] = {
+ {&(_ZTV7ee15500[5]), 5,16},
+ {&(_ZTV7ee15500[10]), 10,16},
+ {&(_ZTV7ee15500[15]), 15,16},
+ {&(_tg__ZTV6dd5500__7ee15500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd5500__7ee15500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee15500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15500[];
+extern VTBL_ENTRY _ZTV7ee15500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15500[];
+static VTBL_ENTRY alt_thunk_names158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15500 = { "ee15500", // class name
+ bases_ee15500, 4,
+ &(vtc_ee15500[0]), // expected_vtbl_contents
+ &(vtt_ee15500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15500),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names158,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25500 : dd5500 {
+ int e;
+ virtual void foo(); // _ZN7ee255003fooEv
+ ~ee25500(); // tgen
+ ee25500(); // tgen
+};
+//SIG(1 ee25500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25500 ::foo(){vfunc_called(this, "_ZN7ee255003fooEv");}
+ee25500 ::~ee25500(){ note_dtor("ee25500", this);} // tgen
+ee25500 ::ee25500(){ note_ctor("ee25500", this);} // tgen
+
+static void Test_ee25500()
+{
+ extern Class_Descriptor cd_ee25500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25500, buf);
+ ee25500 *dp, &lv = *(dp=new (buf) ee25500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee25500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee25500");
+ check_base_class_offset(lv, (cc500*)(dd5500*), ABISELECT(16,12), "ee25500");
+ check_base_class_offset(lv, (dd5500*), 0, "ee25500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25500.e");
+ test_class_info(&lv, &cd_ee25500);
+ dp->~ee25500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25500(Test_ee25500, "ee25500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25500C1Ev();
+extern void _ZN7ee25500D1Ev();
+Name_Map name_map_ee25500[] = {
+ NSPAIR(_ZN7ee25500C1Ev),
+ NSPAIR(_ZN7ee25500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd5500;
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static Base_Class bases_ee25500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25500[];
+extern void _ZN6dd55003barEv();
+extern void _ZN7ee255003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+ (VTBL_ENTRY)&_ZN7ee255003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25500[];
+extern void _ZN6dd55003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5500__7ee25500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500__7ee25500[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee25500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee25500[] = {
+ {&(_ZTV7ee25500[4]), 4,11},
+ {&(_tg__ZTV6dd5500__7ee25500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd5500__7ee25500[4]), 4,5},
+ {&(_ZTV7ee25500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee25500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25500[];
+extern VTBL_ENTRY _ZTV7ee25500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25500[];
+static VTBL_ENTRY alt_thunk_names159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25500 = { "ee25500", // class name
+ bases_ee25500, 4,
+ &(vtc_ee25500[0]), // expected_vtbl_contents
+ &(vtt_ee25500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names159,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35500 : virtual dd5500 {
+ int e;
+ virtual void foo(); // _ZN7ee355003fooEv
+ ~ee35500(); // tgen
+ ee35500(); // tgen
+};
+//SIG(1 ee35500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35500 ::foo(){vfunc_called(this, "_ZN7ee355003fooEv");}
+ee35500 ::~ee35500(){ note_dtor("ee35500", this);} // tgen
+ee35500 ::ee35500(){ note_ctor("ee35500", this);} // tgen
+
+static void Test_ee35500()
+{
+ extern Class_Descriptor cd_ee35500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35500, buf);
+ ee35500 *dp, &lv = *(dp=new (buf) ee35500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee35500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee35500");
+ check_base_class_offset(lv, (cc500*)(dd5500*), ABISELECT(32,16), "ee35500");
+ check_base_class_offset(lv, (dd5500*), ABISELECT(16,8), "ee35500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35500.e");
+ test_class_info(&lv, &cd_ee35500);
+ dp->~ee35500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35500(Test_ee35500, "ee35500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35500C1Ev();
+extern void _ZN7ee35500D1Ev();
+Name_Map name_map_ee35500[] = {
+ NSPAIR(_ZN7ee35500C1Ev),
+ NSPAIR(_ZN7ee35500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd5500;
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static Base_Class bases_ee35500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35500[];
+extern void _ZN7ee355003fooEv();
+extern void _ZN6dd55003barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35500[0]),
+ (VTBL_ENTRY)&_ZN7ee355003fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35500[];
+extern void _ZN6dd55003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5500__7ee35500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500__7ee35500[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee35500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee35500[] = {
+ {&(_ZTV7ee35500[5]), 5,17},
+ {&(_ZTV7ee35500[11]), 11,17},
+ {&(_ZTV7ee35500[16]), 16,17},
+ {&(_tg__ZTV6dd5500__7ee35500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd5500__7ee35500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee35500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35500[];
+extern VTBL_ENTRY _ZTV7ee35500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35500[];
+static VTBL_ENTRY alt_thunk_names160[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35500 = { "ee35500", // class name
+ bases_ee35500, 4,
+ &(vtc_ee35500[0]), // expected_vtbl_contents
+ &(vtt_ee35500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35500),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names160,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45500 : dd5500 {
+ int e;
+ virtual void bar(); // _ZN7ee455003barEv
+ ~ee45500(); // tgen
+ ee45500(); // tgen
+};
+//SIG(1 ee45500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45500 ::bar(){vfunc_called(this, "_ZN7ee455003barEv");}
+ee45500 ::~ee45500(){ note_dtor("ee45500", this);} // tgen
+ee45500 ::ee45500(){ note_ctor("ee45500", this);} // tgen
+
+static void Test_ee45500()
+{
+ extern Class_Descriptor cd_ee45500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45500, buf);
+ ee45500 *dp, &lv = *(dp=new (buf) ee45500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee45500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee45500");
+ check_base_class_offset(lv, (cc500*)(dd5500*), ABISELECT(16,12), "ee45500");
+ check_base_class_offset(lv, (dd5500*), 0, "ee45500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45500.e");
+ test_class_info(&lv, &cd_ee45500);
+ dp->~ee45500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45500(Test_ee45500, "ee45500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45500C1Ev();
+extern void _ZN7ee45500D1Ev();
+Name_Map name_map_ee45500[] = {
+ NSPAIR(_ZN7ee45500C1Ev),
+ NSPAIR(_ZN7ee45500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd5500;
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static Base_Class bases_ee45500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45500[];
+extern void _ZN7ee455003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455003barEv,_ZTv0_n16_N7ee455003barEv)();
+extern void ABISELECT(_ZThn16_N7ee455003barEv,_ZThn12_N7ee455003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45500[0]),
+ (VTBL_ENTRY)&_ZN7ee455003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455003barEv,_ZTv0_n16_N7ee455003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45500[];
+extern void _ZN6dd55003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5500__7ee45500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500__7ee45500[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee45500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee45500[] = {
+ {&(_ZTV7ee45500[4]), 4,10},
+ {&(_tg__ZTV6dd5500__7ee45500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd5500__7ee45500[4]), 4,5},
+ {&(_ZTV7ee45500[9]), 9,10},
+ {&(_tg__ZTV5cc500__7ee45500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45500[];
+extern VTBL_ENTRY _ZTV7ee45500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45500[];
+static VTBL_ENTRY alt_thunk_names161[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455003barEv,_ZTv0_n16_N7ee455003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455003barEv,_ZThn12_N7ee455003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45500 = { "ee45500", // class name
+ bases_ee45500, 4,
+ &(vtc_ee45500[0]), // expected_vtbl_contents
+ &(vtt_ee45500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45500),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names161,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55500 : virtual dd5500 {
+ int e;
+ virtual void bar(); // _ZN7ee555003barEv
+ ~ee55500(); // tgen
+ ee55500(); // tgen
+};
+//SIG(1 ee55500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55500 ::bar(){vfunc_called(this, "_ZN7ee555003barEv");}
+ee55500 ::~ee55500(){ note_dtor("ee55500", this);} // tgen
+ee55500 ::ee55500(){ note_ctor("ee55500", this);} // tgen
+
+static void Test_ee55500()
+{
+ extern Class_Descriptor cd_ee55500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55500, buf);
+ ee55500 *dp, &lv = *(dp=new (buf) ee55500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee55500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee55500");
+ check_base_class_offset(lv, (cc500*)(dd5500*), ABISELECT(32,16), "ee55500");
+ check_base_class_offset(lv, (dd5500*), ABISELECT(16,8), "ee55500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55500.e");
+ test_class_info(&lv, &cd_ee55500);
+ dp->~ee55500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55500(Test_ee55500, "ee55500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55500C1Ev();
+extern void _ZN7ee55500D1Ev();
+Name_Map name_map_ee55500[] = {
+ NSPAIR(_ZN7ee55500C1Ev),
+ NSPAIR(_ZN7ee55500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd5500;
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static Base_Class bases_ee55500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55500[];
+extern void _ZN7ee555003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555003barEv,_ZTv0_n20_N7ee555003barEv)();
+extern void ABISELECT(_ZThn16_N7ee555003barEv,_ZThn8_N7ee555003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555003barEv,_ZTv0_n16_N7ee555003barEv)();
+extern void ABISELECT(_ZThn32_N7ee555003barEv,_ZThn16_N7ee555003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55500[0]),
+ (VTBL_ENTRY)&_ZN7ee555003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555003barEv,_ZTv0_n20_N7ee555003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555003barEv,_ZTv0_n16_N7ee555003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55500[];
+extern void _ZN6dd55003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5500__7ee55500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500__7ee55500[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee55500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee55500[] = {
+ {&(_ZTV7ee55500[5]), 5,17},
+ {&(_ZTV7ee55500[11]), 11,17},
+ {&(_ZTV7ee55500[16]), 16,17},
+ {&(_tg__ZTV6dd5500__7ee55500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd5500__7ee55500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee55500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55500[];
+extern VTBL_ENTRY _ZTV7ee55500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55500[];
+static VTBL_ENTRY alt_thunk_names162[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555003barEv,_ZTv0_n16_N7ee555003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555003barEv,_ZThn16_N7ee555003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555003barEv,_ZTv0_n20_N7ee555003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555003barEv,_ZThn8_N7ee555003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55500 = { "ee55500", // class name
+ bases_ee55500, 4,
+ &(vtc_ee55500[0]), // expected_vtbl_contents
+ &(vtt_ee55500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55500),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names162,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65500 : dd5500 {
+ int e;
+ virtual void foo(); // _ZN7ee655003fooEv
+ virtual void bar(); // _ZN7ee655003barEv
+ ~ee65500(); // tgen
+ ee65500(); // tgen
+};
+//SIG(1 ee65500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65500 ::foo(){vfunc_called(this, "_ZN7ee655003fooEv");}
+void ee65500 ::bar(){vfunc_called(this, "_ZN7ee655003barEv");}
+ee65500 ::~ee65500(){ note_dtor("ee65500", this);} // tgen
+ee65500 ::ee65500(){ note_ctor("ee65500", this);} // tgen
+
+static void Test_ee65500()
+{
+ extern Class_Descriptor cd_ee65500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65500, buf);
+ ee65500 *dp, &lv = *(dp=new (buf) ee65500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee65500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee65500");
+ check_base_class_offset(lv, (cc500*)(dd5500*), ABISELECT(16,12), "ee65500");
+ check_base_class_offset(lv, (dd5500*), 0, "ee65500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65500.e");
+ test_class_info(&lv, &cd_ee65500);
+ dp->~ee65500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65500(Test_ee65500, "ee65500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65500C1Ev();
+extern void _ZN7ee65500D1Ev();
+Name_Map name_map_ee65500[] = {
+ NSPAIR(_ZN7ee65500C1Ev),
+ NSPAIR(_ZN7ee65500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd5500;
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static Base_Class bases_ee65500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65500[];
+extern void _ZN7ee655003barEv();
+extern void _ZN7ee655003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655003barEv,_ZTv0_n16_N7ee655003barEv)();
+extern void ABISELECT(_ZThn16_N7ee655003barEv,_ZThn12_N7ee655003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65500[0]),
+ (VTBL_ENTRY)&_ZN7ee655003barEv,
+ (VTBL_ENTRY)&_ZN7ee655003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655003barEv,_ZTv0_n16_N7ee655003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65500[];
+extern void _ZN6dd55003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5500__7ee65500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500__7ee65500[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee65500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee65500[] = {
+ {&(_ZTV7ee65500[4]), 4,11},
+ {&(_tg__ZTV6dd5500__7ee65500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd5500__7ee65500[4]), 4,5},
+ {&(_ZTV7ee65500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee65500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65500[];
+extern VTBL_ENTRY _ZTV7ee65500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65500[];
+static VTBL_ENTRY alt_thunk_names163[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn12_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655003barEv,_ZTv0_n16_N7ee655003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655003barEv,_ZThn12_N7ee655003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65500 = { "ee65500", // class name
+ bases_ee65500, 4,
+ &(vtc_ee65500[0]), // expected_vtbl_contents
+ &(vtt_ee65500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names163,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75500 : virtual dd5500 {
+ int e;
+ virtual void foo(); // _ZN7ee755003fooEv
+ virtual void bar(); // _ZN7ee755003barEv
+ ~ee75500(); // tgen
+ ee75500(); // tgen
+};
+//SIG(1 ee75500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75500 ::foo(){vfunc_called(this, "_ZN7ee755003fooEv");}
+void ee75500 ::bar(){vfunc_called(this, "_ZN7ee755003barEv");}
+ee75500 ::~ee75500(){ note_dtor("ee75500", this);} // tgen
+ee75500 ::ee75500(){ note_ctor("ee75500", this);} // tgen
+
+static void Test_ee75500()
+{
+ extern Class_Descriptor cd_ee75500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75500, buf);
+ ee75500 *dp, &lv = *(dp=new (buf) ee75500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee75500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee75500");
+ check_base_class_offset(lv, (cc500*)(dd5500*), ABISELECT(32,16), "ee75500");
+ check_base_class_offset(lv, (dd5500*), ABISELECT(16,8), "ee75500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75500.e");
+ test_class_info(&lv, &cd_ee75500);
+ dp->~ee75500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75500(Test_ee75500, "ee75500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75500C1Ev();
+extern void _ZN7ee75500D1Ev();
+Name_Map name_map_ee75500[] = {
+ NSPAIR(_ZN7ee75500C1Ev),
+ NSPAIR(_ZN7ee75500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd5500;
+extern VTBL_ENTRY _ZTI6dd5500[];
+extern VTBL_ENTRY _ZTV6dd5500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5500[];
+static Base_Class bases_ee75500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5500, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75500[];
+extern void _ZN7ee755003fooEv();
+extern void _ZN7ee755003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755003barEv,_ZTv0_n20_N7ee755003barEv)();
+extern void ABISELECT(_ZThn16_N7ee755003barEv,_ZThn8_N7ee755003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755003barEv,_ZTv0_n16_N7ee755003barEv)();
+extern void ABISELECT(_ZThn32_N7ee755003barEv,_ZThn16_N7ee755003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75500[0]),
+ (VTBL_ENTRY)&_ZN7ee755003fooEv,
+ (VTBL_ENTRY)&_ZN7ee755003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755003barEv,_ZTv0_n20_N7ee755003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755003barEv,_ZTv0_n16_N7ee755003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75500[];
+extern void _ZN6dd55003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5500__7ee75500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&_ZN6dd55003barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv)();
+extern void ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd5500__7ee75500[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee75500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee75500[] = {
+ {&(_ZTV7ee75500[5]), 5,18},
+ {&(_ZTV7ee75500[12]), 12,18},
+ {&(_ZTV7ee75500[17]), 17,18},
+ {&(_tg__ZTV6dd5500__7ee75500[4]), 4,5},
+ {&(_tg__ZTV5cc500__6dd5500__7ee75500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee75500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75500[];
+extern VTBL_ENTRY _ZTV7ee75500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75500[];
+static VTBL_ENTRY alt_thunk_names164[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55003barEv,_ZTv0_n16_N6dd55003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55003barEv,_ZThn8_N6dd55003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755003barEv,_ZTv0_n16_N7ee755003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755003barEv,_ZThn16_N7ee755003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755003barEv,_ZTv0_n20_N7ee755003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755003barEv,_ZThn8_N7ee755003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75500 = { "ee75500", // class name
+ bases_ee75500, 4,
+ &(vtc_ee75500[0]), // expected_vtbl_contents
+ &(vtt_ee75500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75500),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names164,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6500 : cc500 {
+ int d;
+ virtual void bar(); // _ZN6dd65003barEv
+ virtual void foo(); // _ZN6dd65003fooEv
+ ~dd6500(); // tgen
+ dd6500(); // tgen
+};
+//SIG(-1 dd6500) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6500 ::bar(){vfunc_called(this, "_ZN6dd65003barEv");}
+void dd6500 ::foo(){vfunc_called(this, "_ZN6dd65003fooEv");}
+dd6500 ::~dd6500(){ note_dtor("dd6500", this);} // tgen
+dd6500 ::dd6500(){ note_ctor("dd6500", this);} // tgen
+
+static void Test_dd6500()
+{
+ extern Class_Descriptor cd_dd6500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6500, buf);
+ dd6500 *dp, &lv = *(dp=new (buf) dd6500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd6500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(16,12), "dd6500");
+ check_base_class_offset(lv, (cc500*), 0, "dd6500");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6500.d");
+ test_class_info(&lv, &cd_dd6500);
+ dp->~dd6500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6500(Test_dd6500, "dd6500", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6500C1Ev();
+extern void _ZN6dd6500D1Ev();
+Name_Map name_map_dd6500[] = {
+ NSPAIR(_ZN6dd6500C1Ev),
+ NSPAIR(_ZN6dd6500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+static Base_Class bases_dd6500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY vtc_dd6500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd6500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_dd6500[] = {
+ {&(_ZTV6dd6500[3]), 3,5},
+ {&(_tg__ZTV5cc500__6dd6500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+Class_Descriptor cd_dd6500 = { "dd6500", // class name
+ bases_dd6500, 3,
+ &(vtc_dd6500[0]), // expected_vtbl_contents
+ &(vtt_dd6500[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6500),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 ee06500 : dd6500 {
+ int e;
+ ~ee06500(); // tgen
+ ee06500(); // tgen
+};
+//SIG(1 ee06500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06500 ::~ee06500(){ note_dtor("ee06500", this);} // tgen
+ee06500 ::ee06500(){ note_ctor("ee06500", this);} // tgen
+
+static void Test_ee06500()
+{
+ extern Class_Descriptor cd_ee06500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06500, buf);
+ ee06500 *dp, &lv = *(dp=new (buf) ee06500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee06500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd6500*), ABISELECT(20,16), "ee06500");
+ check_base_class_offset(lv, (cc500*)(dd6500*), 0, "ee06500");
+ check_base_class_offset(lv, (dd6500*), 0, "ee06500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06500.e");
+ test_class_info(&lv, &cd_ee06500);
+ dp->~ee06500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06500(Test_ee06500, "ee06500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06500C1Ev();
+extern void _ZN7ee06500D1Ev();
+Name_Map name_map_ee06500[] = {
+ NSPAIR(_ZN7ee06500C1Ev),
+ NSPAIR(_ZN7ee06500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd6500;
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+static Base_Class bases_ee06500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee06500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY vtc_ee06500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee06500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6500__7ee06500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd6500__7ee06500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee06500[] = {
+ {&(_ZTV7ee06500[3]), 3,5},
+ {&(_tg__ZTV6dd6500__7ee06500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd6500__7ee06500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06500[];
+extern VTBL_ENTRY _ZTV7ee06500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06500[];
+Class_Descriptor cd_ee06500 = { "ee06500", // class name
+ bases_ee06500, 4,
+ &(vtc_ee06500[0]), // expected_vtbl_contents
+ &(vtt_ee06500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06500),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 ee16500 : virtual dd6500 {
+ int e;
+ ~ee16500(); // tgen
+ ee16500(); // tgen
+};
+//SIG(1 ee16500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16500 ::~ee16500(){ note_dtor("ee16500", this);} // tgen
+ee16500 ::ee16500(){ note_ctor("ee16500", this);} // tgen
+
+static void Test_ee16500()
+{
+ extern Class_Descriptor cd_ee16500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16500, buf);
+ ee16500 *dp, &lv = *(dp=new (buf) ee16500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee16500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd6500*), ABISELECT(32,20), "ee16500");
+ check_base_class_offset(lv, (cc500*)(dd6500*), ABISELECT(16,8), "ee16500");
+ check_base_class_offset(lv, (dd6500*), ABISELECT(16,8), "ee16500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16500.e");
+ test_class_info(&lv, &cd_ee16500);
+ dp->~ee16500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16500(Test_ee16500, "ee16500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16500C1Ev();
+extern void _ZN7ee16500D1Ev();
+Name_Map name_map_ee16500[] = {
+ NSPAIR(_ZN7ee16500C1Ev),
+ NSPAIR(_ZN7ee16500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd6500;
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+static Base_Class bases_ee16500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6500, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY vtc_ee16500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16500[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6500__7ee16500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd6500__7ee16500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee16500[] = {
+ {&(_ZTV7ee16500[4]), 4,11},
+ {&(_ZTV7ee16500[9]), 9,11},
+ {&(_tg__ZTV6dd6500__7ee16500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd6500__7ee16500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16500[];
+extern VTBL_ENTRY _ZTV7ee16500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16500[];
+Class_Descriptor cd_ee16500 = { "ee16500", // class name
+ bases_ee16500, 4,
+ &(vtc_ee16500[0]), // expected_vtbl_contents
+ &(vtt_ee16500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16500),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 ee26500 : dd6500 {
+ int e;
+ virtual void foo(); // _ZN7ee265003fooEv
+ ~ee26500(); // tgen
+ ee26500(); // tgen
+};
+//SIG(1 ee26500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26500 ::foo(){vfunc_called(this, "_ZN7ee265003fooEv");}
+ee26500 ::~ee26500(){ note_dtor("ee26500", this);} // tgen
+ee26500 ::ee26500(){ note_ctor("ee26500", this);} // tgen
+
+static void Test_ee26500()
+{
+ extern Class_Descriptor cd_ee26500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26500, buf);
+ ee26500 *dp, &lv = *(dp=new (buf) ee26500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee26500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd6500*), ABISELECT(20,16), "ee26500");
+ check_base_class_offset(lv, (cc500*)(dd6500*), 0, "ee26500");
+ check_base_class_offset(lv, (dd6500*), 0, "ee26500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26500.e");
+ test_class_info(&lv, &cd_ee26500);
+ dp->~ee26500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26500(Test_ee26500, "ee26500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26500C1Ev();
+extern void _ZN7ee26500D1Ev();
+Name_Map name_map_ee26500[] = {
+ NSPAIR(_ZN7ee26500C1Ev),
+ NSPAIR(_ZN7ee26500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd6500;
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+static Base_Class bases_ee26500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN7ee265003fooEv();
+static VTBL_ENTRY vtc_ee26500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN7ee265003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee26500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6500__7ee26500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd6500__7ee26500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee26500[] = {
+ {&(_ZTV7ee26500[3]), 3,5},
+ {&(_tg__ZTV6dd6500__7ee26500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd6500__7ee26500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26500[];
+extern VTBL_ENTRY _ZTV7ee26500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26500[];
+Class_Descriptor cd_ee26500 = { "ee26500", // class name
+ bases_ee26500, 4,
+ &(vtc_ee26500[0]), // expected_vtbl_contents
+ &(vtt_ee26500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26500),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 ee36500 : virtual dd6500 {
+ int e;
+ virtual void foo(); // _ZN7ee365003fooEv
+ ~ee36500(); // tgen
+ ee36500(); // tgen
+};
+//SIG(1 ee36500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36500 ::foo(){vfunc_called(this, "_ZN7ee365003fooEv");}
+ee36500 ::~ee36500(){ note_dtor("ee36500", this);} // tgen
+ee36500 ::ee36500(){ note_ctor("ee36500", this);} // tgen
+
+static void Test_ee36500()
+{
+ extern Class_Descriptor cd_ee36500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36500, buf);
+ ee36500 *dp, &lv = *(dp=new (buf) ee36500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee36500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd6500*), ABISELECT(32,20), "ee36500");
+ check_base_class_offset(lv, (cc500*)(dd6500*), ABISELECT(16,8), "ee36500");
+ check_base_class_offset(lv, (dd6500*), ABISELECT(16,8), "ee36500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36500.e");
+ test_class_info(&lv, &cd_ee36500);
+ dp->~ee36500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36500(Test_ee36500, "ee36500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36500C1Ev();
+extern void _ZN7ee36500D1Ev();
+Name_Map name_map_ee36500[] = {
+ NSPAIR(_ZN7ee36500C1Ev),
+ NSPAIR(_ZN7ee36500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd6500;
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+static Base_Class bases_ee36500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36500[];
+extern void _ZN7ee365003fooEv();
+extern void _ZN6dd65003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365003fooEv,_ZTv0_n20_N7ee365003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365003fooEv,_ZThn8_N7ee365003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36500[0]),
+ (VTBL_ENTRY)&_ZN7ee365003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365003fooEv,_ZTv0_n20_N7ee365003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6500__7ee36500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd6500__7ee36500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee36500[] = {
+ {&(_ZTV7ee36500[4]), 4,12},
+ {&(_ZTV7ee36500[10]), 10,12},
+ {&(_tg__ZTV6dd6500__7ee36500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd6500__7ee36500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36500[];
+extern VTBL_ENTRY _ZTV7ee36500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36500[];
+static VTBL_ENTRY alt_thunk_names165[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365003fooEv,_ZTv0_n20_N7ee365003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365003fooEv,_ZThn8_N7ee365003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36500 = { "ee36500", // class name
+ bases_ee36500, 4,
+ &(vtc_ee36500[0]), // expected_vtbl_contents
+ &(vtt_ee36500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36500),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names165,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46500 : dd6500 {
+ int e;
+ virtual void bar(); // _ZN7ee465003barEv
+ ~ee46500(); // tgen
+ ee46500(); // tgen
+};
+//SIG(1 ee46500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46500 ::bar(){vfunc_called(this, "_ZN7ee465003barEv");}
+ee46500 ::~ee46500(){ note_dtor("ee46500", this);} // tgen
+ee46500 ::ee46500(){ note_ctor("ee46500", this);} // tgen
+
+static void Test_ee46500()
+{
+ extern Class_Descriptor cd_ee46500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46500, buf);
+ ee46500 *dp, &lv = *(dp=new (buf) ee46500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee46500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd6500*), ABISELECT(20,16), "ee46500");
+ check_base_class_offset(lv, (cc500*)(dd6500*), 0, "ee46500");
+ check_base_class_offset(lv, (dd6500*), 0, "ee46500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46500.e");
+ test_class_info(&lv, &cd_ee46500);
+ dp->~ee46500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46500(Test_ee46500, "ee46500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46500C1Ev();
+extern void _ZN7ee46500D1Ev();
+Name_Map name_map_ee46500[] = {
+ NSPAIR(_ZN7ee46500C1Ev),
+ NSPAIR(_ZN7ee46500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd6500;
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+static Base_Class bases_ee46500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46500[];
+extern void _ZN7ee465003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY vtc_ee46500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46500[0]),
+ (VTBL_ENTRY)&_ZN7ee465003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee46500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6500__7ee46500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd6500__7ee46500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee46500[] = {
+ {&(_ZTV7ee46500[3]), 3,5},
+ {&(_tg__ZTV6dd6500__7ee46500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd6500__7ee46500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46500[];
+extern VTBL_ENTRY _ZTV7ee46500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46500[];
+Class_Descriptor cd_ee46500 = { "ee46500", // class name
+ bases_ee46500, 4,
+ &(vtc_ee46500[0]), // expected_vtbl_contents
+ &(vtt_ee46500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46500),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 ee56500 : virtual dd6500 {
+ int e;
+ virtual void bar(); // _ZN7ee565003barEv
+ ~ee56500(); // tgen
+ ee56500(); // tgen
+};
+//SIG(1 ee56500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56500 ::bar(){vfunc_called(this, "_ZN7ee565003barEv");}
+ee56500 ::~ee56500(){ note_dtor("ee56500", this);} // tgen
+ee56500 ::ee56500(){ note_ctor("ee56500", this);} // tgen
+
+static void Test_ee56500()
+{
+ extern Class_Descriptor cd_ee56500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56500, buf);
+ ee56500 *dp, &lv = *(dp=new (buf) ee56500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee56500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd6500*), ABISELECT(32,20), "ee56500");
+ check_base_class_offset(lv, (cc500*)(dd6500*), ABISELECT(16,8), "ee56500");
+ check_base_class_offset(lv, (dd6500*), ABISELECT(16,8), "ee56500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56500.e");
+ test_class_info(&lv, &cd_ee56500);
+ dp->~ee56500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56500(Test_ee56500, "ee56500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56500C1Ev();
+extern void _ZN7ee56500D1Ev();
+Name_Map name_map_ee56500[] = {
+ NSPAIR(_ZN7ee56500C1Ev),
+ NSPAIR(_ZN7ee56500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd6500;
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+static Base_Class bases_ee56500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56500[];
+extern void _ZN7ee565003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565003barEv,_ZTv0_n16_N7ee565003barEv)();
+extern void ABISELECT(_ZThn16_N7ee565003barEv,_ZThn8_N7ee565003barEv)() __attribute__((weak));
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY vtc_ee56500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56500[0]),
+ (VTBL_ENTRY)&_ZN7ee565003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565003barEv,_ZTv0_n16_N7ee565003barEv),
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6500__7ee56500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd6500__7ee56500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee56500[] = {
+ {&(_ZTV7ee56500[4]), 4,12},
+ {&(_ZTV7ee56500[10]), 10,12},
+ {&(_tg__ZTV6dd6500__7ee56500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd6500__7ee56500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56500[];
+extern VTBL_ENTRY _ZTV7ee56500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56500[];
+static VTBL_ENTRY alt_thunk_names166[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565003barEv,_ZTv0_n16_N7ee565003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565003barEv,_ZThn8_N7ee565003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56500 = { "ee56500", // class name
+ bases_ee56500, 4,
+ &(vtc_ee56500[0]), // expected_vtbl_contents
+ &(vtt_ee56500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56500),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names166,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66500 : dd6500 {
+ int e;
+ virtual void foo(); // _ZN7ee665003fooEv
+ virtual void bar(); // _ZN7ee665003barEv
+ ~ee66500(); // tgen
+ ee66500(); // tgen
+};
+//SIG(1 ee66500) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66500 ::foo(){vfunc_called(this, "_ZN7ee665003fooEv");}
+void ee66500 ::bar(){vfunc_called(this, "_ZN7ee665003barEv");}
+ee66500 ::~ee66500(){ note_dtor("ee66500", this);} // tgen
+ee66500 ::ee66500(){ note_ctor("ee66500", this);} // tgen
+
+static void Test_ee66500()
+{
+ extern Class_Descriptor cd_ee66500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66500, buf);
+ ee66500 *dp, &lv = *(dp=new (buf) ee66500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee66500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd6500*), ABISELECT(20,16), "ee66500");
+ check_base_class_offset(lv, (cc500*)(dd6500*), 0, "ee66500");
+ check_base_class_offset(lv, (dd6500*), 0, "ee66500");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66500.e");
+ test_class_info(&lv, &cd_ee66500);
+ dp->~ee66500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66500(Test_ee66500, "ee66500", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66500C1Ev();
+extern void _ZN7ee66500D1Ev();
+Name_Map name_map_ee66500[] = {
+ NSPAIR(_ZN7ee66500C1Ev),
+ NSPAIR(_ZN7ee66500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd6500;
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+static Base_Class bases_ee66500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66500[];
+extern void _ZN7ee665003barEv();
+extern void _ZN7ee665003fooEv();
+static VTBL_ENTRY vtc_ee66500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66500[0]),
+ (VTBL_ENTRY)&_ZN7ee665003barEv,
+ (VTBL_ENTRY)&_ZN7ee665003fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee66500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6500__7ee66500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd6500__7ee66500[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee66500[] = {
+ {&(_ZTV7ee66500[3]), 3,5},
+ {&(_tg__ZTV6dd6500__7ee66500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd6500__7ee66500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66500[];
+extern VTBL_ENTRY _ZTV7ee66500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66500[];
+Class_Descriptor cd_ee66500 = { "ee66500", // class name
+ bases_ee66500, 4,
+ &(vtc_ee66500[0]), // expected_vtbl_contents
+ &(vtt_ee66500[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66500),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66500),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 ee76500 : virtual dd6500 {
+ int e;
+ virtual void foo(); // _ZN7ee765003fooEv
+ virtual void bar(); // _ZN7ee765003barEv
+ ~ee76500(); // tgen
+ ee76500(); // tgen
+};
+//SIG(1 ee76500) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76500 ::foo(){vfunc_called(this, "_ZN7ee765003fooEv");}
+void ee76500 ::bar(){vfunc_called(this, "_ZN7ee765003barEv");}
+ee76500 ::~ee76500(){ note_dtor("ee76500", this);} // tgen
+ee76500 ::ee76500(){ note_ctor("ee76500", this);} // tgen
+
+static void Test_ee76500()
+{
+ extern Class_Descriptor cd_ee76500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76500, buf);
+ ee76500 *dp, &lv = *(dp=new (buf) ee76500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee76500");
+ check_base_class_offset(lv, (bb00*)(cc500*)(dd6500*), ABISELECT(32,20), "ee76500");
+ check_base_class_offset(lv, (cc500*)(dd6500*), ABISELECT(16,8), "ee76500");
+ check_base_class_offset(lv, (dd6500*), ABISELECT(16,8), "ee76500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76500.e");
+ test_class_info(&lv, &cd_ee76500);
+ dp->~ee76500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76500(Test_ee76500, "ee76500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76500C1Ev();
+extern void _ZN7ee76500D1Ev();
+Name_Map name_map_ee76500[] = {
+ NSPAIR(_ZN7ee76500C1Ev),
+ NSPAIR(_ZN7ee76500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd6500;
+extern VTBL_ENTRY _ZTI6dd6500[];
+extern VTBL_ENTRY _ZTV6dd6500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6500[];
+static Base_Class bases_ee76500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76500[];
+extern void _ZN7ee765003fooEv();
+extern void _ZN7ee765003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765003barEv,_ZTv0_n16_N7ee765003barEv)();
+extern void ABISELECT(_ZThn16_N7ee765003barEv,_ZThn8_N7ee765003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765003fooEv,_ZTv0_n20_N7ee765003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765003fooEv,_ZThn8_N7ee765003fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76500[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76500[0]),
+ (VTBL_ENTRY)&_ZN7ee765003fooEv,
+ (VTBL_ENTRY)&_ZN7ee765003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765003barEv,_ZTv0_n16_N7ee765003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765003fooEv,_ZTv0_n20_N7ee765003fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76500[];
+extern void _ZN6dd65003barEv();
+extern void _ZN6dd65003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6500__7ee76500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6500[0]),
+ (VTBL_ENTRY)&_ZN6dd65003barEv,
+ (VTBL_ENTRY)&_ZN6dd65003fooEv,
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc5006dd6500__7ee76500[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee76500[] = {
+ {&(_ZTV7ee76500[4]), 4,13},
+ {&(_ZTV7ee76500[11]), 11,13},
+ {&(_tg__ZTV6dd6500__7ee76500[3]), 3,5},
+ {&(_tg__ZTV5cc5006dd6500__7ee76500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76500[];
+extern VTBL_ENTRY _ZTV7ee76500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76500[];
+static VTBL_ENTRY alt_thunk_names167[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765003fooEv,_ZTv0_n20_N7ee765003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765003fooEv,_ZThn8_N7ee765003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765003barEv,_ZTv0_n16_N7ee765003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765003barEv,_ZThn8_N7ee765003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76500 = { "ee76500", // class name
+ bases_ee76500, 4,
+ &(vtc_ee76500[0]), // expected_vtbl_contents
+ &(vtt_ee76500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76500),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76500),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names167,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7500 : virtual cc500 {
+ int d;
+ virtual void bar(); // _ZN6dd75003barEv
+ virtual void foo(); // _ZN6dd75003fooEv
+ ~dd7500(); // tgen
+ dd7500(); // tgen
+};
+//SIG(-1 dd7500) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7500 ::bar(){vfunc_called(this, "_ZN6dd75003barEv");}
+void dd7500 ::foo(){vfunc_called(this, "_ZN6dd75003fooEv");}
+dd7500 ::~dd7500(){ note_dtor("dd7500", this);} // tgen
+dd7500 ::dd7500(){ note_ctor("dd7500", this);} // tgen
+
+static void Test_dd7500()
+{
+ extern Class_Descriptor cd_dd7500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7500, buf);
+ dd7500 *dp, &lv = *(dp=new (buf) dd7500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd7500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,16), "dd7500");
+ check_base_class_offset(lv, (cc500*), ABISELECT(16,8), "dd7500");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7500.d");
+ test_class_info(&lv, &cd_dd7500);
+ dp->~dd7500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7500(Test_dd7500, "dd7500", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7500C1Ev();
+extern void _ZN6dd7500D1Ev();
+Name_Map name_map_dd7500[] = {
+ NSPAIR(_ZN6dd7500C1Ev),
+ NSPAIR(_ZN6dd7500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+static Base_Class bases_dd7500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_dd7500[] = {
+ {&(_ZTV6dd7500[4]), 4,11},
+ {&(_ZTV6dd7500[10]), 10,11},
+ {&(_tg__ZTV5cc500__6dd7500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static VTBL_ENTRY alt_thunk_names168[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7500 = { "dd7500", // class name
+ bases_dd7500, 3,
+ &(vtc_dd7500[0]), // expected_vtbl_contents
+ &(vtt_dd7500[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7500),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names168,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07500 : dd7500 {
+ int e;
+ ~ee07500(); // tgen
+ ee07500(); // tgen
+};
+//SIG(1 ee07500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07500 ::~ee07500(){ note_dtor("ee07500", this);} // tgen
+ee07500 ::ee07500(){ note_ctor("ee07500", this);} // tgen
+
+static void Test_ee07500()
+{
+ extern Class_Descriptor cd_ee07500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07500, buf);
+ ee07500 *dp, &lv = *(dp=new (buf) ee07500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee07500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee07500");
+ check_base_class_offset(lv, (cc500*)(dd7500*), ABISELECT(16,12), "ee07500");
+ check_base_class_offset(lv, (dd7500*), 0, "ee07500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07500.e");
+ test_class_info(&lv, &cd_ee07500);
+ dp->~ee07500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07500(Test_ee07500, "ee07500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07500C1Ev();
+extern void _ZN7ee07500D1Ev();
+Name_Map name_map_ee07500[] = {
+ NSPAIR(_ZN7ee07500C1Ev),
+ NSPAIR(_ZN7ee07500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd7500;
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static Base_Class bases_ee07500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7500__7ee07500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500__7ee07500[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee07500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee07500[] = {
+ {&(_ZTV7ee07500[4]), 4,11},
+ {&(_tg__ZTV6dd7500__7ee07500[4]), 4,6},
+ {&(_tg__ZTV5cc500__6dd7500__7ee07500[4]), 4,5},
+ {&(_ZTV7ee07500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee07500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07500[];
+extern VTBL_ENTRY _ZTV7ee07500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07500[];
+static VTBL_ENTRY alt_thunk_names169[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07500 = { "ee07500", // class name
+ bases_ee07500, 4,
+ &(vtc_ee07500[0]), // expected_vtbl_contents
+ &(vtt_ee07500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names169,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17500 : virtual dd7500 {
+ int e;
+ ~ee17500(); // tgen
+ ee17500(); // tgen
+};
+//SIG(1 ee17500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17500 ::~ee17500(){ note_dtor("ee17500", this);} // tgen
+ee17500 ::ee17500(){ note_ctor("ee17500", this);} // tgen
+
+static void Test_ee17500()
+{
+ extern Class_Descriptor cd_ee17500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17500, buf);
+ ee17500 *dp, &lv = *(dp=new (buf) ee17500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee17500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee17500");
+ check_base_class_offset(lv, (cc500*)(dd7500*), ABISELECT(32,16), "ee17500");
+ check_base_class_offset(lv, (dd7500*), ABISELECT(16,8), "ee17500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17500.e");
+ test_class_info(&lv, &cd_ee17500);
+ dp->~ee17500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17500(Test_ee17500, "ee17500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17500C1Ev();
+extern void _ZN7ee17500D1Ev();
+Name_Map name_map_ee17500[] = {
+ NSPAIR(_ZN7ee17500C1Ev),
+ NSPAIR(_ZN7ee17500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd7500;
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static Base_Class bases_ee17500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7500, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17500[0]),
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7500__7ee17500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500__7ee17500[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee17500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee17500[] = {
+ {&(_ZTV7ee17500[5]), 5,18},
+ {&(_ZTV7ee17500[11]), 11,18},
+ {&(_ZTV7ee17500[17]), 17,18},
+ {&(_tg__ZTV6dd7500__7ee17500[4]), 4,6},
+ {&(_tg__ZTV5cc500__6dd7500__7ee17500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee17500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17500[];
+extern VTBL_ENTRY _ZTV7ee17500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17500[];
+static VTBL_ENTRY alt_thunk_names170[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17500 = { "ee17500", // class name
+ bases_ee17500, 4,
+ &(vtc_ee17500[0]), // expected_vtbl_contents
+ &(vtt_ee17500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17500),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names170,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27500 : dd7500 {
+ int e;
+ virtual void foo(); // _ZN7ee275003fooEv
+ ~ee27500(); // tgen
+ ee27500(); // tgen
+};
+//SIG(1 ee27500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27500 ::foo(){vfunc_called(this, "_ZN7ee275003fooEv");}
+ee27500 ::~ee27500(){ note_dtor("ee27500", this);} // tgen
+ee27500 ::ee27500(){ note_ctor("ee27500", this);} // tgen
+
+static void Test_ee27500()
+{
+ extern Class_Descriptor cd_ee27500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27500, buf);
+ ee27500 *dp, &lv = *(dp=new (buf) ee27500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee27500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee27500");
+ check_base_class_offset(lv, (cc500*)(dd7500*), ABISELECT(16,12), "ee27500");
+ check_base_class_offset(lv, (dd7500*), 0, "ee27500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27500.e");
+ test_class_info(&lv, &cd_ee27500);
+ dp->~ee27500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27500(Test_ee27500, "ee27500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27500C1Ev();
+extern void _ZN7ee27500D1Ev();
+Name_Map name_map_ee27500[] = {
+ NSPAIR(_ZN7ee27500C1Ev),
+ NSPAIR(_ZN7ee27500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd7500;
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static Base_Class bases_ee27500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN7ee275003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN7ee275003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7500__7ee27500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500__7ee27500[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee27500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee27500[] = {
+ {&(_ZTV7ee27500[4]), 4,11},
+ {&(_tg__ZTV6dd7500__7ee27500[4]), 4,6},
+ {&(_tg__ZTV5cc500__6dd7500__7ee27500[4]), 4,5},
+ {&(_ZTV7ee27500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee27500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27500[];
+extern VTBL_ENTRY _ZTV7ee27500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27500[];
+static VTBL_ENTRY alt_thunk_names171[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27500 = { "ee27500", // class name
+ bases_ee27500, 4,
+ &(vtc_ee27500[0]), // expected_vtbl_contents
+ &(vtt_ee27500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names171,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37500 : virtual dd7500 {
+ int e;
+ virtual void foo(); // _ZN7ee375003fooEv
+ ~ee37500(); // tgen
+ ee37500(); // tgen
+};
+//SIG(1 ee37500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37500 ::foo(){vfunc_called(this, "_ZN7ee375003fooEv");}
+ee37500 ::~ee37500(){ note_dtor("ee37500", this);} // tgen
+ee37500 ::ee37500(){ note_ctor("ee37500", this);} // tgen
+
+static void Test_ee37500()
+{
+ extern Class_Descriptor cd_ee37500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37500, buf);
+ ee37500 *dp, &lv = *(dp=new (buf) ee37500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee37500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee37500");
+ check_base_class_offset(lv, (cc500*)(dd7500*), ABISELECT(32,16), "ee37500");
+ check_base_class_offset(lv, (dd7500*), ABISELECT(16,8), "ee37500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37500.e");
+ test_class_info(&lv, &cd_ee37500);
+ dp->~ee37500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37500(Test_ee37500, "ee37500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37500C1Ev();
+extern void _ZN7ee37500D1Ev();
+Name_Map name_map_ee37500[] = {
+ NSPAIR(_ZN7ee37500C1Ev),
+ NSPAIR(_ZN7ee37500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd7500;
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static Base_Class bases_ee37500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37500[];
+extern void _ZN7ee375003fooEv();
+extern void _ZN6dd75003barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375003fooEv,_ZTv0_n24_N7ee375003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375003fooEv,_ZThn8_N7ee375003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37500[0]),
+ (VTBL_ENTRY)&_ZN7ee375003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375003fooEv,_ZTv0_n24_N7ee375003fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7500__7ee37500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500__7ee37500[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee37500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee37500[] = {
+ {&(_ZTV7ee37500[5]), 5,19},
+ {&(_ZTV7ee37500[12]), 12,19},
+ {&(_ZTV7ee37500[18]), 18,19},
+ {&(_tg__ZTV6dd7500__7ee37500[4]), 4,6},
+ {&(_tg__ZTV5cc500__6dd7500__7ee37500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee37500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37500[];
+extern VTBL_ENTRY _ZTV7ee37500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37500[];
+static VTBL_ENTRY alt_thunk_names172[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375003fooEv,_ZTv0_n24_N7ee375003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375003fooEv,_ZThn8_N7ee375003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37500 = { "ee37500", // class name
+ bases_ee37500, 4,
+ &(vtc_ee37500[0]), // expected_vtbl_contents
+ &(vtt_ee37500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37500),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names172,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47500 : dd7500 {
+ int e;
+ virtual void bar(); // _ZN7ee475003barEv
+ ~ee47500(); // tgen
+ ee47500(); // tgen
+};
+//SIG(1 ee47500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47500 ::bar(){vfunc_called(this, "_ZN7ee475003barEv");}
+ee47500 ::~ee47500(){ note_dtor("ee47500", this);} // tgen
+ee47500 ::ee47500(){ note_ctor("ee47500", this);} // tgen
+
+static void Test_ee47500()
+{
+ extern Class_Descriptor cd_ee47500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47500, buf);
+ ee47500 *dp, &lv = *(dp=new (buf) ee47500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee47500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee47500");
+ check_base_class_offset(lv, (cc500*)(dd7500*), ABISELECT(16,12), "ee47500");
+ check_base_class_offset(lv, (dd7500*), 0, "ee47500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47500.e");
+ test_class_info(&lv, &cd_ee47500);
+ dp->~ee47500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47500(Test_ee47500, "ee47500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47500C1Ev();
+extern void _ZN7ee47500D1Ev();
+Name_Map name_map_ee47500[] = {
+ NSPAIR(_ZN7ee47500C1Ev),
+ NSPAIR(_ZN7ee47500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd7500;
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static Base_Class bases_ee47500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47500[];
+extern void _ZN7ee475003barEv();
+extern void _ZN6dd75003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475003barEv,_ZTv0_n16_N7ee475003barEv)();
+extern void ABISELECT(_ZThn16_N7ee475003barEv,_ZThn12_N7ee475003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47500[0]),
+ (VTBL_ENTRY)&_ZN7ee475003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475003barEv,_ZTv0_n16_N7ee475003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7500__7ee47500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500__7ee47500[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee47500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee47500[] = {
+ {&(_ZTV7ee47500[4]), 4,11},
+ {&(_tg__ZTV6dd7500__7ee47500[4]), 4,6},
+ {&(_tg__ZTV5cc500__6dd7500__7ee47500[4]), 4,5},
+ {&(_ZTV7ee47500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee47500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47500[];
+extern VTBL_ENTRY _ZTV7ee47500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47500[];
+static VTBL_ENTRY alt_thunk_names173[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475003barEv,_ZTv0_n16_N7ee475003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475003barEv,_ZThn12_N7ee475003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47500 = { "ee47500", // class name
+ bases_ee47500, 4,
+ &(vtc_ee47500[0]), // expected_vtbl_contents
+ &(vtt_ee47500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names173,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57500 : virtual dd7500 {
+ int e;
+ virtual void bar(); // _ZN7ee575003barEv
+ ~ee57500(); // tgen
+ ee57500(); // tgen
+};
+//SIG(1 ee57500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57500 ::bar(){vfunc_called(this, "_ZN7ee575003barEv");}
+ee57500 ::~ee57500(){ note_dtor("ee57500", this);} // tgen
+ee57500 ::ee57500(){ note_ctor("ee57500", this);} // tgen
+
+static void Test_ee57500()
+{
+ extern Class_Descriptor cd_ee57500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57500, buf);
+ ee57500 *dp, &lv = *(dp=new (buf) ee57500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee57500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee57500");
+ check_base_class_offset(lv, (cc500*)(dd7500*), ABISELECT(32,16), "ee57500");
+ check_base_class_offset(lv, (dd7500*), ABISELECT(16,8), "ee57500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57500.e");
+ test_class_info(&lv, &cd_ee57500);
+ dp->~ee57500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57500(Test_ee57500, "ee57500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57500C1Ev();
+extern void _ZN7ee57500D1Ev();
+Name_Map name_map_ee57500[] = {
+ NSPAIR(_ZN7ee57500C1Ev),
+ NSPAIR(_ZN7ee57500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd7500;
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static Base_Class bases_ee57500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7500, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57500[];
+extern void _ZN7ee575003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575003barEv,_ZTv0_n20_N7ee575003barEv)();
+extern void ABISELECT(_ZThn16_N7ee575003barEv,_ZThn8_N7ee575003barEv)() __attribute__((weak));
+extern void _ZN6dd75003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575003barEv,_ZTv0_n16_N7ee575003barEv)();
+extern void ABISELECT(_ZThn32_N7ee575003barEv,_ZThn16_N7ee575003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57500[0]),
+ (VTBL_ENTRY)&_ZN7ee575003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575003barEv,_ZTv0_n20_N7ee575003barEv),
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575003barEv,_ZTv0_n16_N7ee575003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7500__7ee57500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500__7ee57500[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee57500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee57500[] = {
+ {&(_ZTV7ee57500[5]), 5,19},
+ {&(_ZTV7ee57500[12]), 12,19},
+ {&(_ZTV7ee57500[18]), 18,19},
+ {&(_tg__ZTV6dd7500__7ee57500[4]), 4,6},
+ {&(_tg__ZTV5cc500__6dd7500__7ee57500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee57500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57500[];
+extern VTBL_ENTRY _ZTV7ee57500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57500[];
+static VTBL_ENTRY alt_thunk_names174[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575003barEv,_ZTv0_n16_N7ee575003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575003barEv,_ZThn16_N7ee575003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575003barEv,_ZTv0_n20_N7ee575003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575003barEv,_ZThn8_N7ee575003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57500 = { "ee57500", // class name
+ bases_ee57500, 4,
+ &(vtc_ee57500[0]), // expected_vtbl_contents
+ &(vtt_ee57500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57500),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names174,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67500 : dd7500 {
+ int e;
+ virtual void foo(); // _ZN7ee675003fooEv
+ virtual void bar(); // _ZN7ee675003barEv
+ ~ee67500(); // tgen
+ ee67500(); // tgen
+};
+//SIG(1 ee67500) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67500 ::foo(){vfunc_called(this, "_ZN7ee675003fooEv");}
+void ee67500 ::bar(){vfunc_called(this, "_ZN7ee675003barEv");}
+ee67500 ::~ee67500(){ note_dtor("ee67500", this);} // tgen
+ee67500 ::ee67500(){ note_ctor("ee67500", this);} // tgen
+
+static void Test_ee67500()
+{
+ extern Class_Descriptor cd_ee67500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67500, buf);
+ ee67500 *dp, &lv = *(dp=new (buf) ee67500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee67500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(28,20), "ee67500");
+ check_base_class_offset(lv, (cc500*)(dd7500*), ABISELECT(16,12), "ee67500");
+ check_base_class_offset(lv, (dd7500*), 0, "ee67500");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67500.e");
+ test_class_info(&lv, &cd_ee67500);
+ dp->~ee67500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67500(Test_ee67500, "ee67500", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67500C1Ev();
+extern void _ZN7ee67500D1Ev();
+Name_Map name_map_ee67500[] = {
+ NSPAIR(_ZN7ee67500C1Ev),
+ NSPAIR(_ZN7ee67500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd7500;
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static Base_Class bases_ee67500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, 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
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7500, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67500[];
+extern void _ZN7ee675003barEv();
+extern void _ZN7ee675003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675003barEv,_ZTv0_n16_N7ee675003barEv)();
+extern void ABISELECT(_ZThn16_N7ee675003barEv,_ZThn12_N7ee675003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67500[0]),
+ (VTBL_ENTRY)&_ZN7ee675003barEv,
+ (VTBL_ENTRY)&_ZN7ee675003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675003barEv,_ZTv0_n16_N7ee675003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7500__7ee67500[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500__7ee67500[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee67500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee67500[] = {
+ {&(_ZTV7ee67500[4]), 4,11},
+ {&(_tg__ZTV6dd7500__7ee67500[4]), 4,6},
+ {&(_tg__ZTV5cc500__6dd7500__7ee67500[4]), 4,5},
+ {&(_ZTV7ee67500[10]), 10,11},
+ {&(_tg__ZTV5cc500__7ee67500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67500[];
+extern VTBL_ENTRY _ZTV7ee67500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67500[];
+static VTBL_ENTRY alt_thunk_names175[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn12_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675003barEv,_ZTv0_n16_N7ee675003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675003barEv,_ZThn12_N7ee675003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67500 = { "ee67500", // class name
+ bases_ee67500, 4,
+ &(vtc_ee67500[0]), // expected_vtbl_contents
+ &(vtt_ee67500[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67500),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67500),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67500),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names175,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77500 : virtual dd7500 {
+ int e;
+ virtual void foo(); // _ZN7ee775003fooEv
+ virtual void bar(); // _ZN7ee775003barEv
+ ~ee77500(); // tgen
+ ee77500(); // tgen
+};
+//SIG(1 ee77500) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77500 ::foo(){vfunc_called(this, "_ZN7ee775003fooEv");}
+void ee77500 ::bar(){vfunc_called(this, "_ZN7ee775003barEv");}
+ee77500 ::~ee77500(){ note_dtor("ee77500", this);} // tgen
+ee77500 ::ee77500(){ note_ctor("ee77500", this);} // tgen
+
+static void Test_ee77500()
+{
+ extern Class_Descriptor cd_ee77500;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77500, buf);
+ ee77500 *dp, &lv = *(dp=new (buf) ee77500());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77500)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77500)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee77500");
+ check_base_class_offset(lv, (bb00*)(cc500*), ABISELECT(44,24), "ee77500");
+ check_base_class_offset(lv, (cc500*)(dd7500*), ABISELECT(32,16), "ee77500");
+ check_base_class_offset(lv, (dd7500*), ABISELECT(16,8), "ee77500");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77500.e");
+ test_class_info(&lv, &cd_ee77500);
+ dp->~ee77500();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77500(Test_ee77500, "ee77500", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77500C1Ev();
+extern void _ZN7ee77500D1Ev();
+Name_Map name_map_ee77500[] = {
+ NSPAIR(_ZN7ee77500C1Ev),
+ NSPAIR(_ZN7ee77500D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc500;
+extern VTBL_ENTRY _ZTI5cc500[];
+extern VTBL_ENTRY _ZTV5cc500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc500[];
+extern Class_Descriptor cd_dd7500;
+extern VTBL_ENTRY _ZTI6dd7500[];
+extern VTBL_ENTRY _ZTV6dd7500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7500[];
+static Base_Class bases_ee77500[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc500, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7500, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77500[];
+extern void _ZN7ee775003fooEv();
+extern void _ZN7ee775003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775003barEv,_ZTv0_n20_N7ee775003barEv)();
+extern void ABISELECT(_ZThn16_N7ee775003barEv,_ZThn8_N7ee775003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775003fooEv,_ZTv0_n24_N7ee775003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775003fooEv,_ZThn8_N7ee775003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775003barEv,_ZTv0_n16_N7ee775003barEv)();
+extern void ABISELECT(_ZThn32_N7ee775003barEv,_ZThn16_N7ee775003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77500[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77500[0]),
+ (VTBL_ENTRY)&_ZN7ee775003fooEv,
+ (VTBL_ENTRY)&_ZN7ee775003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775003barEv,_ZTv0_n20_N7ee775003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775003fooEv,_ZTv0_n24_N7ee775003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775003barEv,_ZTv0_n16_N7ee775003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77500[];
+extern void _ZN6dd75003barEv();
+extern void _ZN6dd75003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7500__7ee77500[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&_ZN6dd75003barEv,
+ (VTBL_ENTRY)&_ZN6dd75003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv)();
+extern void ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc500__6dd7500__7ee77500[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7500[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv),
+};
+extern void _ZN5cc5003barEv();
+static VTBL_ENTRY _tg__ZTV5cc500__7ee77500[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc500[0]),
+ (VTBL_ENTRY)&_ZN5cc5003barEv,
+};
+static VTT_ENTRY vtt_ee77500[] = {
+ {&(_ZTV7ee77500[5]), 5,20},
+ {&(_ZTV7ee77500[13]), 13,20},
+ {&(_ZTV7ee77500[19]), 19,20},
+ {&(_tg__ZTV6dd7500__7ee77500[4]), 4,6},
+ {&(_tg__ZTV5cc500__6dd7500__7ee77500[4]), 4,5},
+ {&(_tg__ZTV5cc500__7ee77500[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77500[];
+extern VTBL_ENTRY _ZTV7ee77500[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77500[];
+static VTBL_ENTRY alt_thunk_names176[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75003barEv,_ZTv0_n16_N6dd75003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75003barEv,_ZThn8_N6dd75003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775003barEv,_ZTv0_n16_N7ee775003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775003barEv,_ZThn16_N7ee775003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775003fooEv,_ZTv0_n24_N7ee775003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775003fooEv,_ZThn8_N7ee775003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775003barEv,_ZTv0_n20_N7ee775003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775003barEv,_ZThn8_N7ee775003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77500 = { "ee77500", // class name
+ bases_ee77500, 4,
+ &(vtc_ee77500[0]), // expected_vtbl_contents
+ &(vtt_ee77500[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77500),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77500),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77500),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names176,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc600 : bb00 {
+ int c;
+ virtual void foo(); // _ZN5cc6003fooEv
+ virtual void bar(); // _ZN5cc6003barEv
+ ~cc600(); // tgen
+ cc600(); // tgen
+};
+//SIG(-1 cc600) C1{ BC2{ BC3{ Fi} Fi} v1 v2 Fi}
+
+
+void cc600 ::foo(){vfunc_called(this, "_ZN5cc6003fooEv");}
+void cc600 ::bar(){vfunc_called(this, "_ZN5cc6003barEv");}
+cc600 ::~cc600(){ note_dtor("cc600", this);} // tgen
+cc600 ::cc600(){ note_ctor("cc600", this);} // tgen
+
+static void Test_cc600()
+{
+ extern Class_Descriptor cd_cc600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc600, buf);
+ cc600 *dp, &lv = *(dp=new (buf) cc600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc600)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(8,4), "cc600");
+ check_base_class_offset(lv, (bb00*), ABISELECT(8,4), "cc600");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc600.c");
+ test_class_info(&lv, &cd_cc600);
+ dp->~cc600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc600(Test_cc600, "cc600", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc600C1Ev();
+extern void _ZN5cc600D1Ev();
+Name_Map name_map_cc600[] = {
+ NSPAIR(_ZN5cc600C1Ev),
+ NSPAIR(_ZN5cc600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_cc600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+Class_Descriptor cd_cc600 = { "cc600", // class name
+ bases_cc600, 2,
+ &(vtc_cc600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc600),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 dd0600 : cc600 {
+ int d;
+ ~dd0600(); // tgen
+ dd0600(); // tgen
+};
+//SIG(-1 dd0600) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd0600 ::~dd0600(){ note_dtor("dd0600", this);} // tgen
+dd0600 ::dd0600(){ note_ctor("dd0600", this);} // tgen
+
+static void Test_dd0600()
+{
+ extern Class_Descriptor cd_dd0600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0600, buf);
+ dd0600 *dp, &lv = *(dp=new (buf) dd0600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(8,4), "dd0600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(8,4), "dd0600");
+ check_base_class_offset(lv, (cc600*), 0, "dd0600");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0600.d");
+ test_class_info(&lv, &cd_dd0600);
+ dp->~dd0600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0600(Test_dd0600, "dd0600", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0600C1Ev();
+extern void _ZN6dd0600D1Ev();
+Name_Map name_map_dd0600[] = {
+ NSPAIR(_ZN6dd0600C1Ev),
+ NSPAIR(_ZN6dd0600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+static Base_Class bases_dd0600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_dd0600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+Class_Descriptor cd_dd0600 = { "dd0600", // class name
+ bases_dd0600, 3,
+ &(vtc_dd0600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00600 : dd0600 {
+ int e;
+ ~ee00600(); // tgen
+ ee00600(); // tgen
+};
+//SIG(1 ee00600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00600 ::~ee00600(){ note_dtor("ee00600", this);} // tgen
+ee00600 ::ee00600(){ note_ctor("ee00600", this);} // tgen
+
+static void Test_ee00600()
+{
+ extern Class_Descriptor cd_ee00600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00600, buf);
+ ee00600 *dp, &lv = *(dp=new (buf) ee00600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd0600*), ABISELECT(8,4), "ee00600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd0600*), ABISELECT(8,4), "ee00600");
+ check_base_class_offset(lv, (cc600*)(dd0600*), 0, "ee00600");
+ check_base_class_offset(lv, (dd0600*), 0, "ee00600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00600.e");
+ test_class_info(&lv, &cd_ee00600);
+ dp->~ee00600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00600(Test_ee00600, "ee00600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00600C1Ev();
+extern void _ZN7ee00600D1Ev();
+Name_Map name_map_ee00600[] = {
+ NSPAIR(_ZN7ee00600C1Ev),
+ NSPAIR(_ZN7ee00600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd0600;
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+static Base_Class bases_ee00600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee00600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00600[];
+extern VTBL_ENTRY _ZTV7ee00600[];
+Class_Descriptor cd_ee00600 = { "ee00600", // class name
+ bases_ee00600, 4,
+ &(vtc_ee00600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10600 : virtual dd0600 {
+ int e;
+ ~ee10600(); // tgen
+ ee10600(); // tgen
+};
+//SIG(1 ee10600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10600 ::~ee10600(){ note_dtor("ee10600", this);} // tgen
+ee10600 ::ee10600(){ note_ctor("ee10600", this);} // tgen
+
+static void Test_ee10600()
+{
+ extern Class_Descriptor cd_ee10600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10600, buf);
+ ee10600 *dp, &lv = *(dp=new (buf) ee10600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd0600*), ABISELECT(24,12), "ee10600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd0600*), ABISELECT(24,12), "ee10600");
+ check_base_class_offset(lv, (cc600*)(dd0600*), ABISELECT(16,8), "ee10600");
+ check_base_class_offset(lv, (dd0600*), ABISELECT(16,8), "ee10600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10600.e");
+ test_class_info(&lv, &cd_ee10600);
+ dp->~ee10600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10600(Test_ee10600, "ee10600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10600C1Ev();
+extern void _ZN7ee10600D1Ev();
+Name_Map name_map_ee10600[] = {
+ NSPAIR(_ZN7ee10600C1Ev),
+ NSPAIR(_ZN7ee10600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd0600;
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+static Base_Class bases_ee10600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee10600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10600[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10600[];
+static VTT_ENTRY vtt_ee10600[] = {
+ {&(_ZTV7ee10600[3]), 3,9},
+ {&(_ZTV7ee10600[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10600[];
+extern VTBL_ENTRY _ZTV7ee10600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10600[];
+Class_Descriptor cd_ee10600 = { "ee10600", // class name
+ bases_ee10600, 4,
+ &(vtc_ee10600[0]), // expected_vtbl_contents
+ &(vtt_ee10600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10600),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20600 : dd0600 {
+ int e;
+ virtual void foo(); // _ZN7ee206003fooEv
+ ~ee20600(); // tgen
+ ee20600(); // tgen
+};
+//SIG(1 ee20600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20600 ::foo(){vfunc_called(this, "_ZN7ee206003fooEv");}
+ee20600 ::~ee20600(){ note_dtor("ee20600", this);} // tgen
+ee20600 ::ee20600(){ note_ctor("ee20600", this);} // tgen
+
+static void Test_ee20600()
+{
+ extern Class_Descriptor cd_ee20600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20600, buf);
+ ee20600 *dp, &lv = *(dp=new (buf) ee20600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd0600*), ABISELECT(8,4), "ee20600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd0600*), ABISELECT(8,4), "ee20600");
+ check_base_class_offset(lv, (cc600*)(dd0600*), 0, "ee20600");
+ check_base_class_offset(lv, (dd0600*), 0, "ee20600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20600.e");
+ test_class_info(&lv, &cd_ee20600);
+ dp->~ee20600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20600(Test_ee20600, "ee20600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20600C1Ev();
+extern void _ZN7ee20600D1Ev();
+Name_Map name_map_ee20600[] = {
+ NSPAIR(_ZN7ee20600C1Ev),
+ NSPAIR(_ZN7ee20600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd0600;
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+static Base_Class bases_ee20600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20600[];
+extern void _ZN7ee206003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee20600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20600[0]),
+ (VTBL_ENTRY)&_ZN7ee206003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20600[];
+extern VTBL_ENTRY _ZTV7ee20600[];
+Class_Descriptor cd_ee20600 = { "ee20600", // class name
+ bases_ee20600, 4,
+ &(vtc_ee20600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30600 : virtual dd0600 {
+ int e;
+ virtual void foo(); // _ZN7ee306003fooEv
+ ~ee30600(); // tgen
+ ee30600(); // tgen
+};
+//SIG(1 ee30600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30600 ::foo(){vfunc_called(this, "_ZN7ee306003fooEv");}
+ee30600 ::~ee30600(){ note_dtor("ee30600", this);} // tgen
+ee30600 ::ee30600(){ note_ctor("ee30600", this);} // tgen
+
+static void Test_ee30600()
+{
+ extern Class_Descriptor cd_ee30600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30600, buf);
+ ee30600 *dp, &lv = *(dp=new (buf) ee30600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd0600*), ABISELECT(24,12), "ee30600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd0600*), ABISELECT(24,12), "ee30600");
+ check_base_class_offset(lv, (cc600*)(dd0600*), ABISELECT(16,8), "ee30600");
+ check_base_class_offset(lv, (dd0600*), ABISELECT(16,8), "ee30600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30600.e");
+ test_class_info(&lv, &cd_ee30600);
+ dp->~ee30600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30600(Test_ee30600, "ee30600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30600C1Ev();
+extern void _ZN7ee30600D1Ev();
+Name_Map name_map_ee30600[] = {
+ NSPAIR(_ZN7ee30600C1Ev),
+ NSPAIR(_ZN7ee30600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd0600;
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+static Base_Class bases_ee30600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30600[];
+extern void _ZN7ee306003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee306003fooEv,_ZTv0_n12_N7ee306003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306003fooEv,_ZThn8_N7ee306003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee30600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30600[0]),
+ (VTBL_ENTRY)&_ZN7ee306003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306003fooEv,_ZTv0_n12_N7ee306003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30600[];
+static VTT_ENTRY vtt_ee30600[] = {
+ {&(_ZTV7ee30600[3]), 3,10},
+ {&(_ZTV7ee30600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30600[];
+extern VTBL_ENTRY _ZTV7ee30600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30600[];
+static VTBL_ENTRY alt_thunk_names177[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306003fooEv,_ZTv0_n12_N7ee306003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306003fooEv,_ZThn8_N7ee306003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30600 = { "ee30600", // class name
+ bases_ee30600, 4,
+ &(vtc_ee30600[0]), // expected_vtbl_contents
+ &(vtt_ee30600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names177,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40600 : dd0600 {
+ int e;
+ virtual void bar(); // _ZN7ee406003barEv
+ ~ee40600(); // tgen
+ ee40600(); // tgen
+};
+//SIG(1 ee40600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40600 ::bar(){vfunc_called(this, "_ZN7ee406003barEv");}
+ee40600 ::~ee40600(){ note_dtor("ee40600", this);} // tgen
+ee40600 ::ee40600(){ note_ctor("ee40600", this);} // tgen
+
+static void Test_ee40600()
+{
+ extern Class_Descriptor cd_ee40600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40600, buf);
+ ee40600 *dp, &lv = *(dp=new (buf) ee40600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd0600*), ABISELECT(8,4), "ee40600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd0600*), ABISELECT(8,4), "ee40600");
+ check_base_class_offset(lv, (cc600*)(dd0600*), 0, "ee40600");
+ check_base_class_offset(lv, (dd0600*), 0, "ee40600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40600.e");
+ test_class_info(&lv, &cd_ee40600);
+ dp->~ee40600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40600(Test_ee40600, "ee40600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40600C1Ev();
+extern void _ZN7ee40600D1Ev();
+Name_Map name_map_ee40600[] = {
+ NSPAIR(_ZN7ee40600C1Ev),
+ NSPAIR(_ZN7ee40600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd0600;
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+static Base_Class bases_ee40600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN7ee406003barEv();
+static VTBL_ENTRY vtc_ee40600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN7ee406003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40600[];
+extern VTBL_ENTRY _ZTV7ee40600[];
+Class_Descriptor cd_ee40600 = { "ee40600", // class name
+ bases_ee40600, 4,
+ &(vtc_ee40600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50600 : virtual dd0600 {
+ int e;
+ virtual void bar(); // _ZN7ee506003barEv
+ ~ee50600(); // tgen
+ ee50600(); // tgen
+};
+//SIG(1 ee50600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50600 ::bar(){vfunc_called(this, "_ZN7ee506003barEv");}
+ee50600 ::~ee50600(){ note_dtor("ee50600", this);} // tgen
+ee50600 ::ee50600(){ note_ctor("ee50600", this);} // tgen
+
+static void Test_ee50600()
+{
+ extern Class_Descriptor cd_ee50600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50600, buf);
+ ee50600 *dp, &lv = *(dp=new (buf) ee50600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd0600*), ABISELECT(24,12), "ee50600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd0600*), ABISELECT(24,12), "ee50600");
+ check_base_class_offset(lv, (cc600*)(dd0600*), ABISELECT(16,8), "ee50600");
+ check_base_class_offset(lv, (dd0600*), ABISELECT(16,8), "ee50600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50600.e");
+ test_class_info(&lv, &cd_ee50600);
+ dp->~ee50600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50600(Test_ee50600, "ee50600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50600C1Ev();
+extern void _ZN7ee50600D1Ev();
+Name_Map name_map_ee50600[] = {
+ NSPAIR(_ZN7ee50600C1Ev),
+ NSPAIR(_ZN7ee50600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd0600;
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+static Base_Class bases_ee50600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50600[];
+extern void _ZN7ee506003barEv();
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506003barEv,_ZTv0_n16_N7ee506003barEv)();
+extern void ABISELECT(_ZThn16_N7ee506003barEv,_ZThn8_N7ee506003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50600[0]),
+ (VTBL_ENTRY)&_ZN7ee506003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506003barEv,_ZTv0_n16_N7ee506003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50600[];
+static VTT_ENTRY vtt_ee50600[] = {
+ {&(_ZTV7ee50600[3]), 3,10},
+ {&(_ZTV7ee50600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50600[];
+extern VTBL_ENTRY _ZTV7ee50600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50600[];
+static VTBL_ENTRY alt_thunk_names178[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506003barEv,_ZTv0_n16_N7ee506003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506003barEv,_ZThn8_N7ee506003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50600 = { "ee50600", // class name
+ bases_ee50600, 4,
+ &(vtc_ee50600[0]), // expected_vtbl_contents
+ &(vtt_ee50600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names178,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60600 : dd0600 {
+ int e;
+ virtual void foo(); // _ZN7ee606003fooEv
+ virtual void bar(); // _ZN7ee606003barEv
+ ~ee60600(); // tgen
+ ee60600(); // tgen
+};
+//SIG(1 ee60600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60600 ::foo(){vfunc_called(this, "_ZN7ee606003fooEv");}
+void ee60600 ::bar(){vfunc_called(this, "_ZN7ee606003barEv");}
+ee60600 ::~ee60600(){ note_dtor("ee60600", this);} // tgen
+ee60600 ::ee60600(){ note_ctor("ee60600", this);} // tgen
+
+static void Test_ee60600()
+{
+ extern Class_Descriptor cd_ee60600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60600, buf);
+ ee60600 *dp, &lv = *(dp=new (buf) ee60600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd0600*), ABISELECT(8,4), "ee60600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd0600*), ABISELECT(8,4), "ee60600");
+ check_base_class_offset(lv, (cc600*)(dd0600*), 0, "ee60600");
+ check_base_class_offset(lv, (dd0600*), 0, "ee60600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60600.e");
+ test_class_info(&lv, &cd_ee60600);
+ dp->~ee60600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60600(Test_ee60600, "ee60600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60600C1Ev();
+extern void _ZN7ee60600D1Ev();
+Name_Map name_map_ee60600[] = {
+ NSPAIR(_ZN7ee60600C1Ev),
+ NSPAIR(_ZN7ee60600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd0600;
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+static Base_Class bases_ee60600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60600[];
+extern void _ZN7ee606003fooEv();
+extern void _ZN7ee606003barEv();
+static VTBL_ENTRY vtc_ee60600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60600[0]),
+ (VTBL_ENTRY)&_ZN7ee606003fooEv,
+ (VTBL_ENTRY)&_ZN7ee606003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60600[];
+extern VTBL_ENTRY _ZTV7ee60600[];
+Class_Descriptor cd_ee60600 = { "ee60600", // class name
+ bases_ee60600, 4,
+ &(vtc_ee60600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70600 : virtual dd0600 {
+ int e;
+ virtual void foo(); // _ZN7ee706003fooEv
+ virtual void bar(); // _ZN7ee706003barEv
+ ~ee70600(); // tgen
+ ee70600(); // tgen
+};
+//SIG(1 ee70600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70600 ::foo(){vfunc_called(this, "_ZN7ee706003fooEv");}
+void ee70600 ::bar(){vfunc_called(this, "_ZN7ee706003barEv");}
+ee70600 ::~ee70600(){ note_dtor("ee70600", this);} // tgen
+ee70600 ::ee70600(){ note_ctor("ee70600", this);} // tgen
+
+static void Test_ee70600()
+{
+ extern Class_Descriptor cd_ee70600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70600, buf);
+ ee70600 *dp, &lv = *(dp=new (buf) ee70600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd0600*), ABISELECT(24,12), "ee70600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd0600*), ABISELECT(24,12), "ee70600");
+ check_base_class_offset(lv, (cc600*)(dd0600*), ABISELECT(16,8), "ee70600");
+ check_base_class_offset(lv, (dd0600*), ABISELECT(16,8), "ee70600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70600.e");
+ test_class_info(&lv, &cd_ee70600);
+ dp->~ee70600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70600(Test_ee70600, "ee70600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70600C1Ev();
+extern void _ZN7ee70600D1Ev();
+Name_Map name_map_ee70600[] = {
+ NSPAIR(_ZN7ee70600C1Ev),
+ NSPAIR(_ZN7ee70600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd0600;
+extern VTBL_ENTRY _ZTI6dd0600[];
+extern VTBL_ENTRY _ZTV6dd0600[];
+static Base_Class bases_ee70600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70600[];
+extern void _ZN7ee706003fooEv();
+extern void _ZN7ee706003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706003fooEv,_ZTv0_n12_N7ee706003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706003fooEv,_ZThn8_N7ee706003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706003barEv,_ZTv0_n16_N7ee706003barEv)();
+extern void ABISELECT(_ZThn16_N7ee706003barEv,_ZThn8_N7ee706003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70600[0]),
+ (VTBL_ENTRY)&_ZN7ee706003fooEv,
+ (VTBL_ENTRY)&_ZN7ee706003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706003fooEv,_ZTv0_n12_N7ee706003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706003barEv,_ZTv0_n16_N7ee706003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70600[];
+static VTT_ENTRY vtt_ee70600[] = {
+ {&(_ZTV7ee70600[3]), 3,11},
+ {&(_ZTV7ee70600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70600[];
+extern VTBL_ENTRY _ZTV7ee70600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70600[];
+static VTBL_ENTRY alt_thunk_names179[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706003barEv,_ZTv0_n16_N7ee706003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706003barEv,_ZThn8_N7ee706003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706003fooEv,_ZTv0_n12_N7ee706003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706003fooEv,_ZThn8_N7ee706003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70600 = { "ee70600", // class name
+ bases_ee70600, 4,
+ &(vtc_ee70600[0]), // expected_vtbl_contents
+ &(vtt_ee70600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names179,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1600 : virtual cc600 {
+ int d;
+ ~dd1600(); // tgen
+ dd1600(); // tgen
+};
+//SIG(-1 dd1600) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd1600 ::~dd1600(){ note_dtor("dd1600", this);} // tgen
+dd1600 ::dd1600(){ note_ctor("dd1600", this);} // tgen
+
+static void Test_dd1600()
+{
+ extern Class_Descriptor cd_dd1600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1600, buf);
+ dd1600 *dp, &lv = *(dp=new (buf) dd1600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,12), "dd1600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,12), "dd1600");
+ check_base_class_offset(lv, (cc600*), ABISELECT(16,8), "dd1600");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1600.d");
+ test_class_info(&lv, &cd_dd1600);
+ dp->~dd1600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1600(Test_dd1600, "dd1600", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1600C1Ev();
+extern void _ZN6dd1600D1Ev();
+Name_Map name_map_dd1600[] = {
+ NSPAIR(_ZN6dd1600C1Ev),
+ NSPAIR(_ZN6dd1600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+static Base_Class bases_dd1600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_dd1600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1600[];
+static VTT_ENTRY vtt_dd1600[] = {
+ {&(_ZTV6dd1600[3]), 3,9},
+ {&(_ZTV6dd1600[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+Class_Descriptor cd_dd1600 = { "dd1600", // class name
+ bases_dd1600, 3,
+ &(vtc_dd1600[0]), // expected_vtbl_contents
+ &(vtt_dd1600[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1600),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1600),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 ee01600 : dd1600 {
+ int e;
+ ~ee01600(); // tgen
+ ee01600(); // tgen
+};
+//SIG(1 ee01600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01600 ::~ee01600(){ note_dtor("ee01600", this);} // tgen
+ee01600 ::ee01600(){ note_ctor("ee01600", this);} // tgen
+
+static void Test_ee01600()
+{
+ extern Class_Descriptor cd_ee01600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01600, buf);
+ ee01600 *dp, &lv = *(dp=new (buf) ee01600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee01600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee01600");
+ check_base_class_offset(lv, (cc600*)(dd1600*), ABISELECT(16,12), "ee01600");
+ check_base_class_offset(lv, (dd1600*), 0, "ee01600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01600.e");
+ test_class_info(&lv, &cd_ee01600);
+ dp->~ee01600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01600(Test_ee01600, "ee01600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01600C1Ev();
+extern void _ZN7ee01600D1Ev();
+Name_Map name_map_ee01600[] = {
+ NSPAIR(_ZN7ee01600C1Ev),
+ NSPAIR(_ZN7ee01600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd1600;
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+static Base_Class bases_ee01600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee01600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01600[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01600[];
+static VTBL_ENTRY _tg__ZTV6dd1600__7ee01600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+};
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd1600__7ee01600[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee01600[] = {
+ {&(_ZTV7ee01600[3]), 3,9},
+ {&(_tg__ZTV6dd1600__7ee01600[3]), 3,3},
+ {&(_tg__ZTV5cc600__6dd1600__7ee01600[4]), 4,6},
+ {&(_ZTV7ee01600[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01600[];
+extern VTBL_ENTRY _ZTV7ee01600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01600[];
+Class_Descriptor cd_ee01600 = { "ee01600", // class name
+ bases_ee01600, 4,
+ &(vtc_ee01600[0]), // expected_vtbl_contents
+ &(vtt_ee01600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01600),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01600),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 ee11600 : virtual dd1600 {
+ int e;
+ ~ee11600(); // tgen
+ ee11600(); // tgen
+};
+//SIG(1 ee11600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11600 ::~ee11600(){ note_dtor("ee11600", this);} // tgen
+ee11600 ::ee11600(){ note_ctor("ee11600", this);} // tgen
+
+static void Test_ee11600()
+{
+ extern Class_Descriptor cd_ee11600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11600, buf);
+ ee11600 *dp, &lv = *(dp=new (buf) ee11600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee11600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee11600");
+ check_base_class_offset(lv, (cc600*)(dd1600*), ABISELECT(32,16), "ee11600");
+ check_base_class_offset(lv, (dd1600*), ABISELECT(16,8), "ee11600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11600.e");
+ test_class_info(&lv, &cd_ee11600);
+ dp->~ee11600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11600(Test_ee11600, "ee11600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11600C1Ev();
+extern void _ZN7ee11600D1Ev();
+Name_Map name_map_ee11600[] = {
+ NSPAIR(_ZN7ee11600C1Ev),
+ NSPAIR(_ZN7ee11600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd1600;
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+static Base_Class bases_ee11600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee11600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11600[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11600[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11600[];
+static VTBL_ENTRY _tg__ZTV6dd1600__7ee11600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+};
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd1600__7ee11600[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee11600[] = {
+ {&(_ZTV7ee11600[4]), 4,13},
+ {&(_ZTV7ee11600[7]), 7,13},
+ {&(_ZTV7ee11600[11]), 11,13},
+ {&(_tg__ZTV6dd1600__7ee11600[3]), 3,3},
+ {&(_tg__ZTV5cc600__6dd1600__7ee11600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11600[];
+extern VTBL_ENTRY _ZTV7ee11600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11600[];
+Class_Descriptor cd_ee11600 = { "ee11600", // class name
+ bases_ee11600, 4,
+ &(vtc_ee11600[0]), // expected_vtbl_contents
+ &(vtt_ee11600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11600),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11600),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 ee21600 : dd1600 {
+ int e;
+ virtual void foo(); // _ZN7ee216003fooEv
+ ~ee21600(); // tgen
+ ee21600(); // tgen
+};
+//SIG(1 ee21600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21600 ::foo(){vfunc_called(this, "_ZN7ee216003fooEv");}
+ee21600 ::~ee21600(){ note_dtor("ee21600", this);} // tgen
+ee21600 ::ee21600(){ note_ctor("ee21600", this);} // tgen
+
+static void Test_ee21600()
+{
+ extern Class_Descriptor cd_ee21600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21600, buf);
+ ee21600 *dp, &lv = *(dp=new (buf) ee21600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee21600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee21600");
+ check_base_class_offset(lv, (cc600*)(dd1600*), ABISELECT(16,12), "ee21600");
+ check_base_class_offset(lv, (dd1600*), 0, "ee21600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21600.e");
+ test_class_info(&lv, &cd_ee21600);
+ dp->~ee21600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21600(Test_ee21600, "ee21600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21600C1Ev();
+extern void _ZN7ee21600D1Ev();
+Name_Map name_map_ee21600[] = {
+ NSPAIR(_ZN7ee21600C1Ev),
+ NSPAIR(_ZN7ee21600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd1600;
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+static Base_Class bases_ee21600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21600[];
+extern void _ZN7ee216003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee216003fooEv,_ZTv0_n12_N7ee216003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216003fooEv,_ZThn12_N7ee216003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee21600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21600[0]),
+ (VTBL_ENTRY)&_ZN7ee216003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216003fooEv,_ZTv0_n12_N7ee216003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21600[];
+static VTBL_ENTRY _tg__ZTV6dd1600__7ee21600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+};
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd1600__7ee21600[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee21600[] = {
+ {&(_ZTV7ee21600[3]), 3,10},
+ {&(_tg__ZTV6dd1600__7ee21600[3]), 3,3},
+ {&(_tg__ZTV5cc600__6dd1600__7ee21600[4]), 4,6},
+ {&(_ZTV7ee21600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21600[];
+extern VTBL_ENTRY _ZTV7ee21600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21600[];
+static VTBL_ENTRY alt_thunk_names180[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216003fooEv,_ZTv0_n12_N7ee216003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216003fooEv,_ZThn12_N7ee216003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21600 = { "ee21600", // class name
+ bases_ee21600, 4,
+ &(vtc_ee21600[0]), // expected_vtbl_contents
+ &(vtt_ee21600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names180,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31600 : virtual dd1600 {
+ int e;
+ virtual void foo(); // _ZN7ee316003fooEv
+ ~ee31600(); // tgen
+ ee31600(); // tgen
+};
+//SIG(1 ee31600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31600 ::foo(){vfunc_called(this, "_ZN7ee316003fooEv");}
+ee31600 ::~ee31600(){ note_dtor("ee31600", this);} // tgen
+ee31600 ::ee31600(){ note_ctor("ee31600", this);} // tgen
+
+static void Test_ee31600()
+{
+ extern Class_Descriptor cd_ee31600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31600, buf);
+ ee31600 *dp, &lv = *(dp=new (buf) ee31600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee31600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee31600");
+ check_base_class_offset(lv, (cc600*)(dd1600*), ABISELECT(32,16), "ee31600");
+ check_base_class_offset(lv, (dd1600*), ABISELECT(16,8), "ee31600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31600.e");
+ test_class_info(&lv, &cd_ee31600);
+ dp->~ee31600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31600(Test_ee31600, "ee31600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31600C1Ev();
+extern void _ZN7ee31600D1Ev();
+Name_Map name_map_ee31600[] = {
+ NSPAIR(_ZN7ee31600C1Ev),
+ NSPAIR(_ZN7ee31600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd1600;
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+static Base_Class bases_ee31600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31600[];
+extern void _ZN7ee316003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee316003fooEv,_ZTv0_n12_N7ee316003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316003fooEv,_ZThn16_N7ee316003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee31600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31600[0]),
+ (VTBL_ENTRY)&_ZN7ee316003fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31600[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316003fooEv,_ZTv0_n12_N7ee316003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31600[];
+static VTBL_ENTRY _tg__ZTV6dd1600__7ee31600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+};
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd1600__7ee31600[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee31600[] = {
+ {&(_ZTV7ee31600[4]), 4,14},
+ {&(_ZTV7ee31600[8]), 8,14},
+ {&(_ZTV7ee31600[12]), 12,14},
+ {&(_tg__ZTV6dd1600__7ee31600[3]), 3,3},
+ {&(_tg__ZTV5cc600__6dd1600__7ee31600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31600[];
+extern VTBL_ENTRY _ZTV7ee31600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31600[];
+static VTBL_ENTRY alt_thunk_names181[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316003fooEv,_ZTv0_n12_N7ee316003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316003fooEv,_ZThn16_N7ee316003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31600 = { "ee31600", // class name
+ bases_ee31600, 4,
+ &(vtc_ee31600[0]), // expected_vtbl_contents
+ &(vtt_ee31600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31600),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names181,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41600 : dd1600 {
+ int e;
+ virtual void bar(); // _ZN7ee416003barEv
+ ~ee41600(); // tgen
+ ee41600(); // tgen
+};
+//SIG(1 ee41600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41600 ::bar(){vfunc_called(this, "_ZN7ee416003barEv");}
+ee41600 ::~ee41600(){ note_dtor("ee41600", this);} // tgen
+ee41600 ::ee41600(){ note_ctor("ee41600", this);} // tgen
+
+static void Test_ee41600()
+{
+ extern Class_Descriptor cd_ee41600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41600, buf);
+ ee41600 *dp, &lv = *(dp=new (buf) ee41600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee41600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee41600");
+ check_base_class_offset(lv, (cc600*)(dd1600*), ABISELECT(16,12), "ee41600");
+ check_base_class_offset(lv, (dd1600*), 0, "ee41600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41600.e");
+ test_class_info(&lv, &cd_ee41600);
+ dp->~ee41600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41600(Test_ee41600, "ee41600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41600C1Ev();
+extern void _ZN7ee41600D1Ev();
+Name_Map name_map_ee41600[] = {
+ NSPAIR(_ZN7ee41600C1Ev),
+ NSPAIR(_ZN7ee41600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd1600;
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+static Base_Class bases_ee41600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41600[];
+extern void _ZN7ee416003barEv();
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416003barEv,_ZTv0_n16_N7ee416003barEv)();
+extern void ABISELECT(_ZThn16_N7ee416003barEv,_ZThn12_N7ee416003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41600[0]),
+ (VTBL_ENTRY)&_ZN7ee416003barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416003barEv,_ZTv0_n16_N7ee416003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41600[];
+static VTBL_ENTRY _tg__ZTV6dd1600__7ee41600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+};
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd1600__7ee41600[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee41600[] = {
+ {&(_ZTV7ee41600[3]), 3,10},
+ {&(_tg__ZTV6dd1600__7ee41600[3]), 3,3},
+ {&(_tg__ZTV5cc600__6dd1600__7ee41600[4]), 4,6},
+ {&(_ZTV7ee41600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41600[];
+extern VTBL_ENTRY _ZTV7ee41600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41600[];
+static VTBL_ENTRY alt_thunk_names182[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416003barEv,_ZTv0_n16_N7ee416003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416003barEv,_ZThn12_N7ee416003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41600 = { "ee41600", // class name
+ bases_ee41600, 4,
+ &(vtc_ee41600[0]), // expected_vtbl_contents
+ &(vtt_ee41600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names182,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51600 : virtual dd1600 {
+ int e;
+ virtual void bar(); // _ZN7ee516003barEv
+ ~ee51600(); // tgen
+ ee51600(); // tgen
+};
+//SIG(1 ee51600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51600 ::bar(){vfunc_called(this, "_ZN7ee516003barEv");}
+ee51600 ::~ee51600(){ note_dtor("ee51600", this);} // tgen
+ee51600 ::ee51600(){ note_ctor("ee51600", this);} // tgen
+
+static void Test_ee51600()
+{
+ extern Class_Descriptor cd_ee51600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51600, buf);
+ ee51600 *dp, &lv = *(dp=new (buf) ee51600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee51600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee51600");
+ check_base_class_offset(lv, (cc600*)(dd1600*), ABISELECT(32,16), "ee51600");
+ check_base_class_offset(lv, (dd1600*), ABISELECT(16,8), "ee51600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51600.e");
+ test_class_info(&lv, &cd_ee51600);
+ dp->~ee51600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51600(Test_ee51600, "ee51600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51600C1Ev();
+extern void _ZN7ee51600D1Ev();
+Name_Map name_map_ee51600[] = {
+ NSPAIR(_ZN7ee51600C1Ev),
+ NSPAIR(_ZN7ee51600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd1600;
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+static Base_Class bases_ee51600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51600[];
+extern void _ZN7ee516003barEv();
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516003barEv,_ZTv0_n16_N7ee516003barEv)();
+extern void ABISELECT(_ZThn32_N7ee516003barEv,_ZThn16_N7ee516003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51600[0]),
+ (VTBL_ENTRY)&_ZN7ee516003barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51600[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516003barEv,_ZTv0_n16_N7ee516003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51600[];
+static VTBL_ENTRY _tg__ZTV6dd1600__7ee51600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+};
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd1600__7ee51600[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee51600[] = {
+ {&(_ZTV7ee51600[4]), 4,14},
+ {&(_ZTV7ee51600[8]), 8,14},
+ {&(_ZTV7ee51600[12]), 12,14},
+ {&(_tg__ZTV6dd1600__7ee51600[3]), 3,3},
+ {&(_tg__ZTV5cc600__6dd1600__7ee51600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51600[];
+extern VTBL_ENTRY _ZTV7ee51600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51600[];
+static VTBL_ENTRY alt_thunk_names183[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516003barEv,_ZTv0_n16_N7ee516003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516003barEv,_ZThn16_N7ee516003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51600 = { "ee51600", // class name
+ bases_ee51600, 4,
+ &(vtc_ee51600[0]), // expected_vtbl_contents
+ &(vtt_ee51600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51600),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names183,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61600 : dd1600 {
+ int e;
+ virtual void foo(); // _ZN7ee616003fooEv
+ virtual void bar(); // _ZN7ee616003barEv
+ ~ee61600(); // tgen
+ ee61600(); // tgen
+};
+//SIG(1 ee61600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61600 ::foo(){vfunc_called(this, "_ZN7ee616003fooEv");}
+void ee61600 ::bar(){vfunc_called(this, "_ZN7ee616003barEv");}
+ee61600 ::~ee61600(){ note_dtor("ee61600", this);} // tgen
+ee61600 ::ee61600(){ note_ctor("ee61600", this);} // tgen
+
+static void Test_ee61600()
+{
+ extern Class_Descriptor cd_ee61600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61600, buf);
+ ee61600 *dp, &lv = *(dp=new (buf) ee61600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee61600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee61600");
+ check_base_class_offset(lv, (cc600*)(dd1600*), ABISELECT(16,12), "ee61600");
+ check_base_class_offset(lv, (dd1600*), 0, "ee61600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61600.e");
+ test_class_info(&lv, &cd_ee61600);
+ dp->~ee61600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61600(Test_ee61600, "ee61600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61600C1Ev();
+extern void _ZN7ee61600D1Ev();
+Name_Map name_map_ee61600[] = {
+ NSPAIR(_ZN7ee61600C1Ev),
+ NSPAIR(_ZN7ee61600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd1600;
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+static Base_Class bases_ee61600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61600[];
+extern void _ZN7ee616003fooEv();
+extern void _ZN7ee616003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616003fooEv,_ZTv0_n12_N7ee616003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616003fooEv,_ZThn12_N7ee616003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616003barEv,_ZTv0_n16_N7ee616003barEv)();
+extern void ABISELECT(_ZThn16_N7ee616003barEv,_ZThn12_N7ee616003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61600[0]),
+ (VTBL_ENTRY)&_ZN7ee616003fooEv,
+ (VTBL_ENTRY)&_ZN7ee616003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616003fooEv,_ZTv0_n12_N7ee616003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616003barEv,_ZTv0_n16_N7ee616003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61600[];
+static VTBL_ENTRY _tg__ZTV6dd1600__7ee61600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+};
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd1600__7ee61600[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee61600[] = {
+ {&(_ZTV7ee61600[3]), 3,11},
+ {&(_tg__ZTV6dd1600__7ee61600[3]), 3,3},
+ {&(_tg__ZTV5cc600__6dd1600__7ee61600[4]), 4,6},
+ {&(_ZTV7ee61600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61600[];
+extern VTBL_ENTRY _ZTV7ee61600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61600[];
+static VTBL_ENTRY alt_thunk_names184[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616003barEv,_ZTv0_n16_N7ee616003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616003barEv,_ZThn12_N7ee616003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616003fooEv,_ZTv0_n12_N7ee616003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616003fooEv,_ZThn12_N7ee616003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61600 = { "ee61600", // class name
+ bases_ee61600, 4,
+ &(vtc_ee61600[0]), // expected_vtbl_contents
+ &(vtt_ee61600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names184,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71600 : virtual dd1600 {
+ int e;
+ virtual void foo(); // _ZN7ee716003fooEv
+ virtual void bar(); // _ZN7ee716003barEv
+ ~ee71600(); // tgen
+ ee71600(); // tgen
+};
+//SIG(1 ee71600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71600 ::foo(){vfunc_called(this, "_ZN7ee716003fooEv");}
+void ee71600 ::bar(){vfunc_called(this, "_ZN7ee716003barEv");}
+ee71600 ::~ee71600(){ note_dtor("ee71600", this);} // tgen
+ee71600 ::ee71600(){ note_ctor("ee71600", this);} // tgen
+
+static void Test_ee71600()
+{
+ extern Class_Descriptor cd_ee71600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71600, buf);
+ ee71600 *dp, &lv = *(dp=new (buf) ee71600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee71600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee71600");
+ check_base_class_offset(lv, (cc600*)(dd1600*), ABISELECT(32,16), "ee71600");
+ check_base_class_offset(lv, (dd1600*), ABISELECT(16,8), "ee71600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71600.e");
+ test_class_info(&lv, &cd_ee71600);
+ dp->~ee71600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71600(Test_ee71600, "ee71600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71600C1Ev();
+extern void _ZN7ee71600D1Ev();
+Name_Map name_map_ee71600[] = {
+ NSPAIR(_ZN7ee71600C1Ev),
+ NSPAIR(_ZN7ee71600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd1600;
+extern VTBL_ENTRY _ZTI6dd1600[];
+extern VTBL_ENTRY _ZTV6dd1600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1600[];
+static Base_Class bases_ee71600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1600, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71600[];
+extern void _ZN7ee716003fooEv();
+extern void _ZN7ee716003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716003fooEv,_ZTv0_n12_N7ee716003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716003fooEv,_ZThn16_N7ee716003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716003barEv,_ZTv0_n16_N7ee716003barEv)();
+extern void ABISELECT(_ZThn32_N7ee716003barEv,_ZThn16_N7ee716003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71600[0]),
+ (VTBL_ENTRY)&_ZN7ee716003fooEv,
+ (VTBL_ENTRY)&_ZN7ee716003barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71600[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716003fooEv,_ZTv0_n12_N7ee716003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716003barEv,_ZTv0_n16_N7ee716003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71600[];
+static VTBL_ENTRY _tg__ZTV6dd1600__7ee71600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+};
+extern void _ZN5cc6003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd1600__7ee71600[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee71600[] = {
+ {&(_ZTV7ee71600[4]), 4,15},
+ {&(_ZTV7ee71600[9]), 9,15},
+ {&(_ZTV7ee71600[13]), 13,15},
+ {&(_tg__ZTV6dd1600__7ee71600[3]), 3,3},
+ {&(_tg__ZTV5cc600__6dd1600__7ee71600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71600[];
+extern VTBL_ENTRY _ZTV7ee71600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71600[];
+static VTBL_ENTRY alt_thunk_names185[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716003barEv,_ZTv0_n16_N7ee716003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716003barEv,_ZThn16_N7ee716003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716003fooEv,_ZTv0_n12_N7ee716003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716003fooEv,_ZThn16_N7ee716003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71600 = { "ee71600", // class name
+ bases_ee71600, 4,
+ &(vtc_ee71600[0]), // expected_vtbl_contents
+ &(vtt_ee71600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71600),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names185,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2600 : cc600 {
+ int d;
+ virtual void foo(); // _ZN6dd26003fooEv
+ ~dd2600(); // tgen
+ dd2600(); // tgen
+};
+//SIG(-1 dd2600) C1{ BC2{ BC3{ BC4{ Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2600 ::foo(){vfunc_called(this, "_ZN6dd26003fooEv");}
+dd2600 ::~dd2600(){ note_dtor("dd2600", this);} // tgen
+dd2600 ::dd2600(){ note_ctor("dd2600", this);} // tgen
+
+static void Test_dd2600()
+{
+ extern Class_Descriptor cd_dd2600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2600, buf);
+ dd2600 *dp, &lv = *(dp=new (buf) dd2600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(8,4), "dd2600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(8,4), "dd2600");
+ check_base_class_offset(lv, (cc600*), 0, "dd2600");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2600.d");
+ test_class_info(&lv, &cd_dd2600);
+ dp->~dd2600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2600(Test_dd2600, "dd2600", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2600C1Ev();
+extern void _ZN6dd2600D1Ev();
+Name_Map name_map_dd2600[] = {
+ NSPAIR(_ZN6dd2600C1Ev),
+ NSPAIR(_ZN6dd2600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+static Base_Class bases_dd2600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern void _ZN6dd26003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_dd2600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2600[0]),
+ (VTBL_ENTRY)&_ZN6dd26003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+Class_Descriptor cd_dd2600 = { "dd2600", // class name
+ bases_dd2600, 3,
+ &(vtc_dd2600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02600 : dd2600 {
+ int e;
+ ~ee02600(); // tgen
+ ee02600(); // tgen
+};
+//SIG(1 ee02600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02600 ::~ee02600(){ note_dtor("ee02600", this);} // tgen
+ee02600 ::ee02600(){ note_ctor("ee02600", this);} // tgen
+
+static void Test_ee02600()
+{
+ extern Class_Descriptor cd_ee02600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02600, buf);
+ ee02600 *dp, &lv = *(dp=new (buf) ee02600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd2600*), ABISELECT(8,4), "ee02600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd2600*), ABISELECT(8,4), "ee02600");
+ check_base_class_offset(lv, (cc600*)(dd2600*), 0, "ee02600");
+ check_base_class_offset(lv, (dd2600*), 0, "ee02600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02600.e");
+ test_class_info(&lv, &cd_ee02600);
+ dp->~ee02600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02600(Test_ee02600, "ee02600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02600C1Ev();
+extern void _ZN7ee02600D1Ev();
+Name_Map name_map_ee02600[] = {
+ NSPAIR(_ZN7ee02600C1Ev),
+ NSPAIR(_ZN7ee02600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd2600;
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+static Base_Class bases_ee02600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2600, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02600[];
+extern void _ZN6dd26003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee02600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02600[0]),
+ (VTBL_ENTRY)&_ZN6dd26003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02600[];
+extern VTBL_ENTRY _ZTV7ee02600[];
+Class_Descriptor cd_ee02600 = { "ee02600", // class name
+ bases_ee02600, 4,
+ &(vtc_ee02600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12600 : virtual dd2600 {
+ int e;
+ ~ee12600(); // tgen
+ ee12600(); // tgen
+};
+//SIG(1 ee12600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12600 ::~ee12600(){ note_dtor("ee12600", this);} // tgen
+ee12600 ::ee12600(){ note_ctor("ee12600", this);} // tgen
+
+static void Test_ee12600()
+{
+ extern Class_Descriptor cd_ee12600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12600, buf);
+ ee12600 *dp, &lv = *(dp=new (buf) ee12600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd2600*), ABISELECT(24,12), "ee12600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd2600*), ABISELECT(24,12), "ee12600");
+ check_base_class_offset(lv, (cc600*)(dd2600*), ABISELECT(16,8), "ee12600");
+ check_base_class_offset(lv, (dd2600*), ABISELECT(16,8), "ee12600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12600.e");
+ test_class_info(&lv, &cd_ee12600);
+ dp->~ee12600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12600(Test_ee12600, "ee12600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12600C1Ev();
+extern void _ZN7ee12600D1Ev();
+Name_Map name_map_ee12600[] = {
+ NSPAIR(_ZN7ee12600C1Ev),
+ NSPAIR(_ZN7ee12600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd2600;
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+static Base_Class bases_ee12600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2600, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12600[];
+extern void _ZN6dd26003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee12600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12600[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12600[0]),
+ (VTBL_ENTRY)&_ZN6dd26003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12600[];
+static VTT_ENTRY vtt_ee12600[] = {
+ {&(_ZTV7ee12600[3]), 3,9},
+ {&(_ZTV7ee12600[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12600[];
+extern VTBL_ENTRY _ZTV7ee12600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12600[];
+Class_Descriptor cd_ee12600 = { "ee12600", // class name
+ bases_ee12600, 4,
+ &(vtc_ee12600[0]), // expected_vtbl_contents
+ &(vtt_ee12600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12600),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22600 : dd2600 {
+ int e;
+ virtual void foo(); // _ZN7ee226003fooEv
+ ~ee22600(); // tgen
+ ee22600(); // tgen
+};
+//SIG(1 ee22600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22600 ::foo(){vfunc_called(this, "_ZN7ee226003fooEv");}
+ee22600 ::~ee22600(){ note_dtor("ee22600", this);} // tgen
+ee22600 ::ee22600(){ note_ctor("ee22600", this);} // tgen
+
+static void Test_ee22600()
+{
+ extern Class_Descriptor cd_ee22600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22600, buf);
+ ee22600 *dp, &lv = *(dp=new (buf) ee22600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd2600*), ABISELECT(8,4), "ee22600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd2600*), ABISELECT(8,4), "ee22600");
+ check_base_class_offset(lv, (cc600*)(dd2600*), 0, "ee22600");
+ check_base_class_offset(lv, (dd2600*), 0, "ee22600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22600.e");
+ test_class_info(&lv, &cd_ee22600);
+ dp->~ee22600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22600(Test_ee22600, "ee22600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22600C1Ev();
+extern void _ZN7ee22600D1Ev();
+Name_Map name_map_ee22600[] = {
+ NSPAIR(_ZN7ee22600C1Ev),
+ NSPAIR(_ZN7ee22600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd2600;
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+static Base_Class bases_ee22600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22600[];
+extern void _ZN7ee226003fooEv();
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee22600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22600[0]),
+ (VTBL_ENTRY)&_ZN7ee226003fooEv,
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22600[];
+extern VTBL_ENTRY _ZTV7ee22600[];
+Class_Descriptor cd_ee22600 = { "ee22600", // class name
+ bases_ee22600, 4,
+ &(vtc_ee22600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32600 : virtual dd2600 {
+ int e;
+ virtual void foo(); // _ZN7ee326003fooEv
+ ~ee32600(); // tgen
+ ee32600(); // tgen
+};
+//SIG(1 ee32600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32600 ::foo(){vfunc_called(this, "_ZN7ee326003fooEv");}
+ee32600 ::~ee32600(){ note_dtor("ee32600", this);} // tgen
+ee32600 ::ee32600(){ note_ctor("ee32600", this);} // tgen
+
+static void Test_ee32600()
+{
+ extern Class_Descriptor cd_ee32600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32600, buf);
+ ee32600 *dp, &lv = *(dp=new (buf) ee32600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd2600*), ABISELECT(24,12), "ee32600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd2600*), ABISELECT(24,12), "ee32600");
+ check_base_class_offset(lv, (cc600*)(dd2600*), ABISELECT(16,8), "ee32600");
+ check_base_class_offset(lv, (dd2600*), ABISELECT(16,8), "ee32600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32600.e");
+ test_class_info(&lv, &cd_ee32600);
+ dp->~ee32600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32600(Test_ee32600, "ee32600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32600C1Ev();
+extern void _ZN7ee32600D1Ev();
+Name_Map name_map_ee32600[] = {
+ NSPAIR(_ZN7ee32600C1Ev),
+ NSPAIR(_ZN7ee32600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd2600;
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+static Base_Class bases_ee32600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32600[];
+extern void _ZN7ee326003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee326003fooEv,_ZTv0_n12_N7ee326003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326003fooEv,_ZThn8_N7ee326003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee32600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32600[0]),
+ (VTBL_ENTRY)&_ZN7ee326003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326003fooEv,_ZTv0_n12_N7ee326003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32600[];
+static VTT_ENTRY vtt_ee32600[] = {
+ {&(_ZTV7ee32600[3]), 3,10},
+ {&(_ZTV7ee32600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32600[];
+extern VTBL_ENTRY _ZTV7ee32600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32600[];
+static VTBL_ENTRY alt_thunk_names186[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326003fooEv,_ZTv0_n12_N7ee326003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326003fooEv,_ZThn8_N7ee326003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32600 = { "ee32600", // class name
+ bases_ee32600, 4,
+ &(vtc_ee32600[0]), // expected_vtbl_contents
+ &(vtt_ee32600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names186,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42600 : dd2600 {
+ int e;
+ virtual void bar(); // _ZN7ee426003barEv
+ ~ee42600(); // tgen
+ ee42600(); // tgen
+};
+//SIG(1 ee42600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42600 ::bar(){vfunc_called(this, "_ZN7ee426003barEv");}
+ee42600 ::~ee42600(){ note_dtor("ee42600", this);} // tgen
+ee42600 ::ee42600(){ note_ctor("ee42600", this);} // tgen
+
+static void Test_ee42600()
+{
+ extern Class_Descriptor cd_ee42600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42600, buf);
+ ee42600 *dp, &lv = *(dp=new (buf) ee42600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd2600*), ABISELECT(8,4), "ee42600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd2600*), ABISELECT(8,4), "ee42600");
+ check_base_class_offset(lv, (cc600*)(dd2600*), 0, "ee42600");
+ check_base_class_offset(lv, (dd2600*), 0, "ee42600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42600.e");
+ test_class_info(&lv, &cd_ee42600);
+ dp->~ee42600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42600(Test_ee42600, "ee42600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42600C1Ev();
+extern void _ZN7ee42600D1Ev();
+Name_Map name_map_ee42600[] = {
+ NSPAIR(_ZN7ee42600C1Ev),
+ NSPAIR(_ZN7ee42600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd2600;
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+static Base_Class bases_ee42600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42600[];
+extern void _ZN6dd26003fooEv();
+extern void _ZN7ee426003barEv();
+static VTBL_ENTRY vtc_ee42600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42600[0]),
+ (VTBL_ENTRY)&_ZN6dd26003fooEv,
+ (VTBL_ENTRY)&_ZN7ee426003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42600[];
+extern VTBL_ENTRY _ZTV7ee42600[];
+Class_Descriptor cd_ee42600 = { "ee42600", // class name
+ bases_ee42600, 4,
+ &(vtc_ee42600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52600 : virtual dd2600 {
+ int e;
+ virtual void bar(); // _ZN7ee526003barEv
+ ~ee52600(); // tgen
+ ee52600(); // tgen
+};
+//SIG(1 ee52600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52600 ::bar(){vfunc_called(this, "_ZN7ee526003barEv");}
+ee52600 ::~ee52600(){ note_dtor("ee52600", this);} // tgen
+ee52600 ::ee52600(){ note_ctor("ee52600", this);} // tgen
+
+static void Test_ee52600()
+{
+ extern Class_Descriptor cd_ee52600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52600, buf);
+ ee52600 *dp, &lv = *(dp=new (buf) ee52600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd2600*), ABISELECT(24,12), "ee52600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd2600*), ABISELECT(24,12), "ee52600");
+ check_base_class_offset(lv, (cc600*)(dd2600*), ABISELECT(16,8), "ee52600");
+ check_base_class_offset(lv, (dd2600*), ABISELECT(16,8), "ee52600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52600.e");
+ test_class_info(&lv, &cd_ee52600);
+ dp->~ee52600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52600(Test_ee52600, "ee52600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52600C1Ev();
+extern void _ZN7ee52600D1Ev();
+Name_Map name_map_ee52600[] = {
+ NSPAIR(_ZN7ee52600C1Ev),
+ NSPAIR(_ZN7ee52600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd2600;
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+static Base_Class bases_ee52600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52600[];
+extern void _ZN7ee526003barEv();
+extern void _ZN6dd26003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526003barEv,_ZTv0_n16_N7ee526003barEv)();
+extern void ABISELECT(_ZThn16_N7ee526003barEv,_ZThn8_N7ee526003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52600[0]),
+ (VTBL_ENTRY)&_ZN7ee526003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52600[0]),
+ (VTBL_ENTRY)&_ZN6dd26003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526003barEv,_ZTv0_n16_N7ee526003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52600[];
+static VTT_ENTRY vtt_ee52600[] = {
+ {&(_ZTV7ee52600[3]), 3,10},
+ {&(_ZTV7ee52600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52600[];
+extern VTBL_ENTRY _ZTV7ee52600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52600[];
+static VTBL_ENTRY alt_thunk_names187[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526003barEv,_ZTv0_n16_N7ee526003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526003barEv,_ZThn8_N7ee526003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52600 = { "ee52600", // class name
+ bases_ee52600, 4,
+ &(vtc_ee52600[0]), // expected_vtbl_contents
+ &(vtt_ee52600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names187,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62600 : dd2600 {
+ int e;
+ virtual void foo(); // _ZN7ee626003fooEv
+ virtual void bar(); // _ZN7ee626003barEv
+ ~ee62600(); // tgen
+ ee62600(); // tgen
+};
+//SIG(1 ee62600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62600 ::foo(){vfunc_called(this, "_ZN7ee626003fooEv");}
+void ee62600 ::bar(){vfunc_called(this, "_ZN7ee626003barEv");}
+ee62600 ::~ee62600(){ note_dtor("ee62600", this);} // tgen
+ee62600 ::ee62600(){ note_ctor("ee62600", this);} // tgen
+
+static void Test_ee62600()
+{
+ extern Class_Descriptor cd_ee62600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62600, buf);
+ ee62600 *dp, &lv = *(dp=new (buf) ee62600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd2600*), ABISELECT(8,4), "ee62600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd2600*), ABISELECT(8,4), "ee62600");
+ check_base_class_offset(lv, (cc600*)(dd2600*), 0, "ee62600");
+ check_base_class_offset(lv, (dd2600*), 0, "ee62600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62600.e");
+ test_class_info(&lv, &cd_ee62600);
+ dp->~ee62600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62600(Test_ee62600, "ee62600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62600C1Ev();
+extern void _ZN7ee62600D1Ev();
+Name_Map name_map_ee62600[] = {
+ NSPAIR(_ZN7ee62600C1Ev),
+ NSPAIR(_ZN7ee62600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd2600;
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+static Base_Class bases_ee62600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62600[];
+extern void _ZN7ee626003fooEv();
+extern void _ZN7ee626003barEv();
+static VTBL_ENTRY vtc_ee62600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62600[0]),
+ (VTBL_ENTRY)&_ZN7ee626003fooEv,
+ (VTBL_ENTRY)&_ZN7ee626003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62600[];
+extern VTBL_ENTRY _ZTV7ee62600[];
+Class_Descriptor cd_ee62600 = { "ee62600", // class name
+ bases_ee62600, 4,
+ &(vtc_ee62600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72600 : virtual dd2600 {
+ int e;
+ virtual void foo(); // _ZN7ee726003fooEv
+ virtual void bar(); // _ZN7ee726003barEv
+ ~ee72600(); // tgen
+ ee72600(); // tgen
+};
+//SIG(1 ee72600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72600 ::foo(){vfunc_called(this, "_ZN7ee726003fooEv");}
+void ee72600 ::bar(){vfunc_called(this, "_ZN7ee726003barEv");}
+ee72600 ::~ee72600(){ note_dtor("ee72600", this);} // tgen
+ee72600 ::ee72600(){ note_ctor("ee72600", this);} // tgen
+
+static void Test_ee72600()
+{
+ extern Class_Descriptor cd_ee72600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72600, buf);
+ ee72600 *dp, &lv = *(dp=new (buf) ee72600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd2600*), ABISELECT(24,12), "ee72600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd2600*), ABISELECT(24,12), "ee72600");
+ check_base_class_offset(lv, (cc600*)(dd2600*), ABISELECT(16,8), "ee72600");
+ check_base_class_offset(lv, (dd2600*), ABISELECT(16,8), "ee72600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72600.e");
+ test_class_info(&lv, &cd_ee72600);
+ dp->~ee72600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72600(Test_ee72600, "ee72600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72600C1Ev();
+extern void _ZN7ee72600D1Ev();
+Name_Map name_map_ee72600[] = {
+ NSPAIR(_ZN7ee72600C1Ev),
+ NSPAIR(_ZN7ee72600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd2600;
+extern VTBL_ENTRY _ZTI6dd2600[];
+extern VTBL_ENTRY _ZTV6dd2600[];
+static Base_Class bases_ee72600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72600[];
+extern void _ZN7ee726003fooEv();
+extern void _ZN7ee726003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726003fooEv,_ZTv0_n12_N7ee726003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726003fooEv,_ZThn8_N7ee726003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726003barEv,_ZTv0_n16_N7ee726003barEv)();
+extern void ABISELECT(_ZThn16_N7ee726003barEv,_ZThn8_N7ee726003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72600[0]),
+ (VTBL_ENTRY)&_ZN7ee726003fooEv,
+ (VTBL_ENTRY)&_ZN7ee726003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726003fooEv,_ZTv0_n12_N7ee726003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726003barEv,_ZTv0_n16_N7ee726003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72600[];
+static VTT_ENTRY vtt_ee72600[] = {
+ {&(_ZTV7ee72600[3]), 3,11},
+ {&(_ZTV7ee72600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72600[];
+extern VTBL_ENTRY _ZTV7ee72600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72600[];
+static VTBL_ENTRY alt_thunk_names188[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726003barEv,_ZTv0_n16_N7ee726003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726003barEv,_ZThn8_N7ee726003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726003fooEv,_ZTv0_n12_N7ee726003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726003fooEv,_ZThn8_N7ee726003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72600 = { "ee72600", // class name
+ bases_ee72600, 4,
+ &(vtc_ee72600[0]), // expected_vtbl_contents
+ &(vtt_ee72600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names188,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3600 : virtual cc600 {
+ int d;
+ virtual void foo(); // _ZN6dd36003fooEv
+ ~dd3600(); // tgen
+ dd3600(); // tgen
+};
+//SIG(-1 dd3600) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3600 ::foo(){vfunc_called(this, "_ZN6dd36003fooEv");}
+dd3600 ::~dd3600(){ note_dtor("dd3600", this);} // tgen
+dd3600 ::dd3600(){ note_ctor("dd3600", this);} // tgen
+
+static void Test_dd3600()
+{
+ extern Class_Descriptor cd_dd3600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3600, buf);
+ dd3600 *dp, &lv = *(dp=new (buf) dd3600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,12), "dd3600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,12), "dd3600");
+ check_base_class_offset(lv, (cc600*), ABISELECT(16,8), "dd3600");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3600.d");
+ test_class_info(&lv, &cd_dd3600);
+ dp->~dd3600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3600(Test_dd3600, "dd3600", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3600C1Ev();
+extern void _ZN6dd3600D1Ev();
+Name_Map name_map_dd3600[] = {
+ NSPAIR(_ZN6dd3600C1Ev),
+ NSPAIR(_ZN6dd3600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+static Base_Class bases_dd3600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern void _ZN6dd36003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_dd3600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3600[];
+static VTT_ENTRY vtt_dd3600[] = {
+ {&(_ZTV6dd3600[3]), 3,10},
+ {&(_ZTV6dd3600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static VTBL_ENTRY alt_thunk_names189[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3600 = { "dd3600", // class name
+ bases_dd3600, 3,
+ &(vtc_dd3600[0]), // expected_vtbl_contents
+ &(vtt_dd3600[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3600),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names189,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03600 : dd3600 {
+ int e;
+ ~ee03600(); // tgen
+ ee03600(); // tgen
+};
+//SIG(1 ee03600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03600 ::~ee03600(){ note_dtor("ee03600", this);} // tgen
+ee03600 ::ee03600(){ note_ctor("ee03600", this);} // tgen
+
+static void Test_ee03600()
+{
+ extern Class_Descriptor cd_ee03600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03600, buf);
+ ee03600 *dp, &lv = *(dp=new (buf) ee03600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee03600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee03600");
+ check_base_class_offset(lv, (cc600*)(dd3600*), ABISELECT(16,12), "ee03600");
+ check_base_class_offset(lv, (dd3600*), 0, "ee03600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03600.e");
+ test_class_info(&lv, &cd_ee03600);
+ dp->~ee03600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03600(Test_ee03600, "ee03600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03600C1Ev();
+extern void _ZN7ee03600D1Ev();
+Name_Map name_map_ee03600[] = {
+ NSPAIR(_ZN7ee03600C1Ev),
+ NSPAIR(_ZN7ee03600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd3600;
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static Base_Class bases_ee03600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03600[];
+extern void _ZN6dd36003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee03600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03600[];
+extern void _ZN6dd36003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3600__7ee03600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd3600__7ee03600[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee03600[] = {
+ {&(_ZTV7ee03600[3]), 3,10},
+ {&(_tg__ZTV6dd3600__7ee03600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd3600__7ee03600[4]), 4,6},
+ {&(_ZTV7ee03600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03600[];
+extern VTBL_ENTRY _ZTV7ee03600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03600[];
+static VTBL_ENTRY alt_thunk_names190[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03600 = { "ee03600", // class name
+ bases_ee03600, 4,
+ &(vtc_ee03600[0]), // expected_vtbl_contents
+ &(vtt_ee03600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names190,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13600 : virtual dd3600 {
+ int e;
+ ~ee13600(); // tgen
+ ee13600(); // tgen
+};
+//SIG(1 ee13600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13600 ::~ee13600(){ note_dtor("ee13600", this);} // tgen
+ee13600 ::ee13600(){ note_ctor("ee13600", this);} // tgen
+
+static void Test_ee13600()
+{
+ extern Class_Descriptor cd_ee13600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13600, buf);
+ ee13600 *dp, &lv = *(dp=new (buf) ee13600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee13600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee13600");
+ check_base_class_offset(lv, (cc600*)(dd3600*), ABISELECT(32,16), "ee13600");
+ check_base_class_offset(lv, (dd3600*), ABISELECT(16,8), "ee13600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13600.e");
+ test_class_info(&lv, &cd_ee13600);
+ dp->~ee13600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13600(Test_ee13600, "ee13600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13600C1Ev();
+extern void _ZN7ee13600D1Ev();
+Name_Map name_map_ee13600[] = {
+ NSPAIR(_ZN7ee13600C1Ev),
+ NSPAIR(_ZN7ee13600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd3600;
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static Base_Class bases_ee13600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13600[];
+extern void _ZN6dd36003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee13600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13600[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13600[];
+extern void _ZN6dd36003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3600__7ee13600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd3600__7ee13600[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee13600[] = {
+ {&(_ZTV7ee13600[4]), 4,15},
+ {&(_ZTV7ee13600[8]), 8,15},
+ {&(_ZTV7ee13600[13]), 13,15},
+ {&(_tg__ZTV6dd3600__7ee13600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd3600__7ee13600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13600[];
+extern VTBL_ENTRY _ZTV7ee13600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13600[];
+static VTBL_ENTRY alt_thunk_names191[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13600 = { "ee13600", // class name
+ bases_ee13600, 4,
+ &(vtc_ee13600[0]), // expected_vtbl_contents
+ &(vtt_ee13600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13600),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names191,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23600 : dd3600 {
+ int e;
+ virtual void foo(); // _ZN7ee236003fooEv
+ ~ee23600(); // tgen
+ ee23600(); // tgen
+};
+//SIG(1 ee23600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23600 ::foo(){vfunc_called(this, "_ZN7ee236003fooEv");}
+ee23600 ::~ee23600(){ note_dtor("ee23600", this);} // tgen
+ee23600 ::ee23600(){ note_ctor("ee23600", this);} // tgen
+
+static void Test_ee23600()
+{
+ extern Class_Descriptor cd_ee23600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23600, buf);
+ ee23600 *dp, &lv = *(dp=new (buf) ee23600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee23600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee23600");
+ check_base_class_offset(lv, (cc600*)(dd3600*), ABISELECT(16,12), "ee23600");
+ check_base_class_offset(lv, (dd3600*), 0, "ee23600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23600.e");
+ test_class_info(&lv, &cd_ee23600);
+ dp->~ee23600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23600(Test_ee23600, "ee23600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23600C1Ev();
+extern void _ZN7ee23600D1Ev();
+Name_Map name_map_ee23600[] = {
+ NSPAIR(_ZN7ee23600C1Ev),
+ NSPAIR(_ZN7ee23600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd3600;
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static Base_Class bases_ee23600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23600[];
+extern void _ZN7ee236003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee236003fooEv,_ZTv0_n12_N7ee236003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236003fooEv,_ZThn12_N7ee236003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee23600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23600[0]),
+ (VTBL_ENTRY)&_ZN7ee236003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236003fooEv,_ZTv0_n12_N7ee236003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23600[];
+extern void _ZN6dd36003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3600__7ee23600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd3600__7ee23600[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee23600[] = {
+ {&(_ZTV7ee23600[3]), 3,10},
+ {&(_tg__ZTV6dd3600__7ee23600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd3600__7ee23600[4]), 4,6},
+ {&(_ZTV7ee23600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23600[];
+extern VTBL_ENTRY _ZTV7ee23600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23600[];
+static VTBL_ENTRY alt_thunk_names192[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236003fooEv,_ZTv0_n12_N7ee236003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236003fooEv,_ZThn12_N7ee236003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23600 = { "ee23600", // class name
+ bases_ee23600, 4,
+ &(vtc_ee23600[0]), // expected_vtbl_contents
+ &(vtt_ee23600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names192,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33600 : virtual dd3600 {
+ int e;
+ virtual void foo(); // _ZN7ee336003fooEv
+ ~ee33600(); // tgen
+ ee33600(); // tgen
+};
+//SIG(1 ee33600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33600 ::foo(){vfunc_called(this, "_ZN7ee336003fooEv");}
+ee33600 ::~ee33600(){ note_dtor("ee33600", this);} // tgen
+ee33600 ::ee33600(){ note_ctor("ee33600", this);} // tgen
+
+static void Test_ee33600()
+{
+ extern Class_Descriptor cd_ee33600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33600, buf);
+ ee33600 *dp, &lv = *(dp=new (buf) ee33600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee33600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee33600");
+ check_base_class_offset(lv, (cc600*)(dd3600*), ABISELECT(32,16), "ee33600");
+ check_base_class_offset(lv, (dd3600*), ABISELECT(16,8), "ee33600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33600.e");
+ test_class_info(&lv, &cd_ee33600);
+ dp->~ee33600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33600(Test_ee33600, "ee33600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33600C1Ev();
+extern void _ZN7ee33600D1Ev();
+Name_Map name_map_ee33600[] = {
+ NSPAIR(_ZN7ee33600C1Ev),
+ NSPAIR(_ZN7ee33600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd3600;
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static Base_Class bases_ee33600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3600, 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 _ZTI7ee33600[];
+extern void _ZN7ee336003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336003fooEv,_ZTv0_n16_N7ee336003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336003fooEv,_ZThn8_N7ee336003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336003fooEv,_ZTv0_n12_N7ee336003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336003fooEv,_ZThn16_N7ee336003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY vtc_ee33600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33600[0]),
+ (VTBL_ENTRY)&_ZN7ee336003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336003fooEv,_ZTv0_n16_N7ee336003fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336003fooEv,_ZTv0_n12_N7ee336003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33600[];
+extern void _ZN6dd36003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3600__7ee33600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd3600__7ee33600[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee33600[] = {
+ {&(_ZTV7ee33600[4]), 4,16},
+ {&(_ZTV7ee33600[9]), 9,16},
+ {&(_ZTV7ee33600[14]), 14,16},
+ {&(_tg__ZTV6dd3600__7ee33600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd3600__7ee33600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33600[];
+extern VTBL_ENTRY _ZTV7ee33600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33600[];
+static VTBL_ENTRY alt_thunk_names193[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336003fooEv,_ZTv0_n12_N7ee336003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336003fooEv,_ZThn16_N7ee336003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336003fooEv,_ZTv0_n16_N7ee336003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336003fooEv,_ZThn8_N7ee336003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33600 = { "ee33600", // class name
+ bases_ee33600, 4,
+ &(vtc_ee33600[0]), // expected_vtbl_contents
+ &(vtt_ee33600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33600),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names193,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43600 : dd3600 {
+ int e;
+ virtual void bar(); // _ZN7ee436003barEv
+ ~ee43600(); // tgen
+ ee43600(); // tgen
+};
+//SIG(1 ee43600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43600 ::bar(){vfunc_called(this, "_ZN7ee436003barEv");}
+ee43600 ::~ee43600(){ note_dtor("ee43600", this);} // tgen
+ee43600 ::ee43600(){ note_ctor("ee43600", this);} // tgen
+
+static void Test_ee43600()
+{
+ extern Class_Descriptor cd_ee43600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43600, buf);
+ ee43600 *dp, &lv = *(dp=new (buf) ee43600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee43600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee43600");
+ check_base_class_offset(lv, (cc600*)(dd3600*), ABISELECT(16,12), "ee43600");
+ check_base_class_offset(lv, (dd3600*), 0, "ee43600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43600.e");
+ test_class_info(&lv, &cd_ee43600);
+ dp->~ee43600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43600(Test_ee43600, "ee43600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43600C1Ev();
+extern void _ZN7ee43600D1Ev();
+Name_Map name_map_ee43600[] = {
+ NSPAIR(_ZN7ee43600C1Ev),
+ NSPAIR(_ZN7ee43600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd3600;
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static Base_Class bases_ee43600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43600[];
+extern void _ZN6dd36003fooEv();
+extern void _ZN7ee436003barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436003barEv,_ZTv0_n16_N7ee436003barEv)();
+extern void ABISELECT(_ZThn16_N7ee436003barEv,_ZThn12_N7ee436003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+ (VTBL_ENTRY)&_ZN7ee436003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436003barEv,_ZTv0_n16_N7ee436003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43600[];
+extern void _ZN6dd36003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3600__7ee43600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd3600__7ee43600[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee43600[] = {
+ {&(_ZTV7ee43600[3]), 3,11},
+ {&(_tg__ZTV6dd3600__7ee43600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd3600__7ee43600[4]), 4,6},
+ {&(_ZTV7ee43600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43600[];
+extern VTBL_ENTRY _ZTV7ee43600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43600[];
+static VTBL_ENTRY alt_thunk_names194[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436003barEv,_ZTv0_n16_N7ee436003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436003barEv,_ZThn12_N7ee436003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43600 = { "ee43600", // class name
+ bases_ee43600, 4,
+ &(vtc_ee43600[0]), // expected_vtbl_contents
+ &(vtt_ee43600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names194,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53600 : virtual dd3600 {
+ int e;
+ virtual void bar(); // _ZN7ee536003barEv
+ ~ee53600(); // tgen
+ ee53600(); // tgen
+};
+//SIG(1 ee53600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53600 ::bar(){vfunc_called(this, "_ZN7ee536003barEv");}
+ee53600 ::~ee53600(){ note_dtor("ee53600", this);} // tgen
+ee53600 ::ee53600(){ note_ctor("ee53600", this);} // tgen
+
+static void Test_ee53600()
+{
+ extern Class_Descriptor cd_ee53600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53600, buf);
+ ee53600 *dp, &lv = *(dp=new (buf) ee53600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee53600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee53600");
+ check_base_class_offset(lv, (cc600*)(dd3600*), ABISELECT(32,16), "ee53600");
+ check_base_class_offset(lv, (dd3600*), ABISELECT(16,8), "ee53600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53600.e");
+ test_class_info(&lv, &cd_ee53600);
+ dp->~ee53600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53600(Test_ee53600, "ee53600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53600C1Ev();
+extern void _ZN7ee53600D1Ev();
+Name_Map name_map_ee53600[] = {
+ NSPAIR(_ZN7ee53600C1Ev),
+ NSPAIR(_ZN7ee53600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd3600;
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static Base_Class bases_ee53600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3600, 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 _ZTI7ee53600[];
+extern void _ZN7ee536003barEv();
+extern void _ZN6dd36003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536003barEv,_ZTv0_n16_N7ee536003barEv)();
+extern void ABISELECT(_ZThn32_N7ee536003barEv,_ZThn16_N7ee536003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53600[0]),
+ (VTBL_ENTRY)&_ZN7ee536003barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536003barEv,_ZTv0_n16_N7ee536003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53600[];
+extern void _ZN6dd36003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3600__7ee53600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd3600__7ee53600[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee53600[] = {
+ {&(_ZTV7ee53600[4]), 4,16},
+ {&(_ZTV7ee53600[9]), 9,16},
+ {&(_ZTV7ee53600[14]), 14,16},
+ {&(_tg__ZTV6dd3600__7ee53600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd3600__7ee53600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53600[];
+extern VTBL_ENTRY _ZTV7ee53600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53600[];
+static VTBL_ENTRY alt_thunk_names195[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536003barEv,_ZTv0_n16_N7ee536003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536003barEv,_ZThn16_N7ee536003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53600 = { "ee53600", // class name
+ bases_ee53600, 4,
+ &(vtc_ee53600[0]), // expected_vtbl_contents
+ &(vtt_ee53600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53600),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names195,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63600 : dd3600 {
+ int e;
+ virtual void foo(); // _ZN7ee636003fooEv
+ virtual void bar(); // _ZN7ee636003barEv
+ ~ee63600(); // tgen
+ ee63600(); // tgen
+};
+//SIG(1 ee63600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63600 ::foo(){vfunc_called(this, "_ZN7ee636003fooEv");}
+void ee63600 ::bar(){vfunc_called(this, "_ZN7ee636003barEv");}
+ee63600 ::~ee63600(){ note_dtor("ee63600", this);} // tgen
+ee63600 ::ee63600(){ note_ctor("ee63600", this);} // tgen
+
+static void Test_ee63600()
+{
+ extern Class_Descriptor cd_ee63600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63600, buf);
+ ee63600 *dp, &lv = *(dp=new (buf) ee63600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee63600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee63600");
+ check_base_class_offset(lv, (cc600*)(dd3600*), ABISELECT(16,12), "ee63600");
+ check_base_class_offset(lv, (dd3600*), 0, "ee63600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63600.e");
+ test_class_info(&lv, &cd_ee63600);
+ dp->~ee63600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63600(Test_ee63600, "ee63600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63600C1Ev();
+extern void _ZN7ee63600D1Ev();
+Name_Map name_map_ee63600[] = {
+ NSPAIR(_ZN7ee63600C1Ev),
+ NSPAIR(_ZN7ee63600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd3600;
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static Base_Class bases_ee63600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63600[];
+extern void _ZN7ee636003fooEv();
+extern void _ZN7ee636003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636003fooEv,_ZTv0_n12_N7ee636003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636003fooEv,_ZThn12_N7ee636003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636003barEv,_ZTv0_n16_N7ee636003barEv)();
+extern void ABISELECT(_ZThn16_N7ee636003barEv,_ZThn12_N7ee636003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63600[0]),
+ (VTBL_ENTRY)&_ZN7ee636003fooEv,
+ (VTBL_ENTRY)&_ZN7ee636003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636003fooEv,_ZTv0_n12_N7ee636003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636003barEv,_ZTv0_n16_N7ee636003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63600[];
+extern void _ZN6dd36003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3600__7ee63600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd3600__7ee63600[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee63600[] = {
+ {&(_ZTV7ee63600[3]), 3,11},
+ {&(_tg__ZTV6dd3600__7ee63600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd3600__7ee63600[4]), 4,6},
+ {&(_ZTV7ee63600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63600[];
+extern VTBL_ENTRY _ZTV7ee63600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63600[];
+static VTBL_ENTRY alt_thunk_names196[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn12_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636003barEv,_ZTv0_n16_N7ee636003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636003barEv,_ZThn12_N7ee636003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636003fooEv,_ZTv0_n12_N7ee636003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636003fooEv,_ZThn12_N7ee636003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63600 = { "ee63600", // class name
+ bases_ee63600, 4,
+ &(vtc_ee63600[0]), // expected_vtbl_contents
+ &(vtt_ee63600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names196,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73600 : virtual dd3600 {
+ int e;
+ virtual void foo(); // _ZN7ee736003fooEv
+ virtual void bar(); // _ZN7ee736003barEv
+ ~ee73600(); // tgen
+ ee73600(); // tgen
+};
+//SIG(1 ee73600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73600 ::foo(){vfunc_called(this, "_ZN7ee736003fooEv");}
+void ee73600 ::bar(){vfunc_called(this, "_ZN7ee736003barEv");}
+ee73600 ::~ee73600(){ note_dtor("ee73600", this);} // tgen
+ee73600 ::ee73600(){ note_ctor("ee73600", this);} // tgen
+
+static void Test_ee73600()
+{
+ extern Class_Descriptor cd_ee73600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73600, buf);
+ ee73600 *dp, &lv = *(dp=new (buf) ee73600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee73600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee73600");
+ check_base_class_offset(lv, (cc600*)(dd3600*), ABISELECT(32,16), "ee73600");
+ check_base_class_offset(lv, (dd3600*), ABISELECT(16,8), "ee73600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73600.e");
+ test_class_info(&lv, &cd_ee73600);
+ dp->~ee73600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73600(Test_ee73600, "ee73600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73600C1Ev();
+extern void _ZN7ee73600D1Ev();
+Name_Map name_map_ee73600[] = {
+ NSPAIR(_ZN7ee73600C1Ev),
+ NSPAIR(_ZN7ee73600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd3600;
+extern VTBL_ENTRY _ZTI6dd3600[];
+extern VTBL_ENTRY _ZTV6dd3600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3600[];
+static Base_Class bases_ee73600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3600, 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 _ZTI7ee73600[];
+extern void _ZN7ee736003fooEv();
+extern void _ZN7ee736003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736003fooEv,_ZTv0_n16_N7ee736003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736003fooEv,_ZThn8_N7ee736003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736003fooEv,_ZTv0_n12_N7ee736003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736003fooEv,_ZThn16_N7ee736003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736003barEv,_ZTv0_n16_N7ee736003barEv)();
+extern void ABISELECT(_ZThn32_N7ee736003barEv,_ZThn16_N7ee736003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73600[0]),
+ (VTBL_ENTRY)&_ZN7ee736003fooEv,
+ (VTBL_ENTRY)&_ZN7ee736003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736003fooEv,_ZTv0_n16_N7ee736003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736003fooEv,_ZTv0_n12_N7ee736003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736003barEv,_ZTv0_n16_N7ee736003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73600[];
+extern void _ZN6dd36003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3600__7ee73600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&_ZN6dd36003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv)() __attribute__((weak));
+extern void _ZN5cc6003barEv();
+static VTBL_ENTRY _tg__ZTV5cc600__6dd3600__7ee73600[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv),
+ (VTBL_ENTRY)&_ZN5cc6003barEv,
+};
+static VTT_ENTRY vtt_ee73600[] = {
+ {&(_ZTV7ee73600[4]), 4,17},
+ {&(_ZTV7ee73600[10]), 10,17},
+ {&(_ZTV7ee73600[15]), 15,17},
+ {&(_tg__ZTV6dd3600__7ee73600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd3600__7ee73600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73600[];
+extern VTBL_ENTRY _ZTV7ee73600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73600[];
+static VTBL_ENTRY alt_thunk_names197[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36003fooEv,_ZTv0_n12_N6dd36003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36003fooEv,_ZThn8_N6dd36003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736003barEv,_ZTv0_n16_N7ee736003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736003barEv,_ZThn16_N7ee736003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736003fooEv,_ZTv0_n12_N7ee736003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736003fooEv,_ZThn16_N7ee736003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736003fooEv,_ZTv0_n16_N7ee736003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736003fooEv,_ZThn8_N7ee736003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73600 = { "ee73600", // class name
+ bases_ee73600, 4,
+ &(vtc_ee73600[0]), // expected_vtbl_contents
+ &(vtt_ee73600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73600),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names197,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4600 : cc600 {
+ int d;
+ virtual void bar(); // _ZN6dd46003barEv
+ ~dd4600(); // tgen
+ dd4600(); // tgen
+};
+//SIG(-1 dd4600) C1{ BC2{ BC3{ BC4{ Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4600 ::bar(){vfunc_called(this, "_ZN6dd46003barEv");}
+dd4600 ::~dd4600(){ note_dtor("dd4600", this);} // tgen
+dd4600 ::dd4600(){ note_ctor("dd4600", this);} // tgen
+
+static void Test_dd4600()
+{
+ extern Class_Descriptor cd_dd4600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4600, buf);
+ dd4600 *dp, &lv = *(dp=new (buf) dd4600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(8,4), "dd4600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(8,4), "dd4600");
+ check_base_class_offset(lv, (cc600*), 0, "dd4600");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4600.d");
+ test_class_info(&lv, &cd_dd4600);
+ dp->~dd4600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4600(Test_dd4600, "dd4600", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4600C1Ev();
+extern void _ZN6dd4600D1Ev();
+Name_Map name_map_dd4600[] = {
+ NSPAIR(_ZN6dd4600C1Ev),
+ NSPAIR(_ZN6dd4600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+static Base_Class bases_dd4600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN6dd46003barEv();
+static VTBL_ENTRY vtc_dd4600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN6dd46003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+Class_Descriptor cd_dd4600 = { "dd4600", // class name
+ bases_dd4600, 3,
+ &(vtc_dd4600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04600 : dd4600 {
+ int e;
+ ~ee04600(); // tgen
+ ee04600(); // tgen
+};
+//SIG(1 ee04600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04600 ::~ee04600(){ note_dtor("ee04600", this);} // tgen
+ee04600 ::ee04600(){ note_ctor("ee04600", this);} // tgen
+
+static void Test_ee04600()
+{
+ extern Class_Descriptor cd_ee04600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04600, buf);
+ ee04600 *dp, &lv = *(dp=new (buf) ee04600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd4600*), ABISELECT(8,4), "ee04600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd4600*), ABISELECT(8,4), "ee04600");
+ check_base_class_offset(lv, (cc600*)(dd4600*), 0, "ee04600");
+ check_base_class_offset(lv, (dd4600*), 0, "ee04600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04600.e");
+ test_class_info(&lv, &cd_ee04600);
+ dp->~ee04600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04600(Test_ee04600, "ee04600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04600C1Ev();
+extern void _ZN7ee04600D1Ev();
+Name_Map name_map_ee04600[] = {
+ NSPAIR(_ZN7ee04600C1Ev),
+ NSPAIR(_ZN7ee04600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd4600;
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+static Base_Class bases_ee04600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4600, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN6dd46003barEv();
+static VTBL_ENTRY vtc_ee04600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN6dd46003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04600[];
+extern VTBL_ENTRY _ZTV7ee04600[];
+Class_Descriptor cd_ee04600 = { "ee04600", // class name
+ bases_ee04600, 4,
+ &(vtc_ee04600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14600 : virtual dd4600 {
+ int e;
+ ~ee14600(); // tgen
+ ee14600(); // tgen
+};
+//SIG(1 ee14600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14600 ::~ee14600(){ note_dtor("ee14600", this);} // tgen
+ee14600 ::ee14600(){ note_ctor("ee14600", this);} // tgen
+
+static void Test_ee14600()
+{
+ extern Class_Descriptor cd_ee14600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14600, buf);
+ ee14600 *dp, &lv = *(dp=new (buf) ee14600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd4600*), ABISELECT(24,12), "ee14600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd4600*), ABISELECT(24,12), "ee14600");
+ check_base_class_offset(lv, (cc600*)(dd4600*), ABISELECT(16,8), "ee14600");
+ check_base_class_offset(lv, (dd4600*), ABISELECT(16,8), "ee14600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14600.e");
+ test_class_info(&lv, &cd_ee14600);
+ dp->~ee14600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14600(Test_ee14600, "ee14600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14600C1Ev();
+extern void _ZN7ee14600D1Ev();
+Name_Map name_map_ee14600[] = {
+ NSPAIR(_ZN7ee14600C1Ev),
+ NSPAIR(_ZN7ee14600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd4600;
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+static Base_Class bases_ee14600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4600, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN6dd46003barEv();
+static VTBL_ENTRY vtc_ee14600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14600[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN6dd46003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14600[];
+static VTT_ENTRY vtt_ee14600[] = {
+ {&(_ZTV7ee14600[3]), 3,9},
+ {&(_ZTV7ee14600[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14600[];
+extern VTBL_ENTRY _ZTV7ee14600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14600[];
+Class_Descriptor cd_ee14600 = { "ee14600", // class name
+ bases_ee14600, 4,
+ &(vtc_ee14600[0]), // expected_vtbl_contents
+ &(vtt_ee14600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14600),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24600 : dd4600 {
+ int e;
+ virtual void foo(); // _ZN7ee246003fooEv
+ ~ee24600(); // tgen
+ ee24600(); // tgen
+};
+//SIG(1 ee24600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24600 ::foo(){vfunc_called(this, "_ZN7ee246003fooEv");}
+ee24600 ::~ee24600(){ note_dtor("ee24600", this);} // tgen
+ee24600 ::ee24600(){ note_ctor("ee24600", this);} // tgen
+
+static void Test_ee24600()
+{
+ extern Class_Descriptor cd_ee24600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24600, buf);
+ ee24600 *dp, &lv = *(dp=new (buf) ee24600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd4600*), ABISELECT(8,4), "ee24600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd4600*), ABISELECT(8,4), "ee24600");
+ check_base_class_offset(lv, (cc600*)(dd4600*), 0, "ee24600");
+ check_base_class_offset(lv, (dd4600*), 0, "ee24600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24600.e");
+ test_class_info(&lv, &cd_ee24600);
+ dp->~ee24600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24600(Test_ee24600, "ee24600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24600C1Ev();
+extern void _ZN7ee24600D1Ev();
+Name_Map name_map_ee24600[] = {
+ NSPAIR(_ZN7ee24600C1Ev),
+ NSPAIR(_ZN7ee24600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd4600;
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+static Base_Class bases_ee24600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24600[];
+extern void _ZN7ee246003fooEv();
+extern void _ZN6dd46003barEv();
+static VTBL_ENTRY vtc_ee24600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24600[0]),
+ (VTBL_ENTRY)&_ZN7ee246003fooEv,
+ (VTBL_ENTRY)&_ZN6dd46003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24600[];
+extern VTBL_ENTRY _ZTV7ee24600[];
+Class_Descriptor cd_ee24600 = { "ee24600", // class name
+ bases_ee24600, 4,
+ &(vtc_ee24600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34600 : virtual dd4600 {
+ int e;
+ virtual void foo(); // _ZN7ee346003fooEv
+ ~ee34600(); // tgen
+ ee34600(); // tgen
+};
+//SIG(1 ee34600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34600 ::foo(){vfunc_called(this, "_ZN7ee346003fooEv");}
+ee34600 ::~ee34600(){ note_dtor("ee34600", this);} // tgen
+ee34600 ::ee34600(){ note_ctor("ee34600", this);} // tgen
+
+static void Test_ee34600()
+{
+ extern Class_Descriptor cd_ee34600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34600, buf);
+ ee34600 *dp, &lv = *(dp=new (buf) ee34600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd4600*), ABISELECT(24,12), "ee34600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd4600*), ABISELECT(24,12), "ee34600");
+ check_base_class_offset(lv, (cc600*)(dd4600*), ABISELECT(16,8), "ee34600");
+ check_base_class_offset(lv, (dd4600*), ABISELECT(16,8), "ee34600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34600.e");
+ test_class_info(&lv, &cd_ee34600);
+ dp->~ee34600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34600(Test_ee34600, "ee34600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34600C1Ev();
+extern void _ZN7ee34600D1Ev();
+Name_Map name_map_ee34600[] = {
+ NSPAIR(_ZN7ee34600C1Ev),
+ NSPAIR(_ZN7ee34600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd4600;
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+static Base_Class bases_ee34600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34600[];
+extern void _ZN7ee346003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee346003fooEv,_ZTv0_n12_N7ee346003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346003fooEv,_ZThn8_N7ee346003fooEv)() __attribute__((weak));
+extern void _ZN6dd46003barEv();
+static VTBL_ENTRY vtc_ee34600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34600[0]),
+ (VTBL_ENTRY)&_ZN7ee346003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346003fooEv,_ZTv0_n12_N7ee346003fooEv),
+ (VTBL_ENTRY)&_ZN6dd46003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34600[];
+static VTT_ENTRY vtt_ee34600[] = {
+ {&(_ZTV7ee34600[3]), 3,10},
+ {&(_ZTV7ee34600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34600[];
+extern VTBL_ENTRY _ZTV7ee34600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34600[];
+static VTBL_ENTRY alt_thunk_names198[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346003fooEv,_ZTv0_n12_N7ee346003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346003fooEv,_ZThn8_N7ee346003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34600 = { "ee34600", // class name
+ bases_ee34600, 4,
+ &(vtc_ee34600[0]), // expected_vtbl_contents
+ &(vtt_ee34600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names198,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44600 : dd4600 {
+ int e;
+ virtual void bar(); // _ZN7ee446003barEv
+ ~ee44600(); // tgen
+ ee44600(); // tgen
+};
+//SIG(1 ee44600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44600 ::bar(){vfunc_called(this, "_ZN7ee446003barEv");}
+ee44600 ::~ee44600(){ note_dtor("ee44600", this);} // tgen
+ee44600 ::ee44600(){ note_ctor("ee44600", this);} // tgen
+
+static void Test_ee44600()
+{
+ extern Class_Descriptor cd_ee44600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44600, buf);
+ ee44600 *dp, &lv = *(dp=new (buf) ee44600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd4600*), ABISELECT(8,4), "ee44600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd4600*), ABISELECT(8,4), "ee44600");
+ check_base_class_offset(lv, (cc600*)(dd4600*), 0, "ee44600");
+ check_base_class_offset(lv, (dd4600*), 0, "ee44600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44600.e");
+ test_class_info(&lv, &cd_ee44600);
+ dp->~ee44600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44600(Test_ee44600, "ee44600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44600C1Ev();
+extern void _ZN7ee44600D1Ev();
+Name_Map name_map_ee44600[] = {
+ NSPAIR(_ZN7ee44600C1Ev),
+ NSPAIR(_ZN7ee44600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd4600;
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+static Base_Class bases_ee44600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44600[];
+extern void _ZN5cc6003fooEv();
+extern void _ZN7ee446003barEv();
+static VTBL_ENTRY vtc_ee44600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&_ZN7ee446003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44600[];
+extern VTBL_ENTRY _ZTV7ee44600[];
+Class_Descriptor cd_ee44600 = { "ee44600", // class name
+ bases_ee44600, 4,
+ &(vtc_ee44600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54600 : virtual dd4600 {
+ int e;
+ virtual void bar(); // _ZN7ee546003barEv
+ ~ee54600(); // tgen
+ ee54600(); // tgen
+};
+//SIG(1 ee54600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54600 ::bar(){vfunc_called(this, "_ZN7ee546003barEv");}
+ee54600 ::~ee54600(){ note_dtor("ee54600", this);} // tgen
+ee54600 ::ee54600(){ note_ctor("ee54600", this);} // tgen
+
+static void Test_ee54600()
+{
+ extern Class_Descriptor cd_ee54600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54600, buf);
+ ee54600 *dp, &lv = *(dp=new (buf) ee54600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd4600*), ABISELECT(24,12), "ee54600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd4600*), ABISELECT(24,12), "ee54600");
+ check_base_class_offset(lv, (cc600*)(dd4600*), ABISELECT(16,8), "ee54600");
+ check_base_class_offset(lv, (dd4600*), ABISELECT(16,8), "ee54600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54600.e");
+ test_class_info(&lv, &cd_ee54600);
+ dp->~ee54600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54600(Test_ee54600, "ee54600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54600C1Ev();
+extern void _ZN7ee54600D1Ev();
+Name_Map name_map_ee54600[] = {
+ NSPAIR(_ZN7ee54600C1Ev),
+ NSPAIR(_ZN7ee54600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd4600;
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+static Base_Class bases_ee54600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54600[];
+extern void _ZN7ee546003barEv();
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546003barEv,_ZTv0_n16_N7ee546003barEv)();
+extern void ABISELECT(_ZThn16_N7ee546003barEv,_ZThn8_N7ee546003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54600[0]),
+ (VTBL_ENTRY)&_ZN7ee546003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546003barEv,_ZTv0_n16_N7ee546003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54600[];
+static VTT_ENTRY vtt_ee54600[] = {
+ {&(_ZTV7ee54600[3]), 3,10},
+ {&(_ZTV7ee54600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54600[];
+extern VTBL_ENTRY _ZTV7ee54600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54600[];
+static VTBL_ENTRY alt_thunk_names199[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546003barEv,_ZTv0_n16_N7ee546003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546003barEv,_ZThn8_N7ee546003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54600 = { "ee54600", // class name
+ bases_ee54600, 4,
+ &(vtc_ee54600[0]), // expected_vtbl_contents
+ &(vtt_ee54600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names199,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64600 : dd4600 {
+ int e;
+ virtual void foo(); // _ZN7ee646003fooEv
+ virtual void bar(); // _ZN7ee646003barEv
+ ~ee64600(); // tgen
+ ee64600(); // tgen
+};
+//SIG(1 ee64600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64600 ::foo(){vfunc_called(this, "_ZN7ee646003fooEv");}
+void ee64600 ::bar(){vfunc_called(this, "_ZN7ee646003barEv");}
+ee64600 ::~ee64600(){ note_dtor("ee64600", this);} // tgen
+ee64600 ::ee64600(){ note_ctor("ee64600", this);} // tgen
+
+static void Test_ee64600()
+{
+ extern Class_Descriptor cd_ee64600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64600, buf);
+ ee64600 *dp, &lv = *(dp=new (buf) ee64600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd4600*), ABISELECT(8,4), "ee64600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd4600*), ABISELECT(8,4), "ee64600");
+ check_base_class_offset(lv, (cc600*)(dd4600*), 0, "ee64600");
+ check_base_class_offset(lv, (dd4600*), 0, "ee64600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64600.e");
+ test_class_info(&lv, &cd_ee64600);
+ dp->~ee64600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64600(Test_ee64600, "ee64600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64600C1Ev();
+extern void _ZN7ee64600D1Ev();
+Name_Map name_map_ee64600[] = {
+ NSPAIR(_ZN7ee64600C1Ev),
+ NSPAIR(_ZN7ee64600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd4600;
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+static Base_Class bases_ee64600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64600[];
+extern void _ZN7ee646003fooEv();
+extern void _ZN7ee646003barEv();
+static VTBL_ENTRY vtc_ee64600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64600[0]),
+ (VTBL_ENTRY)&_ZN7ee646003fooEv,
+ (VTBL_ENTRY)&_ZN7ee646003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64600[];
+extern VTBL_ENTRY _ZTV7ee64600[];
+Class_Descriptor cd_ee64600 = { "ee64600", // class name
+ bases_ee64600, 4,
+ &(vtc_ee64600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74600 : virtual dd4600 {
+ int e;
+ virtual void foo(); // _ZN7ee746003fooEv
+ virtual void bar(); // _ZN7ee746003barEv
+ ~ee74600(); // tgen
+ ee74600(); // tgen
+};
+//SIG(1 ee74600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74600 ::foo(){vfunc_called(this, "_ZN7ee746003fooEv");}
+void ee74600 ::bar(){vfunc_called(this, "_ZN7ee746003barEv");}
+ee74600 ::~ee74600(){ note_dtor("ee74600", this);} // tgen
+ee74600 ::ee74600(){ note_ctor("ee74600", this);} // tgen
+
+static void Test_ee74600()
+{
+ extern Class_Descriptor cd_ee74600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74600, buf);
+ ee74600 *dp, &lv = *(dp=new (buf) ee74600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd4600*), ABISELECT(24,12), "ee74600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd4600*), ABISELECT(24,12), "ee74600");
+ check_base_class_offset(lv, (cc600*)(dd4600*), ABISELECT(16,8), "ee74600");
+ check_base_class_offset(lv, (dd4600*), ABISELECT(16,8), "ee74600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74600.e");
+ test_class_info(&lv, &cd_ee74600);
+ dp->~ee74600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74600(Test_ee74600, "ee74600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74600C1Ev();
+extern void _ZN7ee74600D1Ev();
+Name_Map name_map_ee74600[] = {
+ NSPAIR(_ZN7ee74600C1Ev),
+ NSPAIR(_ZN7ee74600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd4600;
+extern VTBL_ENTRY _ZTI6dd4600[];
+extern VTBL_ENTRY _ZTV6dd4600[];
+static Base_Class bases_ee74600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74600[];
+extern void _ZN7ee746003fooEv();
+extern void _ZN7ee746003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746003fooEv,_ZTv0_n12_N7ee746003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746003fooEv,_ZThn8_N7ee746003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746003barEv,_ZTv0_n16_N7ee746003barEv)();
+extern void ABISELECT(_ZThn16_N7ee746003barEv,_ZThn8_N7ee746003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74600[0]),
+ (VTBL_ENTRY)&_ZN7ee746003fooEv,
+ (VTBL_ENTRY)&_ZN7ee746003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746003fooEv,_ZTv0_n12_N7ee746003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746003barEv,_ZTv0_n16_N7ee746003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74600[];
+static VTT_ENTRY vtt_ee74600[] = {
+ {&(_ZTV7ee74600[3]), 3,11},
+ {&(_ZTV7ee74600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74600[];
+extern VTBL_ENTRY _ZTV7ee74600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74600[];
+static VTBL_ENTRY alt_thunk_names200[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746003barEv,_ZTv0_n16_N7ee746003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746003barEv,_ZThn8_N7ee746003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746003fooEv,_ZTv0_n12_N7ee746003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746003fooEv,_ZThn8_N7ee746003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74600 = { "ee74600", // class name
+ bases_ee74600, 4,
+ &(vtc_ee74600[0]), // expected_vtbl_contents
+ &(vtt_ee74600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names200,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5600 : virtual cc600 {
+ int d;
+ virtual void bar(); // _ZN6dd56003barEv
+ ~dd5600(); // tgen
+ dd5600(); // tgen
+};
+//SIG(-1 dd5600) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5600 ::bar(){vfunc_called(this, "_ZN6dd56003barEv");}
+dd5600 ::~dd5600(){ note_dtor("dd5600", this);} // tgen
+dd5600 ::dd5600(){ note_ctor("dd5600", this);} // tgen
+
+static void Test_dd5600()
+{
+ extern Class_Descriptor cd_dd5600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5600, buf);
+ dd5600 *dp, &lv = *(dp=new (buf) dd5600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,12), "dd5600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,12), "dd5600");
+ check_base_class_offset(lv, (cc600*), ABISELECT(16,8), "dd5600");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5600.d");
+ test_class_info(&lv, &cd_dd5600);
+ dp->~dd5600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5600(Test_dd5600, "dd5600", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5600C1Ev();
+extern void _ZN6dd5600D1Ev();
+Name_Map name_map_dd5600[] = {
+ NSPAIR(_ZN6dd5600C1Ev),
+ NSPAIR(_ZN6dd5600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+static Base_Class bases_dd5600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern void _ZN6dd56003barEv();
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5600[];
+static VTT_ENTRY vtt_dd5600[] = {
+ {&(_ZTV6dd5600[3]), 3,10},
+ {&(_ZTV6dd5600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static VTBL_ENTRY alt_thunk_names201[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5600 = { "dd5600", // class name
+ bases_dd5600, 3,
+ &(vtc_dd5600[0]), // expected_vtbl_contents
+ &(vtt_dd5600[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5600),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names201,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05600 : dd5600 {
+ int e;
+ ~ee05600(); // tgen
+ ee05600(); // tgen
+};
+//SIG(1 ee05600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05600 ::~ee05600(){ note_dtor("ee05600", this);} // tgen
+ee05600 ::ee05600(){ note_ctor("ee05600", this);} // tgen
+
+static void Test_ee05600()
+{
+ extern Class_Descriptor cd_ee05600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05600, buf);
+ ee05600 *dp, &lv = *(dp=new (buf) ee05600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee05600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee05600");
+ check_base_class_offset(lv, (cc600*)(dd5600*), ABISELECT(16,12), "ee05600");
+ check_base_class_offset(lv, (dd5600*), 0, "ee05600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05600.e");
+ test_class_info(&lv, &cd_ee05600);
+ dp->~ee05600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05600(Test_ee05600, "ee05600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05600C1Ev();
+extern void _ZN7ee05600D1Ev();
+Name_Map name_map_ee05600[] = {
+ NSPAIR(_ZN7ee05600C1Ev),
+ NSPAIR(_ZN7ee05600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd5600;
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static Base_Class bases_ee05600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05600[];
+extern void _ZN6dd56003barEv();
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05600[];
+extern void _ZN6dd56003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5600__7ee05600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+};
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd5600__7ee05600[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+static VTT_ENTRY vtt_ee05600[] = {
+ {&(_ZTV7ee05600[3]), 3,10},
+ {&(_tg__ZTV6dd5600__7ee05600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd5600__7ee05600[4]), 4,6},
+ {&(_ZTV7ee05600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05600[];
+extern VTBL_ENTRY _ZTV7ee05600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05600[];
+static VTBL_ENTRY alt_thunk_names202[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05600 = { "ee05600", // class name
+ bases_ee05600, 4,
+ &(vtc_ee05600[0]), // expected_vtbl_contents
+ &(vtt_ee05600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names202,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15600 : virtual dd5600 {
+ int e;
+ ~ee15600(); // tgen
+ ee15600(); // tgen
+};
+//SIG(1 ee15600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15600 ::~ee15600(){ note_dtor("ee15600", this);} // tgen
+ee15600 ::ee15600(){ note_ctor("ee15600", this);} // tgen
+
+static void Test_ee15600()
+{
+ extern Class_Descriptor cd_ee15600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15600, buf);
+ ee15600 *dp, &lv = *(dp=new (buf) ee15600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee15600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee15600");
+ check_base_class_offset(lv, (cc600*)(dd5600*), ABISELECT(32,16), "ee15600");
+ check_base_class_offset(lv, (dd5600*), ABISELECT(16,8), "ee15600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15600.e");
+ test_class_info(&lv, &cd_ee15600);
+ dp->~ee15600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15600(Test_ee15600, "ee15600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15600C1Ev();
+extern void _ZN7ee15600D1Ev();
+Name_Map name_map_ee15600[] = {
+ NSPAIR(_ZN7ee15600C1Ev),
+ NSPAIR(_ZN7ee15600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd5600;
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static Base_Class bases_ee15600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15600[];
+extern void _ZN6dd56003barEv();
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15600[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15600[];
+extern void _ZN6dd56003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5600__7ee15600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+};
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd5600__7ee15600[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+static VTT_ENTRY vtt_ee15600[] = {
+ {&(_ZTV7ee15600[4]), 4,15},
+ {&(_ZTV7ee15600[8]), 8,15},
+ {&(_ZTV7ee15600[13]), 13,15},
+ {&(_tg__ZTV6dd5600__7ee15600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd5600__7ee15600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15600[];
+extern VTBL_ENTRY _ZTV7ee15600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15600[];
+static VTBL_ENTRY alt_thunk_names203[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15600 = { "ee15600", // class name
+ bases_ee15600, 4,
+ &(vtc_ee15600[0]), // expected_vtbl_contents
+ &(vtt_ee15600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15600),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names203,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25600 : dd5600 {
+ int e;
+ virtual void foo(); // _ZN7ee256003fooEv
+ ~ee25600(); // tgen
+ ee25600(); // tgen
+};
+//SIG(1 ee25600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25600 ::foo(){vfunc_called(this, "_ZN7ee256003fooEv");}
+ee25600 ::~ee25600(){ note_dtor("ee25600", this);} // tgen
+ee25600 ::ee25600(){ note_ctor("ee25600", this);} // tgen
+
+static void Test_ee25600()
+{
+ extern Class_Descriptor cd_ee25600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25600, buf);
+ ee25600 *dp, &lv = *(dp=new (buf) ee25600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee25600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee25600");
+ check_base_class_offset(lv, (cc600*)(dd5600*), ABISELECT(16,12), "ee25600");
+ check_base_class_offset(lv, (dd5600*), 0, "ee25600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25600.e");
+ test_class_info(&lv, &cd_ee25600);
+ dp->~ee25600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25600(Test_ee25600, "ee25600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25600C1Ev();
+extern void _ZN7ee25600D1Ev();
+Name_Map name_map_ee25600[] = {
+ NSPAIR(_ZN7ee25600C1Ev),
+ NSPAIR(_ZN7ee25600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd5600;
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static Base_Class bases_ee25600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25600[];
+extern void _ZN6dd56003barEv();
+extern void _ZN7ee256003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee256003fooEv,_ZTv0_n12_N7ee256003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256003fooEv,_ZThn12_N7ee256003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+ (VTBL_ENTRY)&_ZN7ee256003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256003fooEv,_ZTv0_n12_N7ee256003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25600[];
+extern void _ZN6dd56003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5600__7ee25600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+};
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd5600__7ee25600[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+static VTT_ENTRY vtt_ee25600[] = {
+ {&(_ZTV7ee25600[3]), 3,11},
+ {&(_tg__ZTV6dd5600__7ee25600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd5600__7ee25600[4]), 4,6},
+ {&(_ZTV7ee25600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25600[];
+extern VTBL_ENTRY _ZTV7ee25600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25600[];
+static VTBL_ENTRY alt_thunk_names204[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256003fooEv,_ZTv0_n12_N7ee256003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256003fooEv,_ZThn12_N7ee256003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25600 = { "ee25600", // class name
+ bases_ee25600, 4,
+ &(vtc_ee25600[0]), // expected_vtbl_contents
+ &(vtt_ee25600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names204,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35600 : virtual dd5600 {
+ int e;
+ virtual void foo(); // _ZN7ee356003fooEv
+ ~ee35600(); // tgen
+ ee35600(); // tgen
+};
+//SIG(1 ee35600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35600 ::foo(){vfunc_called(this, "_ZN7ee356003fooEv");}
+ee35600 ::~ee35600(){ note_dtor("ee35600", this);} // tgen
+ee35600 ::ee35600(){ note_ctor("ee35600", this);} // tgen
+
+static void Test_ee35600()
+{
+ extern Class_Descriptor cd_ee35600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35600, buf);
+ ee35600 *dp, &lv = *(dp=new (buf) ee35600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee35600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee35600");
+ check_base_class_offset(lv, (cc600*)(dd5600*), ABISELECT(32,16), "ee35600");
+ check_base_class_offset(lv, (dd5600*), ABISELECT(16,8), "ee35600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35600.e");
+ test_class_info(&lv, &cd_ee35600);
+ dp->~ee35600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35600(Test_ee35600, "ee35600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35600C1Ev();
+extern void _ZN7ee35600D1Ev();
+Name_Map name_map_ee35600[] = {
+ NSPAIR(_ZN7ee35600C1Ev),
+ NSPAIR(_ZN7ee35600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd5600;
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static Base_Class bases_ee35600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5600, 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 _ZTI7ee35600[];
+extern void _ZN7ee356003fooEv();
+extern void _ZN6dd56003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee356003fooEv,_ZTv0_n12_N7ee356003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356003fooEv,_ZThn16_N7ee356003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35600[0]),
+ (VTBL_ENTRY)&_ZN7ee356003fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356003fooEv,_ZTv0_n12_N7ee356003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35600[];
+extern void _ZN6dd56003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5600__7ee35600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+};
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd5600__7ee35600[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+static VTT_ENTRY vtt_ee35600[] = {
+ {&(_ZTV7ee35600[4]), 4,16},
+ {&(_ZTV7ee35600[9]), 9,16},
+ {&(_ZTV7ee35600[14]), 14,16},
+ {&(_tg__ZTV6dd5600__7ee35600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd5600__7ee35600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35600[];
+extern VTBL_ENTRY _ZTV7ee35600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35600[];
+static VTBL_ENTRY alt_thunk_names205[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356003fooEv,_ZTv0_n12_N7ee356003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356003fooEv,_ZThn16_N7ee356003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35600 = { "ee35600", // class name
+ bases_ee35600, 4,
+ &(vtc_ee35600[0]), // expected_vtbl_contents
+ &(vtt_ee35600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35600),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names205,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45600 : dd5600 {
+ int e;
+ virtual void bar(); // _ZN7ee456003barEv
+ ~ee45600(); // tgen
+ ee45600(); // tgen
+};
+//SIG(1 ee45600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45600 ::bar(){vfunc_called(this, "_ZN7ee456003barEv");}
+ee45600 ::~ee45600(){ note_dtor("ee45600", this);} // tgen
+ee45600 ::ee45600(){ note_ctor("ee45600", this);} // tgen
+
+static void Test_ee45600()
+{
+ extern Class_Descriptor cd_ee45600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45600, buf);
+ ee45600 *dp, &lv = *(dp=new (buf) ee45600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee45600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee45600");
+ check_base_class_offset(lv, (cc600*)(dd5600*), ABISELECT(16,12), "ee45600");
+ check_base_class_offset(lv, (dd5600*), 0, "ee45600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45600.e");
+ test_class_info(&lv, &cd_ee45600);
+ dp->~ee45600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45600(Test_ee45600, "ee45600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45600C1Ev();
+extern void _ZN7ee45600D1Ev();
+Name_Map name_map_ee45600[] = {
+ NSPAIR(_ZN7ee45600C1Ev),
+ NSPAIR(_ZN7ee45600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd5600;
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static Base_Class bases_ee45600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45600[];
+extern void _ZN7ee456003barEv();
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456003barEv,_ZTv0_n16_N7ee456003barEv)();
+extern void ABISELECT(_ZThn16_N7ee456003barEv,_ZThn12_N7ee456003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45600[0]),
+ (VTBL_ENTRY)&_ZN7ee456003barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456003barEv,_ZTv0_n16_N7ee456003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45600[];
+extern void _ZN6dd56003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5600__7ee45600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+};
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd5600__7ee45600[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+static VTT_ENTRY vtt_ee45600[] = {
+ {&(_ZTV7ee45600[3]), 3,10},
+ {&(_tg__ZTV6dd5600__7ee45600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd5600__7ee45600[4]), 4,6},
+ {&(_ZTV7ee45600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45600[];
+extern VTBL_ENTRY _ZTV7ee45600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45600[];
+static VTBL_ENTRY alt_thunk_names206[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456003barEv,_ZTv0_n16_N7ee456003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456003barEv,_ZThn12_N7ee456003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45600 = { "ee45600", // class name
+ bases_ee45600, 4,
+ &(vtc_ee45600[0]), // expected_vtbl_contents
+ &(vtt_ee45600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names206,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55600 : virtual dd5600 {
+ int e;
+ virtual void bar(); // _ZN7ee556003barEv
+ ~ee55600(); // tgen
+ ee55600(); // tgen
+};
+//SIG(1 ee55600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55600 ::bar(){vfunc_called(this, "_ZN7ee556003barEv");}
+ee55600 ::~ee55600(){ note_dtor("ee55600", this);} // tgen
+ee55600 ::ee55600(){ note_ctor("ee55600", this);} // tgen
+
+static void Test_ee55600()
+{
+ extern Class_Descriptor cd_ee55600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55600, buf);
+ ee55600 *dp, &lv = *(dp=new (buf) ee55600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee55600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee55600");
+ check_base_class_offset(lv, (cc600*)(dd5600*), ABISELECT(32,16), "ee55600");
+ check_base_class_offset(lv, (dd5600*), ABISELECT(16,8), "ee55600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55600.e");
+ test_class_info(&lv, &cd_ee55600);
+ dp->~ee55600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55600(Test_ee55600, "ee55600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55600C1Ev();
+extern void _ZN7ee55600D1Ev();
+Name_Map name_map_ee55600[] = {
+ NSPAIR(_ZN7ee55600C1Ev),
+ NSPAIR(_ZN7ee55600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd5600;
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static Base_Class bases_ee55600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5600, 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 _ZTI7ee55600[];
+extern void _ZN7ee556003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556003barEv,_ZTv0_n16_N7ee556003barEv)();
+extern void ABISELECT(_ZThn16_N7ee556003barEv,_ZThn8_N7ee556003barEv)() __attribute__((weak));
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556003barEv,_ZTv0_n16_N7ee556003barEv)();
+extern void ABISELECT(_ZThn32_N7ee556003barEv,_ZThn16_N7ee556003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55600[0]),
+ (VTBL_ENTRY)&_ZN7ee556003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556003barEv,_ZTv0_n16_N7ee556003barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556003barEv,_ZTv0_n16_N7ee556003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55600[];
+extern void _ZN6dd56003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5600__7ee55600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+};
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd5600__7ee55600[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+static VTT_ENTRY vtt_ee55600[] = {
+ {&(_ZTV7ee55600[4]), 4,16},
+ {&(_ZTV7ee55600[9]), 9,16},
+ {&(_ZTV7ee55600[14]), 14,16},
+ {&(_tg__ZTV6dd5600__7ee55600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd5600__7ee55600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55600[];
+extern VTBL_ENTRY _ZTV7ee55600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55600[];
+static VTBL_ENTRY alt_thunk_names207[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556003barEv,_ZTv0_n16_N7ee556003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556003barEv,_ZThn16_N7ee556003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556003barEv,_ZThn8_N7ee556003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55600 = { "ee55600", // class name
+ bases_ee55600, 4,
+ &(vtc_ee55600[0]), // expected_vtbl_contents
+ &(vtt_ee55600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55600),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names207,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65600 : dd5600 {
+ int e;
+ virtual void foo(); // _ZN7ee656003fooEv
+ virtual void bar(); // _ZN7ee656003barEv
+ ~ee65600(); // tgen
+ ee65600(); // tgen
+};
+//SIG(1 ee65600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65600 ::foo(){vfunc_called(this, "_ZN7ee656003fooEv");}
+void ee65600 ::bar(){vfunc_called(this, "_ZN7ee656003barEv");}
+ee65600 ::~ee65600(){ note_dtor("ee65600", this);} // tgen
+ee65600 ::ee65600(){ note_ctor("ee65600", this);} // tgen
+
+static void Test_ee65600()
+{
+ extern Class_Descriptor cd_ee65600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65600, buf);
+ ee65600 *dp, &lv = *(dp=new (buf) ee65600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee65600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee65600");
+ check_base_class_offset(lv, (cc600*)(dd5600*), ABISELECT(16,12), "ee65600");
+ check_base_class_offset(lv, (dd5600*), 0, "ee65600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65600.e");
+ test_class_info(&lv, &cd_ee65600);
+ dp->~ee65600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65600(Test_ee65600, "ee65600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65600C1Ev();
+extern void _ZN7ee65600D1Ev();
+Name_Map name_map_ee65600[] = {
+ NSPAIR(_ZN7ee65600C1Ev),
+ NSPAIR(_ZN7ee65600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd5600;
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static Base_Class bases_ee65600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65600[];
+extern void _ZN7ee656003barEv();
+extern void _ZN7ee656003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656003fooEv,_ZTv0_n12_N7ee656003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656003fooEv,_ZThn12_N7ee656003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656003barEv,_ZTv0_n16_N7ee656003barEv)();
+extern void ABISELECT(_ZThn16_N7ee656003barEv,_ZThn12_N7ee656003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65600[0]),
+ (VTBL_ENTRY)&_ZN7ee656003barEv,
+ (VTBL_ENTRY)&_ZN7ee656003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656003fooEv,_ZTv0_n12_N7ee656003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656003barEv,_ZTv0_n16_N7ee656003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65600[];
+extern void _ZN6dd56003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5600__7ee65600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+};
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd5600__7ee65600[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+static VTT_ENTRY vtt_ee65600[] = {
+ {&(_ZTV7ee65600[3]), 3,11},
+ {&(_tg__ZTV6dd5600__7ee65600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd5600__7ee65600[4]), 4,6},
+ {&(_ZTV7ee65600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65600[];
+extern VTBL_ENTRY _ZTV7ee65600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65600[];
+static VTBL_ENTRY alt_thunk_names208[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn12_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656003barEv,_ZTv0_n16_N7ee656003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656003barEv,_ZThn12_N7ee656003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656003fooEv,_ZTv0_n12_N7ee656003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656003fooEv,_ZThn12_N7ee656003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65600 = { "ee65600", // class name
+ bases_ee65600, 4,
+ &(vtc_ee65600[0]), // expected_vtbl_contents
+ &(vtt_ee65600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names208,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75600 : virtual dd5600 {
+ int e;
+ virtual void foo(); // _ZN7ee756003fooEv
+ virtual void bar(); // _ZN7ee756003barEv
+ ~ee75600(); // tgen
+ ee75600(); // tgen
+};
+//SIG(1 ee75600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75600 ::foo(){vfunc_called(this, "_ZN7ee756003fooEv");}
+void ee75600 ::bar(){vfunc_called(this, "_ZN7ee756003barEv");}
+ee75600 ::~ee75600(){ note_dtor("ee75600", this);} // tgen
+ee75600 ::ee75600(){ note_ctor("ee75600", this);} // tgen
+
+static void Test_ee75600()
+{
+ extern Class_Descriptor cd_ee75600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75600, buf);
+ ee75600 *dp, &lv = *(dp=new (buf) ee75600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee75600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee75600");
+ check_base_class_offset(lv, (cc600*)(dd5600*), ABISELECT(32,16), "ee75600");
+ check_base_class_offset(lv, (dd5600*), ABISELECT(16,8), "ee75600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75600.e");
+ test_class_info(&lv, &cd_ee75600);
+ dp->~ee75600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75600(Test_ee75600, "ee75600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75600C1Ev();
+extern void _ZN7ee75600D1Ev();
+Name_Map name_map_ee75600[] = {
+ NSPAIR(_ZN7ee75600C1Ev),
+ NSPAIR(_ZN7ee75600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd5600;
+extern VTBL_ENTRY _ZTI6dd5600[];
+extern VTBL_ENTRY _ZTV6dd5600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5600[];
+static Base_Class bases_ee75600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5600, 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 _ZTI7ee75600[];
+extern void _ZN7ee756003fooEv();
+extern void _ZN7ee756003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756003barEv,_ZTv0_n16_N7ee756003barEv)();
+extern void ABISELECT(_ZThn16_N7ee756003barEv,_ZThn8_N7ee756003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756003fooEv,_ZTv0_n12_N7ee756003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756003fooEv,_ZThn16_N7ee756003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756003barEv,_ZTv0_n16_N7ee756003barEv)();
+extern void ABISELECT(_ZThn32_N7ee756003barEv,_ZThn16_N7ee756003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75600[0]),
+ (VTBL_ENTRY)&_ZN7ee756003fooEv,
+ (VTBL_ENTRY)&_ZN7ee756003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756003barEv,_ZTv0_n16_N7ee756003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756003fooEv,_ZTv0_n12_N7ee756003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756003barEv,_ZTv0_n16_N7ee756003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75600[];
+extern void _ZN6dd56003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5600__7ee75600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN6dd56003barEv,
+};
+extern void _ZN5cc6003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv)();
+extern void ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd5600__7ee75600[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5600[0]),
+ (VTBL_ENTRY)&_ZN5cc6003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv),
+};
+static VTT_ENTRY vtt_ee75600[] = {
+ {&(_ZTV7ee75600[4]), 4,17},
+ {&(_ZTV7ee75600[10]), 10,17},
+ {&(_ZTV7ee75600[15]), 15,17},
+ {&(_tg__ZTV6dd5600__7ee75600[3]), 3,4},
+ {&(_tg__ZTV5cc600__6dd5600__7ee75600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75600[];
+extern VTBL_ENTRY _ZTV7ee75600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75600[];
+static VTBL_ENTRY alt_thunk_names209[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56003barEv,_ZTv0_n16_N6dd56003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56003barEv,_ZThn8_N6dd56003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756003fooEv,_ZTv0_n12_N7ee756003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756003fooEv,_ZThn16_N7ee756003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756003barEv,_ZTv0_n16_N7ee756003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756003barEv,_ZThn16_N7ee756003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756003barEv,_ZThn8_N7ee756003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75600 = { "ee75600", // class name
+ bases_ee75600, 4,
+ &(vtc_ee75600[0]), // expected_vtbl_contents
+ &(vtt_ee75600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75600),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names209,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6600 : cc600 {
+ int d;
+ virtual void bar(); // _ZN6dd66003barEv
+ virtual void foo(); // _ZN6dd66003fooEv
+ ~dd6600(); // tgen
+ dd6600(); // tgen
+};
+//SIG(-1 dd6600) C1{ BC2{ BC3{ BC4{ Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6600 ::bar(){vfunc_called(this, "_ZN6dd66003barEv");}
+void dd6600 ::foo(){vfunc_called(this, "_ZN6dd66003fooEv");}
+dd6600 ::~dd6600(){ note_dtor("dd6600", this);} // tgen
+dd6600 ::dd6600(){ note_ctor("dd6600", this);} // tgen
+
+static void Test_dd6600()
+{
+ extern Class_Descriptor cd_dd6600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6600, buf);
+ dd6600 *dp, &lv = *(dp=new (buf) dd6600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(8,4), "dd6600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(8,4), "dd6600");
+ check_base_class_offset(lv, (cc600*), 0, "dd6600");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6600.d");
+ test_class_info(&lv, &cd_dd6600);
+ dp->~dd6600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6600(Test_dd6600, "dd6600", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6600C1Ev();
+extern void _ZN6dd6600D1Ev();
+Name_Map name_map_dd6600[] = {
+ NSPAIR(_ZN6dd6600C1Ev),
+ NSPAIR(_ZN6dd6600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+static Base_Class bases_dd6600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern void _ZN6dd66003fooEv();
+extern void _ZN6dd66003barEv();
+static VTBL_ENTRY vtc_dd6600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6600[0]),
+ (VTBL_ENTRY)&_ZN6dd66003fooEv,
+ (VTBL_ENTRY)&_ZN6dd66003barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+Class_Descriptor cd_dd6600 = { "dd6600", // class name
+ bases_dd6600, 3,
+ &(vtc_dd6600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06600 : dd6600 {
+ int e;
+ ~ee06600(); // tgen
+ ee06600(); // tgen
+};
+//SIG(1 ee06600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06600 ::~ee06600(){ note_dtor("ee06600", this);} // tgen
+ee06600 ::ee06600(){ note_ctor("ee06600", this);} // tgen
+
+static void Test_ee06600()
+{
+ extern Class_Descriptor cd_ee06600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06600, buf);
+ ee06600 *dp, &lv = *(dp=new (buf) ee06600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd6600*), ABISELECT(8,4), "ee06600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd6600*), ABISELECT(8,4), "ee06600");
+ check_base_class_offset(lv, (cc600*)(dd6600*), 0, "ee06600");
+ check_base_class_offset(lv, (dd6600*), 0, "ee06600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06600.e");
+ test_class_info(&lv, &cd_ee06600);
+ dp->~ee06600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06600(Test_ee06600, "ee06600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06600C1Ev();
+extern void _ZN7ee06600D1Ev();
+Name_Map name_map_ee06600[] = {
+ NSPAIR(_ZN7ee06600C1Ev),
+ NSPAIR(_ZN7ee06600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd6600;
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+static Base_Class bases_ee06600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6600, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06600[];
+extern void _ZN6dd66003fooEv();
+extern void _ZN6dd66003barEv();
+static VTBL_ENTRY vtc_ee06600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06600[0]),
+ (VTBL_ENTRY)&_ZN6dd66003fooEv,
+ (VTBL_ENTRY)&_ZN6dd66003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06600[];
+extern VTBL_ENTRY _ZTV7ee06600[];
+Class_Descriptor cd_ee06600 = { "ee06600", // class name
+ bases_ee06600, 4,
+ &(vtc_ee06600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16600 : virtual dd6600 {
+ int e;
+ ~ee16600(); // tgen
+ ee16600(); // tgen
+};
+//SIG(1 ee16600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16600 ::~ee16600(){ note_dtor("ee16600", this);} // tgen
+ee16600 ::ee16600(){ note_ctor("ee16600", this);} // tgen
+
+static void Test_ee16600()
+{
+ extern Class_Descriptor cd_ee16600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16600, buf);
+ ee16600 *dp, &lv = *(dp=new (buf) ee16600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd6600*), ABISELECT(24,12), "ee16600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd6600*), ABISELECT(24,12), "ee16600");
+ check_base_class_offset(lv, (cc600*)(dd6600*), ABISELECT(16,8), "ee16600");
+ check_base_class_offset(lv, (dd6600*), ABISELECT(16,8), "ee16600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16600.e");
+ test_class_info(&lv, &cd_ee16600);
+ dp->~ee16600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16600(Test_ee16600, "ee16600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16600C1Ev();
+extern void _ZN7ee16600D1Ev();
+Name_Map name_map_ee16600[] = {
+ NSPAIR(_ZN7ee16600C1Ev),
+ NSPAIR(_ZN7ee16600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd6600;
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+static Base_Class bases_ee16600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6600, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16600[];
+extern void _ZN6dd66003fooEv();
+extern void _ZN6dd66003barEv();
+static VTBL_ENTRY vtc_ee16600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16600[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16600[0]),
+ (VTBL_ENTRY)&_ZN6dd66003fooEv,
+ (VTBL_ENTRY)&_ZN6dd66003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16600[];
+static VTT_ENTRY vtt_ee16600[] = {
+ {&(_ZTV7ee16600[3]), 3,9},
+ {&(_ZTV7ee16600[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16600[];
+extern VTBL_ENTRY _ZTV7ee16600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16600[];
+Class_Descriptor cd_ee16600 = { "ee16600", // class name
+ bases_ee16600, 4,
+ &(vtc_ee16600[0]), // expected_vtbl_contents
+ &(vtt_ee16600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16600),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26600 : dd6600 {
+ int e;
+ virtual void foo(); // _ZN7ee266003fooEv
+ ~ee26600(); // tgen
+ ee26600(); // tgen
+};
+//SIG(1 ee26600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26600 ::foo(){vfunc_called(this, "_ZN7ee266003fooEv");}
+ee26600 ::~ee26600(){ note_dtor("ee26600", this);} // tgen
+ee26600 ::ee26600(){ note_ctor("ee26600", this);} // tgen
+
+static void Test_ee26600()
+{
+ extern Class_Descriptor cd_ee26600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26600, buf);
+ ee26600 *dp, &lv = *(dp=new (buf) ee26600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd6600*), ABISELECT(8,4), "ee26600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd6600*), ABISELECT(8,4), "ee26600");
+ check_base_class_offset(lv, (cc600*)(dd6600*), 0, "ee26600");
+ check_base_class_offset(lv, (dd6600*), 0, "ee26600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26600.e");
+ test_class_info(&lv, &cd_ee26600);
+ dp->~ee26600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26600(Test_ee26600, "ee26600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26600C1Ev();
+extern void _ZN7ee26600D1Ev();
+Name_Map name_map_ee26600[] = {
+ NSPAIR(_ZN7ee26600C1Ev),
+ NSPAIR(_ZN7ee26600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd6600;
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+static Base_Class bases_ee26600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26600[];
+extern void _ZN7ee266003fooEv();
+extern void _ZN6dd66003barEv();
+static VTBL_ENTRY vtc_ee26600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26600[0]),
+ (VTBL_ENTRY)&_ZN7ee266003fooEv,
+ (VTBL_ENTRY)&_ZN6dd66003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26600[];
+extern VTBL_ENTRY _ZTV7ee26600[];
+Class_Descriptor cd_ee26600 = { "ee26600", // class name
+ bases_ee26600, 4,
+ &(vtc_ee26600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36600 : virtual dd6600 {
+ int e;
+ virtual void foo(); // _ZN7ee366003fooEv
+ ~ee36600(); // tgen
+ ee36600(); // tgen
+};
+//SIG(1 ee36600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36600 ::foo(){vfunc_called(this, "_ZN7ee366003fooEv");}
+ee36600 ::~ee36600(){ note_dtor("ee36600", this);} // tgen
+ee36600 ::ee36600(){ note_ctor("ee36600", this);} // tgen
+
+static void Test_ee36600()
+{
+ extern Class_Descriptor cd_ee36600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36600, buf);
+ ee36600 *dp, &lv = *(dp=new (buf) ee36600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd6600*), ABISELECT(24,12), "ee36600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd6600*), ABISELECT(24,12), "ee36600");
+ check_base_class_offset(lv, (cc600*)(dd6600*), ABISELECT(16,8), "ee36600");
+ check_base_class_offset(lv, (dd6600*), ABISELECT(16,8), "ee36600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36600.e");
+ test_class_info(&lv, &cd_ee36600);
+ dp->~ee36600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36600(Test_ee36600, "ee36600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36600C1Ev();
+extern void _ZN7ee36600D1Ev();
+Name_Map name_map_ee36600[] = {
+ NSPAIR(_ZN7ee36600C1Ev),
+ NSPAIR(_ZN7ee36600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd6600;
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+static Base_Class bases_ee36600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36600[];
+extern void _ZN7ee366003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee366003fooEv,_ZTv0_n12_N7ee366003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366003fooEv,_ZThn8_N7ee366003fooEv)() __attribute__((weak));
+extern void _ZN6dd66003barEv();
+static VTBL_ENTRY vtc_ee36600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36600[0]),
+ (VTBL_ENTRY)&_ZN7ee366003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366003fooEv,_ZTv0_n12_N7ee366003fooEv),
+ (VTBL_ENTRY)&_ZN6dd66003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36600[];
+static VTT_ENTRY vtt_ee36600[] = {
+ {&(_ZTV7ee36600[3]), 3,10},
+ {&(_ZTV7ee36600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36600[];
+extern VTBL_ENTRY _ZTV7ee36600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36600[];
+static VTBL_ENTRY alt_thunk_names210[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366003fooEv,_ZTv0_n12_N7ee366003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366003fooEv,_ZThn8_N7ee366003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36600 = { "ee36600", // class name
+ bases_ee36600, 4,
+ &(vtc_ee36600[0]), // expected_vtbl_contents
+ &(vtt_ee36600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names210,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46600 : dd6600 {
+ int e;
+ virtual void bar(); // _ZN7ee466003barEv
+ ~ee46600(); // tgen
+ ee46600(); // tgen
+};
+//SIG(1 ee46600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46600 ::bar(){vfunc_called(this, "_ZN7ee466003barEv");}
+ee46600 ::~ee46600(){ note_dtor("ee46600", this);} // tgen
+ee46600 ::ee46600(){ note_ctor("ee46600", this);} // tgen
+
+static void Test_ee46600()
+{
+ extern Class_Descriptor cd_ee46600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46600, buf);
+ ee46600 *dp, &lv = *(dp=new (buf) ee46600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd6600*), ABISELECT(8,4), "ee46600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd6600*), ABISELECT(8,4), "ee46600");
+ check_base_class_offset(lv, (cc600*)(dd6600*), 0, "ee46600");
+ check_base_class_offset(lv, (dd6600*), 0, "ee46600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46600.e");
+ test_class_info(&lv, &cd_ee46600);
+ dp->~ee46600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46600(Test_ee46600, "ee46600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46600C1Ev();
+extern void _ZN7ee46600D1Ev();
+Name_Map name_map_ee46600[] = {
+ NSPAIR(_ZN7ee46600C1Ev),
+ NSPAIR(_ZN7ee46600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd6600;
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+static Base_Class bases_ee46600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46600[];
+extern void _ZN6dd66003fooEv();
+extern void _ZN7ee466003barEv();
+static VTBL_ENTRY vtc_ee46600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46600[0]),
+ (VTBL_ENTRY)&_ZN6dd66003fooEv,
+ (VTBL_ENTRY)&_ZN7ee466003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46600[];
+extern VTBL_ENTRY _ZTV7ee46600[];
+Class_Descriptor cd_ee46600 = { "ee46600", // class name
+ bases_ee46600, 4,
+ &(vtc_ee46600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56600 : virtual dd6600 {
+ int e;
+ virtual void bar(); // _ZN7ee566003barEv
+ ~ee56600(); // tgen
+ ee56600(); // tgen
+};
+//SIG(1 ee56600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56600 ::bar(){vfunc_called(this, "_ZN7ee566003barEv");}
+ee56600 ::~ee56600(){ note_dtor("ee56600", this);} // tgen
+ee56600 ::ee56600(){ note_ctor("ee56600", this);} // tgen
+
+static void Test_ee56600()
+{
+ extern Class_Descriptor cd_ee56600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56600, buf);
+ ee56600 *dp, &lv = *(dp=new (buf) ee56600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd6600*), ABISELECT(24,12), "ee56600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd6600*), ABISELECT(24,12), "ee56600");
+ check_base_class_offset(lv, (cc600*)(dd6600*), ABISELECT(16,8), "ee56600");
+ check_base_class_offset(lv, (dd6600*), ABISELECT(16,8), "ee56600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56600.e");
+ test_class_info(&lv, &cd_ee56600);
+ dp->~ee56600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56600(Test_ee56600, "ee56600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56600C1Ev();
+extern void _ZN7ee56600D1Ev();
+Name_Map name_map_ee56600[] = {
+ NSPAIR(_ZN7ee56600C1Ev),
+ NSPAIR(_ZN7ee56600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd6600;
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+static Base_Class bases_ee56600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56600[];
+extern void _ZN7ee566003barEv();
+extern void _ZN6dd66003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566003barEv,_ZTv0_n16_N7ee566003barEv)();
+extern void ABISELECT(_ZThn16_N7ee566003barEv,_ZThn8_N7ee566003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56600[0]),
+ (VTBL_ENTRY)&_ZN7ee566003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56600[0]),
+ (VTBL_ENTRY)&_ZN6dd66003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566003barEv,_ZTv0_n16_N7ee566003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56600[];
+static VTT_ENTRY vtt_ee56600[] = {
+ {&(_ZTV7ee56600[3]), 3,10},
+ {&(_ZTV7ee56600[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56600[];
+extern VTBL_ENTRY _ZTV7ee56600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56600[];
+static VTBL_ENTRY alt_thunk_names211[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566003barEv,_ZTv0_n16_N7ee566003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566003barEv,_ZThn8_N7ee566003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56600 = { "ee56600", // class name
+ bases_ee56600, 4,
+ &(vtc_ee56600[0]), // expected_vtbl_contents
+ &(vtt_ee56600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56600),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names211,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66600 : dd6600 {
+ int e;
+ virtual void foo(); // _ZN7ee666003fooEv
+ virtual void bar(); // _ZN7ee666003barEv
+ ~ee66600(); // tgen
+ ee66600(); // tgen
+};
+//SIG(1 ee66600) C1{ BC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66600 ::foo(){vfunc_called(this, "_ZN7ee666003fooEv");}
+void ee66600 ::bar(){vfunc_called(this, "_ZN7ee666003barEv");}
+ee66600 ::~ee66600(){ note_dtor("ee66600", this);} // tgen
+ee66600 ::ee66600(){ note_ctor("ee66600", this);} // tgen
+
+static void Test_ee66600()
+{
+ extern Class_Descriptor cd_ee66600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66600, buf);
+ ee66600 *dp, &lv = *(dp=new (buf) ee66600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd6600*), ABISELECT(8,4), "ee66600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd6600*), ABISELECT(8,4), "ee66600");
+ check_base_class_offset(lv, (cc600*)(dd6600*), 0, "ee66600");
+ check_base_class_offset(lv, (dd6600*), 0, "ee66600");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66600.e");
+ test_class_info(&lv, &cd_ee66600);
+ dp->~ee66600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66600(Test_ee66600, "ee66600", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66600C1Ev();
+extern void _ZN7ee66600D1Ev();
+Name_Map name_map_ee66600[] = {
+ NSPAIR(_ZN7ee66600C1Ev),
+ NSPAIR(_ZN7ee66600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd6600;
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+static Base_Class bases_ee66600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(8,4), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66600[];
+extern void _ZN7ee666003fooEv();
+extern void _ZN7ee666003barEv();
+static VTBL_ENTRY vtc_ee66600[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66600[0]),
+ (VTBL_ENTRY)&_ZN7ee666003fooEv,
+ (VTBL_ENTRY)&_ZN7ee666003barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66600[];
+extern VTBL_ENTRY _ZTV7ee66600[];
+Class_Descriptor cd_ee66600 = { "ee66600", // class name
+ bases_ee66600, 4,
+ &(vtc_ee66600[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66600),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76600 : virtual dd6600 {
+ int e;
+ virtual void foo(); // _ZN7ee766003fooEv
+ virtual void bar(); // _ZN7ee766003barEv
+ ~ee76600(); // tgen
+ ee76600(); // tgen
+};
+//SIG(1 ee76600) C1{ VBC2{ BC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76600 ::foo(){vfunc_called(this, "_ZN7ee766003fooEv");}
+void ee76600 ::bar(){vfunc_called(this, "_ZN7ee766003barEv");}
+ee76600 ::~ee76600(){ note_dtor("ee76600", this);} // tgen
+ee76600 ::ee76600(){ note_ctor("ee76600", this);} // tgen
+
+static void Test_ee76600()
+{
+ extern Class_Descriptor cd_ee76600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76600, buf);
+ ee76600 *dp, &lv = *(dp=new (buf) ee76600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*)(dd6600*), ABISELECT(24,12), "ee76600");
+ check_base_class_offset(lv, (bb00*)(cc600*)(dd6600*), ABISELECT(24,12), "ee76600");
+ check_base_class_offset(lv, (cc600*)(dd6600*), ABISELECT(16,8), "ee76600");
+ check_base_class_offset(lv, (dd6600*), ABISELECT(16,8), "ee76600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76600.e");
+ test_class_info(&lv, &cd_ee76600);
+ dp->~ee76600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76600(Test_ee76600, "ee76600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76600C1Ev();
+extern void _ZN7ee76600D1Ev();
+Name_Map name_map_ee76600[] = {
+ NSPAIR(_ZN7ee76600C1Ev),
+ NSPAIR(_ZN7ee76600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd6600;
+extern VTBL_ENTRY _ZTI6dd6600[];
+extern VTBL_ENTRY _ZTV6dd6600[];
+static Base_Class bases_ee76600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76600[];
+extern void _ZN7ee766003fooEv();
+extern void _ZN7ee766003barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766003fooEv,_ZTv0_n12_N7ee766003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766003fooEv,_ZThn8_N7ee766003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766003barEv,_ZTv0_n16_N7ee766003barEv)();
+extern void ABISELECT(_ZThn16_N7ee766003barEv,_ZThn8_N7ee766003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76600[0]),
+ (VTBL_ENTRY)&_ZN7ee766003fooEv,
+ (VTBL_ENTRY)&_ZN7ee766003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766003fooEv,_ZTv0_n12_N7ee766003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766003barEv,_ZTv0_n16_N7ee766003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76600[];
+static VTT_ENTRY vtt_ee76600[] = {
+ {&(_ZTV7ee76600[3]), 3,11},
+ {&(_ZTV7ee76600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76600[];
+extern VTBL_ENTRY _ZTV7ee76600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76600[];
+static VTBL_ENTRY alt_thunk_names212[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766003barEv,_ZTv0_n16_N7ee766003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766003barEv,_ZThn8_N7ee766003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766003fooEv,_ZTv0_n12_N7ee766003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766003fooEv,_ZThn8_N7ee766003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76600 = { "ee76600", // class name
+ bases_ee76600, 4,
+ &(vtc_ee76600[0]), // expected_vtbl_contents
+ &(vtt_ee76600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76600),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names212,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7600 : virtual cc600 {
+ int d;
+ virtual void bar(); // _ZN6dd76003barEv
+ virtual void foo(); // _ZN6dd76003fooEv
+ ~dd7600(); // tgen
+ dd7600(); // tgen
+};
+//SIG(-1 dd7600) C1{ VBC2{ BC3{ BC4{ Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7600 ::bar(){vfunc_called(this, "_ZN6dd76003barEv");}
+void dd7600 ::foo(){vfunc_called(this, "_ZN6dd76003fooEv");}
+dd7600 ::~dd7600(){ note_dtor("dd7600", this);} // tgen
+dd7600 ::dd7600(){ note_ctor("dd7600", this);} // tgen
+
+static void Test_dd7600()
+{
+ extern Class_Descriptor cd_dd7600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7600, buf);
+ dd7600 *dp, &lv = *(dp=new (buf) dd7600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,12), "dd7600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,12), "dd7600");
+ check_base_class_offset(lv, (cc600*), ABISELECT(16,8), "dd7600");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7600.d");
+ test_class_info(&lv, &cd_dd7600);
+ dp->~dd7600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7600(Test_dd7600, "dd7600", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7600C1Ev();
+extern void _ZN6dd7600D1Ev();
+Name_Map name_map_dd7600[] = {
+ NSPAIR(_ZN6dd7600C1Ev),
+ NSPAIR(_ZN6dd7600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+static Base_Class bases_dd7600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7600[];
+static VTT_ENTRY vtt_dd7600[] = {
+ {&(_ZTV6dd7600[3]), 3,11},
+ {&(_ZTV6dd7600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static VTBL_ENTRY alt_thunk_names213[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7600 = { "dd7600", // class name
+ bases_dd7600, 3,
+ &(vtc_dd7600[0]), // expected_vtbl_contents
+ &(vtt_dd7600[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7600),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names213,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07600 : dd7600 {
+ int e;
+ ~ee07600(); // tgen
+ ee07600(); // tgen
+};
+//SIG(1 ee07600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07600 ::~ee07600(){ note_dtor("ee07600", this);} // tgen
+ee07600 ::ee07600(){ note_ctor("ee07600", this);} // tgen
+
+static void Test_ee07600()
+{
+ extern Class_Descriptor cd_ee07600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07600, buf);
+ ee07600 *dp, &lv = *(dp=new (buf) ee07600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee07600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee07600");
+ check_base_class_offset(lv, (cc600*)(dd7600*), ABISELECT(16,12), "ee07600");
+ check_base_class_offset(lv, (dd7600*), 0, "ee07600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07600.e");
+ test_class_info(&lv, &cd_ee07600);
+ dp->~ee07600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07600(Test_ee07600, "ee07600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07600C1Ev();
+extern void _ZN7ee07600D1Ev();
+Name_Map name_map_ee07600[] = {
+ NSPAIR(_ZN7ee07600C1Ev),
+ NSPAIR(_ZN7ee07600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd7600;
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static Base_Class bases_ee07600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7600__7ee07600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd7600__7ee07600[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+static VTT_ENTRY vtt_ee07600[] = {
+ {&(_ZTV7ee07600[3]), 3,11},
+ {&(_tg__ZTV6dd7600__7ee07600[3]), 3,5},
+ {&(_tg__ZTV5cc600__6dd7600__7ee07600[4]), 4,6},
+ {&(_ZTV7ee07600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07600[];
+extern VTBL_ENTRY _ZTV7ee07600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07600[];
+static VTBL_ENTRY alt_thunk_names214[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07600 = { "ee07600", // class name
+ bases_ee07600, 4,
+ &(vtc_ee07600[0]), // expected_vtbl_contents
+ &(vtt_ee07600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names214,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17600 : virtual dd7600 {
+ int e;
+ ~ee17600(); // tgen
+ ee17600(); // tgen
+};
+//SIG(1 ee17600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17600 ::~ee17600(){ note_dtor("ee17600", this);} // tgen
+ee17600 ::ee17600(){ note_ctor("ee17600", this);} // tgen
+
+static void Test_ee17600()
+{
+ extern Class_Descriptor cd_ee17600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17600, buf);
+ ee17600 *dp, &lv = *(dp=new (buf) ee17600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee17600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee17600");
+ check_base_class_offset(lv, (cc600*)(dd7600*), ABISELECT(32,16), "ee17600");
+ check_base_class_offset(lv, (dd7600*), ABISELECT(16,8), "ee17600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17600.e");
+ test_class_info(&lv, &cd_ee17600);
+ dp->~ee17600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17600(Test_ee17600, "ee17600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17600C1Ev();
+extern void _ZN7ee17600D1Ev();
+Name_Map name_map_ee17600[] = {
+ NSPAIR(_ZN7ee17600C1Ev),
+ NSPAIR(_ZN7ee17600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd7600;
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static Base_Class bases_ee17600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7600, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17600[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7600__7ee17600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd7600__7ee17600[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+static VTT_ENTRY vtt_ee17600[] = {
+ {&(_ZTV7ee17600[4]), 4,17},
+ {&(_ZTV7ee17600[9]), 9,17},
+ {&(_ZTV7ee17600[15]), 15,17},
+ {&(_tg__ZTV6dd7600__7ee17600[3]), 3,5},
+ {&(_tg__ZTV5cc600__6dd7600__7ee17600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17600[];
+extern VTBL_ENTRY _ZTV7ee17600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17600[];
+static VTBL_ENTRY alt_thunk_names215[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17600 = { "ee17600", // class name
+ bases_ee17600, 4,
+ &(vtc_ee17600[0]), // expected_vtbl_contents
+ &(vtt_ee17600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17600),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names215,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27600 : dd7600 {
+ int e;
+ virtual void foo(); // _ZN7ee276003fooEv
+ ~ee27600(); // tgen
+ ee27600(); // tgen
+};
+//SIG(1 ee27600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27600 ::foo(){vfunc_called(this, "_ZN7ee276003fooEv");}
+ee27600 ::~ee27600(){ note_dtor("ee27600", this);} // tgen
+ee27600 ::ee27600(){ note_ctor("ee27600", this);} // tgen
+
+static void Test_ee27600()
+{
+ extern Class_Descriptor cd_ee27600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27600, buf);
+ ee27600 *dp, &lv = *(dp=new (buf) ee27600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee27600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee27600");
+ check_base_class_offset(lv, (cc600*)(dd7600*), ABISELECT(16,12), "ee27600");
+ check_base_class_offset(lv, (dd7600*), 0, "ee27600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27600.e");
+ test_class_info(&lv, &cd_ee27600);
+ dp->~ee27600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27600(Test_ee27600, "ee27600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27600C1Ev();
+extern void _ZN7ee27600D1Ev();
+Name_Map name_map_ee27600[] = {
+ NSPAIR(_ZN7ee27600C1Ev),
+ NSPAIR(_ZN7ee27600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd7600;
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static Base_Class bases_ee27600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN7ee276003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee276003fooEv,_ZTv0_n12_N7ee276003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276003fooEv,_ZThn12_N7ee276003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN7ee276003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276003fooEv,_ZTv0_n12_N7ee276003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7600__7ee27600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd7600__7ee27600[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+static VTT_ENTRY vtt_ee27600[] = {
+ {&(_ZTV7ee27600[3]), 3,11},
+ {&(_tg__ZTV6dd7600__7ee27600[3]), 3,5},
+ {&(_tg__ZTV5cc600__6dd7600__7ee27600[4]), 4,6},
+ {&(_ZTV7ee27600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27600[];
+extern VTBL_ENTRY _ZTV7ee27600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27600[];
+static VTBL_ENTRY alt_thunk_names216[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276003fooEv,_ZTv0_n12_N7ee276003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276003fooEv,_ZThn12_N7ee276003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27600 = { "ee27600", // class name
+ bases_ee27600, 4,
+ &(vtc_ee27600[0]), // expected_vtbl_contents
+ &(vtt_ee27600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names216,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37600 : virtual dd7600 {
+ int e;
+ virtual void foo(); // _ZN7ee376003fooEv
+ ~ee37600(); // tgen
+ ee37600(); // tgen
+};
+//SIG(1 ee37600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37600 ::foo(){vfunc_called(this, "_ZN7ee376003fooEv");}
+ee37600 ::~ee37600(){ note_dtor("ee37600", this);} // tgen
+ee37600 ::ee37600(){ note_ctor("ee37600", this);} // tgen
+
+static void Test_ee37600()
+{
+ extern Class_Descriptor cd_ee37600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37600, buf);
+ ee37600 *dp, &lv = *(dp=new (buf) ee37600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee37600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee37600");
+ check_base_class_offset(lv, (cc600*)(dd7600*), ABISELECT(32,16), "ee37600");
+ check_base_class_offset(lv, (dd7600*), ABISELECT(16,8), "ee37600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37600.e");
+ test_class_info(&lv, &cd_ee37600);
+ dp->~ee37600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37600(Test_ee37600, "ee37600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37600C1Ev();
+extern void _ZN7ee37600D1Ev();
+Name_Map name_map_ee37600[] = {
+ NSPAIR(_ZN7ee37600C1Ev),
+ NSPAIR(_ZN7ee37600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd7600;
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static Base_Class bases_ee37600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37600[];
+extern void _ZN7ee376003fooEv();
+extern void _ZN6dd76003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376003fooEv,_ZTv0_n20_N7ee376003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376003fooEv,_ZThn8_N7ee376003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376003fooEv,_ZTv0_n12_N7ee376003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376003fooEv,_ZThn16_N7ee376003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37600[0]),
+ (VTBL_ENTRY)&_ZN7ee376003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376003fooEv,_ZTv0_n20_N7ee376003fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376003fooEv,_ZTv0_n12_N7ee376003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7600__7ee37600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd7600__7ee37600[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+static VTT_ENTRY vtt_ee37600[] = {
+ {&(_ZTV7ee37600[4]), 4,18},
+ {&(_ZTV7ee37600[10]), 10,18},
+ {&(_ZTV7ee37600[16]), 16,18},
+ {&(_tg__ZTV6dd7600__7ee37600[3]), 3,5},
+ {&(_tg__ZTV5cc600__6dd7600__7ee37600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37600[];
+extern VTBL_ENTRY _ZTV7ee37600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37600[];
+static VTBL_ENTRY alt_thunk_names217[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376003fooEv,_ZTv0_n12_N7ee376003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376003fooEv,_ZThn16_N7ee376003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376003fooEv,_ZTv0_n20_N7ee376003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376003fooEv,_ZThn8_N7ee376003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37600 = { "ee37600", // class name
+ bases_ee37600, 4,
+ &(vtc_ee37600[0]), // expected_vtbl_contents
+ &(vtt_ee37600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37600),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names217,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47600 : dd7600 {
+ int e;
+ virtual void bar(); // _ZN7ee476003barEv
+ ~ee47600(); // tgen
+ ee47600(); // tgen
+};
+//SIG(1 ee47600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47600 ::bar(){vfunc_called(this, "_ZN7ee476003barEv");}
+ee47600 ::~ee47600(){ note_dtor("ee47600", this);} // tgen
+ee47600 ::ee47600(){ note_ctor("ee47600", this);} // tgen
+
+static void Test_ee47600()
+{
+ extern Class_Descriptor cd_ee47600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47600, buf);
+ ee47600 *dp, &lv = *(dp=new (buf) ee47600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee47600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee47600");
+ check_base_class_offset(lv, (cc600*)(dd7600*), ABISELECT(16,12), "ee47600");
+ check_base_class_offset(lv, (dd7600*), 0, "ee47600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47600.e");
+ test_class_info(&lv, &cd_ee47600);
+ dp->~ee47600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47600(Test_ee47600, "ee47600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47600C1Ev();
+extern void _ZN7ee47600D1Ev();
+Name_Map name_map_ee47600[] = {
+ NSPAIR(_ZN7ee47600C1Ev),
+ NSPAIR(_ZN7ee47600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd7600;
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static Base_Class bases_ee47600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47600[];
+extern void _ZN7ee476003barEv();
+extern void _ZN6dd76003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476003barEv,_ZTv0_n16_N7ee476003barEv)();
+extern void ABISELECT(_ZThn16_N7ee476003barEv,_ZThn12_N7ee476003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47600[0]),
+ (VTBL_ENTRY)&_ZN7ee476003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476003barEv,_ZTv0_n16_N7ee476003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7600__7ee47600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd7600__7ee47600[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+static VTT_ENTRY vtt_ee47600[] = {
+ {&(_ZTV7ee47600[3]), 3,11},
+ {&(_tg__ZTV6dd7600__7ee47600[3]), 3,5},
+ {&(_tg__ZTV5cc600__6dd7600__7ee47600[4]), 4,6},
+ {&(_ZTV7ee47600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47600[];
+extern VTBL_ENTRY _ZTV7ee47600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47600[];
+static VTBL_ENTRY alt_thunk_names218[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476003barEv,_ZTv0_n16_N7ee476003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476003barEv,_ZThn12_N7ee476003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47600 = { "ee47600", // class name
+ bases_ee47600, 4,
+ &(vtc_ee47600[0]), // expected_vtbl_contents
+ &(vtt_ee47600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names218,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57600 : virtual dd7600 {
+ int e;
+ virtual void bar(); // _ZN7ee576003barEv
+ ~ee57600(); // tgen
+ ee57600(); // tgen
+};
+//SIG(1 ee57600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57600 ::bar(){vfunc_called(this, "_ZN7ee576003barEv");}
+ee57600 ::~ee57600(){ note_dtor("ee57600", this);} // tgen
+ee57600 ::ee57600(){ note_ctor("ee57600", this);} // tgen
+
+static void Test_ee57600()
+{
+ extern Class_Descriptor cd_ee57600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57600, buf);
+ ee57600 *dp, &lv = *(dp=new (buf) ee57600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee57600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee57600");
+ check_base_class_offset(lv, (cc600*)(dd7600*), ABISELECT(32,16), "ee57600");
+ check_base_class_offset(lv, (dd7600*), ABISELECT(16,8), "ee57600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57600.e");
+ test_class_info(&lv, &cd_ee57600);
+ dp->~ee57600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57600(Test_ee57600, "ee57600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57600C1Ev();
+extern void _ZN7ee57600D1Ev();
+Name_Map name_map_ee57600[] = {
+ NSPAIR(_ZN7ee57600C1Ev),
+ NSPAIR(_ZN7ee57600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd7600;
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static Base_Class bases_ee57600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7600, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57600[];
+extern void _ZN7ee576003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576003barEv,_ZTv0_n16_N7ee576003barEv)();
+extern void ABISELECT(_ZThn16_N7ee576003barEv,_ZThn8_N7ee576003barEv)() __attribute__((weak));
+extern void _ZN6dd76003fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576003barEv,_ZTv0_n16_N7ee576003barEv)();
+extern void ABISELECT(_ZThn32_N7ee576003barEv,_ZThn16_N7ee576003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57600[0]),
+ (VTBL_ENTRY)&_ZN7ee576003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576003barEv,_ZTv0_n16_N7ee576003barEv),
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576003barEv,_ZTv0_n16_N7ee576003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7600__7ee57600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd7600__7ee57600[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+static VTT_ENTRY vtt_ee57600[] = {
+ {&(_ZTV7ee57600[4]), 4,18},
+ {&(_ZTV7ee57600[10]), 10,18},
+ {&(_ZTV7ee57600[16]), 16,18},
+ {&(_tg__ZTV6dd7600__7ee57600[3]), 3,5},
+ {&(_tg__ZTV5cc600__6dd7600__7ee57600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57600[];
+extern VTBL_ENTRY _ZTV7ee57600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57600[];
+static VTBL_ENTRY alt_thunk_names219[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576003barEv,_ZTv0_n16_N7ee576003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576003barEv,_ZThn16_N7ee576003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576003barEv,_ZThn8_N7ee576003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57600 = { "ee57600", // class name
+ bases_ee57600, 4,
+ &(vtc_ee57600[0]), // expected_vtbl_contents
+ &(vtt_ee57600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57600),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names219,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67600 : dd7600 {
+ int e;
+ virtual void foo(); // _ZN7ee676003fooEv
+ virtual void bar(); // _ZN7ee676003barEv
+ ~ee67600(); // tgen
+ ee67600(); // tgen
+};
+//SIG(1 ee67600) C1{ BC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67600 ::foo(){vfunc_called(this, "_ZN7ee676003fooEv");}
+void ee67600 ::bar(){vfunc_called(this, "_ZN7ee676003barEv");}
+ee67600 ::~ee67600(){ note_dtor("ee67600", this);} // tgen
+ee67600 ::ee67600(){ note_ctor("ee67600", this);} // tgen
+
+static void Test_ee67600()
+{
+ extern Class_Descriptor cd_ee67600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67600, buf);
+ ee67600 *dp, &lv = *(dp=new (buf) ee67600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(24,16), "ee67600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(24,16), "ee67600");
+ check_base_class_offset(lv, (cc600*)(dd7600*), ABISELECT(16,12), "ee67600");
+ check_base_class_offset(lv, (dd7600*), 0, "ee67600");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67600.e");
+ test_class_info(&lv, &cd_ee67600);
+ dp->~ee67600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67600(Test_ee67600, "ee67600", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67600C1Ev();
+extern void _ZN7ee67600D1Ev();
+Name_Map name_map_ee67600[] = {
+ NSPAIR(_ZN7ee67600C1Ev),
+ NSPAIR(_ZN7ee67600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd7600;
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static Base_Class bases_ee67600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7600, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67600[];
+extern void _ZN7ee676003barEv();
+extern void _ZN7ee676003fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676003fooEv,_ZTv0_n12_N7ee676003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676003fooEv,_ZThn12_N7ee676003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676003barEv,_ZTv0_n16_N7ee676003barEv)();
+extern void ABISELECT(_ZThn16_N7ee676003barEv,_ZThn12_N7ee676003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67600[0]),
+ (VTBL_ENTRY)&_ZN7ee676003barEv,
+ (VTBL_ENTRY)&_ZN7ee676003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676003fooEv,_ZTv0_n12_N7ee676003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676003barEv,_ZTv0_n16_N7ee676003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7600__7ee67600[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd7600__7ee67600[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+static VTT_ENTRY vtt_ee67600[] = {
+ {&(_ZTV7ee67600[3]), 3,11},
+ {&(_tg__ZTV6dd7600__7ee67600[3]), 3,5},
+ {&(_tg__ZTV5cc600__6dd7600__7ee67600[4]), 4,6},
+ {&(_ZTV7ee67600[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67600[];
+extern VTBL_ENTRY _ZTV7ee67600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67600[];
+static VTBL_ENTRY alt_thunk_names220[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn12_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn12_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676003barEv,_ZTv0_n16_N7ee676003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676003barEv,_ZThn12_N7ee676003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676003fooEv,_ZTv0_n12_N7ee676003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676003fooEv,_ZThn12_N7ee676003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67600 = { "ee67600", // class name
+ bases_ee67600, 4,
+ &(vtc_ee67600[0]), // expected_vtbl_contents
+ &(vtt_ee67600[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67600),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67600),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67600),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names220,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77600 : virtual dd7600 {
+ int e;
+ virtual void foo(); // _ZN7ee776003fooEv
+ virtual void bar(); // _ZN7ee776003barEv
+ ~ee77600(); // tgen
+ ee77600(); // tgen
+};
+//SIG(1 ee77600) C1{ VBC2{ VBC3{ BC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77600 ::foo(){vfunc_called(this, "_ZN7ee776003fooEv");}
+void ee77600 ::bar(){vfunc_called(this, "_ZN7ee776003barEv");}
+ee77600 ::~ee77600(){ note_dtor("ee77600", this);} // tgen
+ee77600 ::ee77600(){ note_ctor("ee77600", this);} // tgen
+
+static void Test_ee77600()
+{
+ extern Class_Descriptor cd_ee77600;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77600, buf);
+ ee77600 *dp, &lv = *(dp=new (buf) ee77600());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77600)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77600)");
+ check_base_class_offset(lv, (aa0*)(bb00*)(cc600*), ABISELECT(40,20), "ee77600");
+ check_base_class_offset(lv, (bb00*)(cc600*), ABISELECT(40,20), "ee77600");
+ check_base_class_offset(lv, (cc600*)(dd7600*), ABISELECT(32,16), "ee77600");
+ check_base_class_offset(lv, (dd7600*), ABISELECT(16,8), "ee77600");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77600.e");
+ test_class_info(&lv, &cd_ee77600);
+ dp->~ee77600();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77600(Test_ee77600, "ee77600", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77600C1Ev();
+extern void _ZN7ee77600D1Ev();
+Name_Map name_map_ee77600[] = {
+ NSPAIR(_ZN7ee77600C1Ev),
+ NSPAIR(_ZN7ee77600D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc600;
+extern VTBL_ENTRY _ZTI5cc600[];
+extern VTBL_ENTRY _ZTV5cc600[];
+extern Class_Descriptor cd_dd7600;
+extern VTBL_ENTRY _ZTI6dd7600[];
+extern VTBL_ENTRY _ZTV6dd7600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7600[];
+static Base_Class bases_ee77600[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(40,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc600, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7600, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77600[];
+extern void _ZN7ee776003fooEv();
+extern void _ZN7ee776003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776003barEv,_ZTv0_n16_N7ee776003barEv)();
+extern void ABISELECT(_ZThn16_N7ee776003barEv,_ZThn8_N7ee776003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776003fooEv,_ZTv0_n20_N7ee776003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776003fooEv,_ZThn8_N7ee776003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776003fooEv,_ZTv0_n12_N7ee776003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776003fooEv,_ZThn16_N7ee776003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776003barEv,_ZTv0_n16_N7ee776003barEv)();
+extern void ABISELECT(_ZThn32_N7ee776003barEv,_ZThn16_N7ee776003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77600[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77600[0]),
+ (VTBL_ENTRY)&_ZN7ee776003fooEv,
+ (VTBL_ENTRY)&_ZN7ee776003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776003barEv,_ZTv0_n16_N7ee776003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776003fooEv,_ZTv0_n20_N7ee776003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776003fooEv,_ZTv0_n12_N7ee776003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776003barEv,_ZTv0_n16_N7ee776003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77600[];
+extern void _ZN6dd76003barEv();
+extern void _ZN6dd76003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7600__7ee77600[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&_ZN6dd76003barEv,
+ (VTBL_ENTRY)&_ZN6dd76003fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv)();
+extern void ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc600__6dd7600__7ee77600[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7600[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv),
+};
+static VTT_ENTRY vtt_ee77600[] = {
+ {&(_ZTV7ee77600[4]), 4,19},
+ {&(_ZTV7ee77600[11]), 11,19},
+ {&(_ZTV7ee77600[17]), 17,19},
+ {&(_tg__ZTV6dd7600__7ee77600[3]), 3,5},
+ {&(_tg__ZTV5cc600__6dd7600__7ee77600[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77600[];
+extern VTBL_ENTRY _ZTV7ee77600[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77600[];
+static VTBL_ENTRY alt_thunk_names221[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76003barEv,_ZTv0_n16_N6dd76003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003barEv,_ZThn8_N6dd76003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76003fooEv,_ZTv0_n12_N6dd76003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76003fooEv,_ZThn8_N6dd76003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776003fooEv,_ZTv0_n12_N7ee776003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776003fooEv,_ZThn16_N7ee776003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776003fooEv,_ZTv0_n20_N7ee776003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776003fooEv,_ZThn8_N7ee776003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776003barEv,_ZTv0_n16_N7ee776003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776003barEv,_ZThn16_N7ee776003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776003barEv,_ZThn8_N7ee776003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77600 = { "ee77600", // class name
+ bases_ee77600, 4,
+ &(vtc_ee77600[0]), // expected_vtbl_contents
+ &(vtt_ee77600[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77600),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77600),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77600),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names221,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc700 : virtual bb00 {
+ int c;
+ virtual void foo(); // _ZN5cc7003fooEv
+ virtual void bar(); // _ZN5cc7003barEv
+ ~cc700(); // tgen
+ cc700(); // tgen
+};
+//SIG(-1 cc700) C1{ VBC2{ BC3{ Fi} Fi} v1 v2 Fi}
+
+
+void cc700 ::foo(){vfunc_called(this, "_ZN5cc7003fooEv");}
+void cc700 ::bar(){vfunc_called(this, "_ZN5cc7003barEv");}
+cc700 ::~cc700(){ note_dtor("cc700", this);} // tgen
+cc700 ::cc700(){ note_ctor("cc700", this);} // tgen
+
+static void Test_cc700()
+{
+ extern Class_Descriptor cd_cc700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc700, buf);
+ cc700 *dp, &lv = *(dp=new (buf) cc700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(12,8), "cc700");
+ check_base_class_offset(lv, (bb00*), ABISELECT(12,8), "cc700");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc700.c");
+ test_class_info(&lv, &cd_cc700);
+ dp->~cc700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc700(Test_cc700, "cc700", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc700C1Ev();
+extern void _ZN5cc700D1Ev();
+Name_Map name_map_cc700[] = {
+ NSPAIR(_ZN5cc700C1Ev),
+ NSPAIR(_ZN5cc700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+static Base_Class bases_cc700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(12,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_cc700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV5cc700[];
+static VTT_ENTRY vtt_cc700[] = {
+ {&(_ZTV5cc700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+Class_Descriptor cd_cc700 = { "cc700", // class name
+ bases_cc700, 2,
+ &(vtc_cc700[0]), // expected_vtbl_contents
+ &(vtt_cc700[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc700),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 dd0700 : cc700 {
+ int d;
+ ~dd0700(); // tgen
+ dd0700(); // tgen
+};
+//SIG(-1 dd0700) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd0700 ::~dd0700(){ note_dtor("dd0700", this);} // tgen
+dd0700 ::dd0700(){ note_ctor("dd0700", this);} // tgen
+
+static void Test_dd0700()
+{
+ extern Class_Descriptor cd_dd0700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0700, buf);
+ dd0700 *dp, &lv = *(dp=new (buf) dd0700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd0700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(16,12), "dd0700");
+ check_base_class_offset(lv, (cc700*), 0, "dd0700");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0700.d");
+ test_class_info(&lv, &cd_dd0700);
+ dp->~dd0700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0700(Test_dd0700, "dd0700", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0700C1Ev();
+extern void _ZN6dd0700D1Ev();
+Name_Map name_map_dd0700[] = {
+ NSPAIR(_ZN6dd0700C1Ev),
+ NSPAIR(_ZN6dd0700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+static Base_Class bases_dd0700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_dd0700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd0700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_dd0700[] = {
+ {&(_ZTV6dd0700[3]), 3,5},
+ {&(_tg__ZTV5cc700__6dd0700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+Class_Descriptor cd_dd0700 = { "dd0700", // class name
+ bases_dd0700, 3,
+ &(vtc_dd0700[0]), // expected_vtbl_contents
+ &(vtt_dd0700[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0700),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 ee00700 : dd0700 {
+ int e;
+ ~ee00700(); // tgen
+ ee00700(); // tgen
+};
+//SIG(1 ee00700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00700 ::~ee00700(){ note_dtor("ee00700", this);} // tgen
+ee00700 ::ee00700(){ note_ctor("ee00700", this);} // tgen
+
+static void Test_ee00700()
+{
+ extern Class_Descriptor cd_ee00700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00700, buf);
+ ee00700 *dp, &lv = *(dp=new (buf) ee00700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee00700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd0700*), ABISELECT(20,16), "ee00700");
+ check_base_class_offset(lv, (cc700*)(dd0700*), 0, "ee00700");
+ check_base_class_offset(lv, (dd0700*), 0, "ee00700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00700.e");
+ test_class_info(&lv, &cd_ee00700);
+ dp->~ee00700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00700(Test_ee00700, "ee00700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00700C1Ev();
+extern void _ZN7ee00700D1Ev();
+Name_Map name_map_ee00700[] = {
+ NSPAIR(_ZN7ee00700C1Ev),
+ NSPAIR(_ZN7ee00700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd0700;
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+static Base_Class bases_ee00700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee00700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee00700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0700__7ee00700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd0700__7ee00700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee00700[] = {
+ {&(_ZTV7ee00700[3]), 3,5},
+ {&(_tg__ZTV6dd0700__7ee00700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd0700__7ee00700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee00700[];
+extern VTBL_ENTRY _ZTV7ee00700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00700[];
+Class_Descriptor cd_ee00700 = { "ee00700", // class name
+ bases_ee00700, 4,
+ &(vtc_ee00700[0]), // expected_vtbl_contents
+ &(vtt_ee00700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00700),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 ee10700 : virtual dd0700 {
+ int e;
+ ~ee10700(); // tgen
+ ee10700(); // tgen
+};
+//SIG(1 ee10700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10700 ::~ee10700(){ note_dtor("ee10700", this);} // tgen
+ee10700 ::ee10700(){ note_ctor("ee10700", this);} // tgen
+
+static void Test_ee10700()
+{
+ extern Class_Descriptor cd_ee10700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10700, buf);
+ ee10700 *dp, &lv = *(dp=new (buf) ee10700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee10700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd0700*), ABISELECT(32,20), "ee10700");
+ check_base_class_offset(lv, (cc700*)(dd0700*), ABISELECT(16,8), "ee10700");
+ check_base_class_offset(lv, (dd0700*), ABISELECT(16,8), "ee10700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10700.e");
+ test_class_info(&lv, &cd_ee10700);
+ dp->~ee10700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10700(Test_ee10700, "ee10700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10700C1Ev();
+extern void _ZN7ee10700D1Ev();
+Name_Map name_map_ee10700[] = {
+ NSPAIR(_ZN7ee10700C1Ev),
+ NSPAIR(_ZN7ee10700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd0700;
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+static Base_Class bases_ee10700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0700, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee10700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10700[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0700__7ee10700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd0700__7ee10700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee10700[] = {
+ {&(_ZTV7ee10700[4]), 4,11},
+ {&(_ZTV7ee10700[9]), 9,11},
+ {&(_tg__ZTV6dd0700__7ee10700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd0700__7ee10700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee10700[];
+extern VTBL_ENTRY _ZTV7ee10700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10700[];
+Class_Descriptor cd_ee10700 = { "ee10700", // class name
+ bases_ee10700, 4,
+ &(vtc_ee10700[0]), // expected_vtbl_contents
+ &(vtt_ee10700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10700),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10700),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 ee20700 : dd0700 {
+ int e;
+ virtual void foo(); // _ZN7ee207003fooEv
+ ~ee20700(); // tgen
+ ee20700(); // tgen
+};
+//SIG(1 ee20700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20700 ::foo(){vfunc_called(this, "_ZN7ee207003fooEv");}
+ee20700 ::~ee20700(){ note_dtor("ee20700", this);} // tgen
+ee20700 ::ee20700(){ note_ctor("ee20700", this);} // tgen
+
+static void Test_ee20700()
+{
+ extern Class_Descriptor cd_ee20700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20700, buf);
+ ee20700 *dp, &lv = *(dp=new (buf) ee20700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee20700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd0700*), ABISELECT(20,16), "ee20700");
+ check_base_class_offset(lv, (cc700*)(dd0700*), 0, "ee20700");
+ check_base_class_offset(lv, (dd0700*), 0, "ee20700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20700.e");
+ test_class_info(&lv, &cd_ee20700);
+ dp->~ee20700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20700(Test_ee20700, "ee20700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20700C1Ev();
+extern void _ZN7ee20700D1Ev();
+Name_Map name_map_ee20700[] = {
+ NSPAIR(_ZN7ee20700C1Ev),
+ NSPAIR(_ZN7ee20700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd0700;
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+static Base_Class bases_ee20700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee20700[];
+extern void _ZN7ee207003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee20700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20700[0]),
+ (VTBL_ENTRY)&_ZN7ee207003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0700__7ee20700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd0700__7ee20700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee20700[] = {
+ {&(_ZTV7ee20700[3]), 3,5},
+ {&(_tg__ZTV6dd0700__7ee20700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd0700__7ee20700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee20700[];
+extern VTBL_ENTRY _ZTV7ee20700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20700[];
+Class_Descriptor cd_ee20700 = { "ee20700", // class name
+ bases_ee20700, 4,
+ &(vtc_ee20700[0]), // expected_vtbl_contents
+ &(vtt_ee20700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20700),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 ee30700 : virtual dd0700 {
+ int e;
+ virtual void foo(); // _ZN7ee307003fooEv
+ ~ee30700(); // tgen
+ ee30700(); // tgen
+};
+//SIG(1 ee30700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30700 ::foo(){vfunc_called(this, "_ZN7ee307003fooEv");}
+ee30700 ::~ee30700(){ note_dtor("ee30700", this);} // tgen
+ee30700 ::ee30700(){ note_ctor("ee30700", this);} // tgen
+
+static void Test_ee30700()
+{
+ extern Class_Descriptor cd_ee30700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30700, buf);
+ ee30700 *dp, &lv = *(dp=new (buf) ee30700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee30700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd0700*), ABISELECT(32,20), "ee30700");
+ check_base_class_offset(lv, (cc700*)(dd0700*), ABISELECT(16,8), "ee30700");
+ check_base_class_offset(lv, (dd0700*), ABISELECT(16,8), "ee30700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30700.e");
+ test_class_info(&lv, &cd_ee30700);
+ dp->~ee30700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30700(Test_ee30700, "ee30700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30700C1Ev();
+extern void _ZN7ee30700D1Ev();
+Name_Map name_map_ee30700[] = {
+ NSPAIR(_ZN7ee30700C1Ev),
+ NSPAIR(_ZN7ee30700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd0700;
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+static Base_Class bases_ee30700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30700[];
+extern void _ZN7ee307003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307003fooEv,_ZTv0_n16_N7ee307003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307003fooEv,_ZThn8_N7ee307003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee30700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30700[0]),
+ (VTBL_ENTRY)&_ZN7ee307003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307003fooEv,_ZTv0_n16_N7ee307003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0700__7ee30700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd0700__7ee30700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee30700[] = {
+ {&(_ZTV7ee30700[4]), 4,12},
+ {&(_ZTV7ee30700[10]), 10,12},
+ {&(_tg__ZTV6dd0700__7ee30700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd0700__7ee30700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee30700[];
+extern VTBL_ENTRY _ZTV7ee30700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30700[];
+static VTBL_ENTRY alt_thunk_names222[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307003fooEv,_ZTv0_n16_N7ee307003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307003fooEv,_ZThn8_N7ee307003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30700 = { "ee30700", // class name
+ bases_ee30700, 4,
+ &(vtc_ee30700[0]), // expected_vtbl_contents
+ &(vtt_ee30700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names222,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40700 : dd0700 {
+ int e;
+ virtual void bar(); // _ZN7ee407003barEv
+ ~ee40700(); // tgen
+ ee40700(); // tgen
+};
+//SIG(1 ee40700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40700 ::bar(){vfunc_called(this, "_ZN7ee407003barEv");}
+ee40700 ::~ee40700(){ note_dtor("ee40700", this);} // tgen
+ee40700 ::ee40700(){ note_ctor("ee40700", this);} // tgen
+
+static void Test_ee40700()
+{
+ extern Class_Descriptor cd_ee40700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40700, buf);
+ ee40700 *dp, &lv = *(dp=new (buf) ee40700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee40700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd0700*), ABISELECT(20,16), "ee40700");
+ check_base_class_offset(lv, (cc700*)(dd0700*), 0, "ee40700");
+ check_base_class_offset(lv, (dd0700*), 0, "ee40700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40700.e");
+ test_class_info(&lv, &cd_ee40700);
+ dp->~ee40700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40700(Test_ee40700, "ee40700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40700C1Ev();
+extern void _ZN7ee40700D1Ev();
+Name_Map name_map_ee40700[] = {
+ NSPAIR(_ZN7ee40700C1Ev),
+ NSPAIR(_ZN7ee40700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd0700;
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+static Base_Class bases_ee40700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee40700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN7ee407003barEv();
+static VTBL_ENTRY vtc_ee40700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN7ee407003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0700__7ee40700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd0700__7ee40700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee40700[] = {
+ {&(_ZTV7ee40700[3]), 3,5},
+ {&(_tg__ZTV6dd0700__7ee40700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd0700__7ee40700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee40700[];
+extern VTBL_ENTRY _ZTV7ee40700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40700[];
+Class_Descriptor cd_ee40700 = { "ee40700", // class name
+ bases_ee40700, 4,
+ &(vtc_ee40700[0]), // expected_vtbl_contents
+ &(vtt_ee40700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40700),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 ee50700 : virtual dd0700 {
+ int e;
+ virtual void bar(); // _ZN7ee507003barEv
+ ~ee50700(); // tgen
+ ee50700(); // tgen
+};
+//SIG(1 ee50700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50700 ::bar(){vfunc_called(this, "_ZN7ee507003barEv");}
+ee50700 ::~ee50700(){ note_dtor("ee50700", this);} // tgen
+ee50700 ::ee50700(){ note_ctor("ee50700", this);} // tgen
+
+static void Test_ee50700()
+{
+ extern Class_Descriptor cd_ee50700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50700, buf);
+ ee50700 *dp, &lv = *(dp=new (buf) ee50700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee50700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd0700*), ABISELECT(32,20), "ee50700");
+ check_base_class_offset(lv, (cc700*)(dd0700*), ABISELECT(16,8), "ee50700");
+ check_base_class_offset(lv, (dd0700*), ABISELECT(16,8), "ee50700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50700.e");
+ test_class_info(&lv, &cd_ee50700);
+ dp->~ee50700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50700(Test_ee50700, "ee50700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50700C1Ev();
+extern void _ZN7ee50700D1Ev();
+Name_Map name_map_ee50700[] = {
+ NSPAIR(_ZN7ee50700C1Ev),
+ NSPAIR(_ZN7ee50700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd0700;
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+static Base_Class bases_ee50700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50700[];
+extern void _ZN7ee507003barEv();
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507003barEv,_ZTv0_n20_N7ee507003barEv)();
+extern void ABISELECT(_ZThn16_N7ee507003barEv,_ZThn8_N7ee507003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50700[0]),
+ (VTBL_ENTRY)&_ZN7ee507003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507003barEv,_ZTv0_n20_N7ee507003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0700__7ee50700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd0700__7ee50700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee50700[] = {
+ {&(_ZTV7ee50700[4]), 4,12},
+ {&(_ZTV7ee50700[10]), 10,12},
+ {&(_tg__ZTV6dd0700__7ee50700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd0700__7ee50700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee50700[];
+extern VTBL_ENTRY _ZTV7ee50700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50700[];
+static VTBL_ENTRY alt_thunk_names223[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507003barEv,_ZTv0_n20_N7ee507003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507003barEv,_ZThn8_N7ee507003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50700 = { "ee50700", // class name
+ bases_ee50700, 4,
+ &(vtc_ee50700[0]), // expected_vtbl_contents
+ &(vtt_ee50700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names223,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60700 : dd0700 {
+ int e;
+ virtual void foo(); // _ZN7ee607003fooEv
+ virtual void bar(); // _ZN7ee607003barEv
+ ~ee60700(); // tgen
+ ee60700(); // tgen
+};
+//SIG(1 ee60700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60700 ::foo(){vfunc_called(this, "_ZN7ee607003fooEv");}
+void ee60700 ::bar(){vfunc_called(this, "_ZN7ee607003barEv");}
+ee60700 ::~ee60700(){ note_dtor("ee60700", this);} // tgen
+ee60700 ::ee60700(){ note_ctor("ee60700", this);} // tgen
+
+static void Test_ee60700()
+{
+ extern Class_Descriptor cd_ee60700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60700, buf);
+ ee60700 *dp, &lv = *(dp=new (buf) ee60700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee60700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd0700*), ABISELECT(20,16), "ee60700");
+ check_base_class_offset(lv, (cc700*)(dd0700*), 0, "ee60700");
+ check_base_class_offset(lv, (dd0700*), 0, "ee60700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60700.e");
+ test_class_info(&lv, &cd_ee60700);
+ dp->~ee60700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60700(Test_ee60700, "ee60700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60700C1Ev();
+extern void _ZN7ee60700D1Ev();
+Name_Map name_map_ee60700[] = {
+ NSPAIR(_ZN7ee60700C1Ev),
+ NSPAIR(_ZN7ee60700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd0700;
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+static Base_Class bases_ee60700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee60700[];
+extern void _ZN7ee607003fooEv();
+extern void _ZN7ee607003barEv();
+static VTBL_ENTRY vtc_ee60700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60700[0]),
+ (VTBL_ENTRY)&_ZN7ee607003fooEv,
+ (VTBL_ENTRY)&_ZN7ee607003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee60700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0700__7ee60700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd0700__7ee60700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee60700[] = {
+ {&(_ZTV7ee60700[3]), 3,5},
+ {&(_tg__ZTV6dd0700__7ee60700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd0700__7ee60700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee60700[];
+extern VTBL_ENTRY _ZTV7ee60700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60700[];
+Class_Descriptor cd_ee60700 = { "ee60700", // class name
+ bases_ee60700, 4,
+ &(vtc_ee60700[0]), // expected_vtbl_contents
+ &(vtt_ee60700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60700),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 ee70700 : virtual dd0700 {
+ int e;
+ virtual void foo(); // _ZN7ee707003fooEv
+ virtual void bar(); // _ZN7ee707003barEv
+ ~ee70700(); // tgen
+ ee70700(); // tgen
+};
+//SIG(1 ee70700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70700 ::foo(){vfunc_called(this, "_ZN7ee707003fooEv");}
+void ee70700 ::bar(){vfunc_called(this, "_ZN7ee707003barEv");}
+ee70700 ::~ee70700(){ note_dtor("ee70700", this);} // tgen
+ee70700 ::ee70700(){ note_ctor("ee70700", this);} // tgen
+
+static void Test_ee70700()
+{
+ extern Class_Descriptor cd_ee70700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70700, buf);
+ ee70700 *dp, &lv = *(dp=new (buf) ee70700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee70700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd0700*), ABISELECT(32,20), "ee70700");
+ check_base_class_offset(lv, (cc700*)(dd0700*), ABISELECT(16,8), "ee70700");
+ check_base_class_offset(lv, (dd0700*), ABISELECT(16,8), "ee70700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70700.e");
+ test_class_info(&lv, &cd_ee70700);
+ dp->~ee70700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70700(Test_ee70700, "ee70700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70700C1Ev();
+extern void _ZN7ee70700D1Ev();
+Name_Map name_map_ee70700[] = {
+ NSPAIR(_ZN7ee70700C1Ev),
+ NSPAIR(_ZN7ee70700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd0700;
+extern VTBL_ENTRY _ZTI6dd0700[];
+extern VTBL_ENTRY _ZTV6dd0700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0700[];
+static Base_Class bases_ee70700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70700[];
+extern void _ZN7ee707003fooEv();
+extern void _ZN7ee707003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707003fooEv,_ZTv0_n16_N7ee707003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707003fooEv,_ZThn8_N7ee707003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707003barEv,_ZTv0_n20_N7ee707003barEv)();
+extern void ABISELECT(_ZThn16_N7ee707003barEv,_ZThn8_N7ee707003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70700[0]),
+ (VTBL_ENTRY)&_ZN7ee707003fooEv,
+ (VTBL_ENTRY)&_ZN7ee707003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707003fooEv,_ZTv0_n16_N7ee707003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707003barEv,_ZTv0_n20_N7ee707003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd0700__7ee70700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd0700__7ee70700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee70700[] = {
+ {&(_ZTV7ee70700[4]), 4,13},
+ {&(_ZTV7ee70700[11]), 11,13},
+ {&(_tg__ZTV6dd0700__7ee70700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd0700__7ee70700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee70700[];
+extern VTBL_ENTRY _ZTV7ee70700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70700[];
+static VTBL_ENTRY alt_thunk_names224[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707003barEv,_ZTv0_n20_N7ee707003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707003barEv,_ZThn8_N7ee707003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707003fooEv,_ZTv0_n16_N7ee707003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707003fooEv,_ZThn8_N7ee707003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70700 = { "ee70700", // class name
+ bases_ee70700, 4,
+ &(vtc_ee70700[0]), // expected_vtbl_contents
+ &(vtt_ee70700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names224,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1700 : virtual cc700 {
+ int d;
+ ~dd1700(); // tgen
+ dd1700(); // tgen
+};
+//SIG(-1 dd1700) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd1700 ::~dd1700(){ note_dtor("dd1700", this);} // tgen
+dd1700 ::dd1700(){ note_ctor("dd1700", this);} // tgen
+
+static void Test_dd1700()
+{
+ extern Class_Descriptor cd_dd1700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1700, buf);
+ dd1700 *dp, &lv = *(dp=new (buf) dd1700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd1700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,16), "dd1700");
+ check_base_class_offset(lv, (cc700*), ABISELECT(16,8), "dd1700");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1700.d");
+ test_class_info(&lv, &cd_dd1700);
+ dp->~dd1700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1700(Test_dd1700, "dd1700", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1700C1Ev();
+extern void _ZN6dd1700D1Ev();
+Name_Map name_map_dd1700[] = {
+ NSPAIR(_ZN6dd1700C1Ev),
+ NSPAIR(_ZN6dd1700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+static Base_Class bases_dd1700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_dd1700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_dd1700[] = {
+ {&(_ZTV6dd1700[4]), 4,11},
+ {&(_ZTV6dd1700[9]), 9,11},
+ {&(_tg__ZTV5cc700__6dd1700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+Class_Descriptor cd_dd1700 = { "dd1700", // class name
+ bases_dd1700, 3,
+ &(vtc_dd1700[0]), // expected_vtbl_contents
+ &(vtt_dd1700[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1700),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1700),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 ee01700 : dd1700 {
+ int e;
+ ~ee01700(); // tgen
+ ee01700(); // tgen
+};
+//SIG(1 ee01700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01700 ::~ee01700(){ note_dtor("ee01700", this);} // tgen
+ee01700 ::ee01700(){ note_ctor("ee01700", this);} // tgen
+
+static void Test_ee01700()
+{
+ extern Class_Descriptor cd_ee01700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01700, buf);
+ ee01700 *dp, &lv = *(dp=new (buf) ee01700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee01700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee01700");
+ check_base_class_offset(lv, (cc700*)(dd1700*), ABISELECT(16,12), "ee01700");
+ check_base_class_offset(lv, (dd1700*), 0, "ee01700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01700.e");
+ test_class_info(&lv, &cd_ee01700);
+ dp->~ee01700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01700(Test_ee01700, "ee01700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01700C1Ev();
+extern void _ZN7ee01700D1Ev();
+Name_Map name_map_ee01700[] = {
+ NSPAIR(_ZN7ee01700C1Ev),
+ NSPAIR(_ZN7ee01700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd1700;
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+static Base_Class bases_ee01700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee01700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee01700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01700[0]),
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01700[];
+static VTBL_ENTRY _tg__ZTV6dd1700__7ee01700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700__7ee01700[] = {
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee01700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee01700[] = {
+ {&(_ZTV7ee01700[4]), 4,11},
+ {&(_tg__ZTV6dd1700__7ee01700[4]), 4,4},
+ {&(_tg__ZTV5cc700__6dd1700__7ee01700[5]), 5,7},
+ {&(_ZTV7ee01700[9]), 9,11},
+ {&(_tg__ZTV5cc700__7ee01700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee01700[];
+extern VTBL_ENTRY _ZTV7ee01700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01700[];
+Class_Descriptor cd_ee01700 = { "ee01700", // class name
+ bases_ee01700, 4,
+ &(vtc_ee01700[0]), // expected_vtbl_contents
+ &(vtt_ee01700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01700),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01700),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 ee11700 : virtual dd1700 {
+ int e;
+ ~ee11700(); // tgen
+ ee11700(); // tgen
+};
+//SIG(1 ee11700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11700 ::~ee11700(){ note_dtor("ee11700", this);} // tgen
+ee11700 ::ee11700(){ note_ctor("ee11700", this);} // tgen
+
+static void Test_ee11700()
+{
+ extern Class_Descriptor cd_ee11700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11700, buf);
+ ee11700 *dp, &lv = *(dp=new (buf) ee11700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee11700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee11700");
+ check_base_class_offset(lv, (cc700*)(dd1700*), ABISELECT(32,16), "ee11700");
+ check_base_class_offset(lv, (dd1700*), ABISELECT(16,8), "ee11700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11700.e");
+ test_class_info(&lv, &cd_ee11700);
+ dp->~ee11700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11700(Test_ee11700, "ee11700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11700C1Ev();
+extern void _ZN7ee11700D1Ev();
+Name_Map name_map_ee11700[] = {
+ NSPAIR(_ZN7ee11700C1Ev),
+ NSPAIR(_ZN7ee11700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd1700;
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+static Base_Class bases_ee11700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1700, 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 _ZTI7ee11700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee11700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11700[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11700[0]),
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11700[];
+static VTBL_ENTRY _tg__ZTV6dd1700__7ee11700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700__7ee11700[] = {
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee11700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee11700[] = {
+ {&(_ZTV7ee11700[5]), 5,16},
+ {&(_ZTV7ee11700[9]), 9,16},
+ {&(_ZTV7ee11700[14]), 14,16},
+ {&(_tg__ZTV6dd1700__7ee11700[4]), 4,4},
+ {&(_tg__ZTV5cc700__6dd1700__7ee11700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee11700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee11700[];
+extern VTBL_ENTRY _ZTV7ee11700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11700[];
+Class_Descriptor cd_ee11700 = { "ee11700", // class name
+ bases_ee11700, 4,
+ &(vtc_ee11700[0]), // expected_vtbl_contents
+ &(vtt_ee11700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11700),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11700),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 ee21700 : dd1700 {
+ int e;
+ virtual void foo(); // _ZN7ee217003fooEv
+ ~ee21700(); // tgen
+ ee21700(); // tgen
+};
+//SIG(1 ee21700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21700 ::foo(){vfunc_called(this, "_ZN7ee217003fooEv");}
+ee21700 ::~ee21700(){ note_dtor("ee21700", this);} // tgen
+ee21700 ::ee21700(){ note_ctor("ee21700", this);} // tgen
+
+static void Test_ee21700()
+{
+ extern Class_Descriptor cd_ee21700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21700, buf);
+ ee21700 *dp, &lv = *(dp=new (buf) ee21700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee21700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee21700");
+ check_base_class_offset(lv, (cc700*)(dd1700*), ABISELECT(16,12), "ee21700");
+ check_base_class_offset(lv, (dd1700*), 0, "ee21700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21700.e");
+ test_class_info(&lv, &cd_ee21700);
+ dp->~ee21700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21700(Test_ee21700, "ee21700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21700C1Ev();
+extern void _ZN7ee21700D1Ev();
+Name_Map name_map_ee21700[] = {
+ NSPAIR(_ZN7ee21700C1Ev),
+ NSPAIR(_ZN7ee21700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd1700;
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+static Base_Class bases_ee21700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee21700[];
+extern void _ZN7ee217003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217003fooEv,_ZTv0_n16_N7ee217003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217003fooEv,_ZThn12_N7ee217003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee21700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21700[0]),
+ (VTBL_ENTRY)&_ZN7ee217003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217003fooEv,_ZTv0_n16_N7ee217003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21700[];
+static VTBL_ENTRY _tg__ZTV6dd1700__7ee21700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700__7ee21700[] = {
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee21700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee21700[] = {
+ {&(_ZTV7ee21700[4]), 4,12},
+ {&(_tg__ZTV6dd1700__7ee21700[4]), 4,4},
+ {&(_tg__ZTV5cc700__6dd1700__7ee21700[5]), 5,7},
+ {&(_ZTV7ee21700[10]), 10,12},
+ {&(_tg__ZTV5cc700__7ee21700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee21700[];
+extern VTBL_ENTRY _ZTV7ee21700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21700[];
+static VTBL_ENTRY alt_thunk_names225[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217003fooEv,_ZTv0_n16_N7ee217003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217003fooEv,_ZThn12_N7ee217003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21700 = { "ee21700", // class name
+ bases_ee21700, 4,
+ &(vtc_ee21700[0]), // expected_vtbl_contents
+ &(vtt_ee21700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names225,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31700 : virtual dd1700 {
+ int e;
+ virtual void foo(); // _ZN7ee317003fooEv
+ ~ee31700(); // tgen
+ ee31700(); // tgen
+};
+//SIG(1 ee31700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31700 ::foo(){vfunc_called(this, "_ZN7ee317003fooEv");}
+ee31700 ::~ee31700(){ note_dtor("ee31700", this);} // tgen
+ee31700 ::ee31700(){ note_ctor("ee31700", this);} // tgen
+
+static void Test_ee31700()
+{
+ extern Class_Descriptor cd_ee31700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31700, buf);
+ ee31700 *dp, &lv = *(dp=new (buf) ee31700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee31700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee31700");
+ check_base_class_offset(lv, (cc700*)(dd1700*), ABISELECT(32,16), "ee31700");
+ check_base_class_offset(lv, (dd1700*), ABISELECT(16,8), "ee31700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31700.e");
+ test_class_info(&lv, &cd_ee31700);
+ dp->~ee31700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31700(Test_ee31700, "ee31700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31700C1Ev();
+extern void _ZN7ee31700D1Ev();
+Name_Map name_map_ee31700[] = {
+ NSPAIR(_ZN7ee31700C1Ev),
+ NSPAIR(_ZN7ee31700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd1700;
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+static Base_Class bases_ee31700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1700, 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 _ZTI7ee31700[];
+extern void _ZN7ee317003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317003fooEv,_ZTv0_n16_N7ee317003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317003fooEv,_ZThn16_N7ee317003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee31700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31700[0]),
+ (VTBL_ENTRY)&_ZN7ee317003fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31700[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317003fooEv,_ZTv0_n16_N7ee317003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31700[];
+static VTBL_ENTRY _tg__ZTV6dd1700__7ee31700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700__7ee31700[] = {
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee31700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee31700[] = {
+ {&(_ZTV7ee31700[5]), 5,17},
+ {&(_ZTV7ee31700[10]), 10,17},
+ {&(_ZTV7ee31700[15]), 15,17},
+ {&(_tg__ZTV6dd1700__7ee31700[4]), 4,4},
+ {&(_tg__ZTV5cc700__6dd1700__7ee31700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee31700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee31700[];
+extern VTBL_ENTRY _ZTV7ee31700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31700[];
+static VTBL_ENTRY alt_thunk_names226[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317003fooEv,_ZTv0_n16_N7ee317003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317003fooEv,_ZThn16_N7ee317003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31700 = { "ee31700", // class name
+ bases_ee31700, 4,
+ &(vtc_ee31700[0]), // expected_vtbl_contents
+ &(vtt_ee31700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31700),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names226,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41700 : dd1700 {
+ int e;
+ virtual void bar(); // _ZN7ee417003barEv
+ ~ee41700(); // tgen
+ ee41700(); // tgen
+};
+//SIG(1 ee41700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41700 ::bar(){vfunc_called(this, "_ZN7ee417003barEv");}
+ee41700 ::~ee41700(){ note_dtor("ee41700", this);} // tgen
+ee41700 ::ee41700(){ note_ctor("ee41700", this);} // tgen
+
+static void Test_ee41700()
+{
+ extern Class_Descriptor cd_ee41700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41700, buf);
+ ee41700 *dp, &lv = *(dp=new (buf) ee41700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee41700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee41700");
+ check_base_class_offset(lv, (cc700*)(dd1700*), ABISELECT(16,12), "ee41700");
+ check_base_class_offset(lv, (dd1700*), 0, "ee41700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41700.e");
+ test_class_info(&lv, &cd_ee41700);
+ dp->~ee41700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41700(Test_ee41700, "ee41700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41700C1Ev();
+extern void _ZN7ee41700D1Ev();
+Name_Map name_map_ee41700[] = {
+ NSPAIR(_ZN7ee41700C1Ev),
+ NSPAIR(_ZN7ee41700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd1700;
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+static Base_Class bases_ee41700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee41700[];
+extern void _ZN7ee417003barEv();
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417003barEv,_ZTv0_n20_N7ee417003barEv)();
+extern void ABISELECT(_ZThn16_N7ee417003barEv,_ZThn12_N7ee417003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41700[0]),
+ (VTBL_ENTRY)&_ZN7ee417003barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417003barEv,_ZTv0_n20_N7ee417003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41700[];
+static VTBL_ENTRY _tg__ZTV6dd1700__7ee41700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700__7ee41700[] = {
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee41700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee41700[] = {
+ {&(_ZTV7ee41700[4]), 4,12},
+ {&(_tg__ZTV6dd1700__7ee41700[4]), 4,4},
+ {&(_tg__ZTV5cc700__6dd1700__7ee41700[5]), 5,7},
+ {&(_ZTV7ee41700[10]), 10,12},
+ {&(_tg__ZTV5cc700__7ee41700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee41700[];
+extern VTBL_ENTRY _ZTV7ee41700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41700[];
+static VTBL_ENTRY alt_thunk_names227[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417003barEv,_ZTv0_n20_N7ee417003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417003barEv,_ZThn12_N7ee417003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41700 = { "ee41700", // class name
+ bases_ee41700, 4,
+ &(vtc_ee41700[0]), // expected_vtbl_contents
+ &(vtt_ee41700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names227,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51700 : virtual dd1700 {
+ int e;
+ virtual void bar(); // _ZN7ee517003barEv
+ ~ee51700(); // tgen
+ ee51700(); // tgen
+};
+//SIG(1 ee51700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51700 ::bar(){vfunc_called(this, "_ZN7ee517003barEv");}
+ee51700 ::~ee51700(){ note_dtor("ee51700", this);} // tgen
+ee51700 ::ee51700(){ note_ctor("ee51700", this);} // tgen
+
+static void Test_ee51700()
+{
+ extern Class_Descriptor cd_ee51700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51700, buf);
+ ee51700 *dp, &lv = *(dp=new (buf) ee51700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee51700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee51700");
+ check_base_class_offset(lv, (cc700*)(dd1700*), ABISELECT(32,16), "ee51700");
+ check_base_class_offset(lv, (dd1700*), ABISELECT(16,8), "ee51700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51700.e");
+ test_class_info(&lv, &cd_ee51700);
+ dp->~ee51700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51700(Test_ee51700, "ee51700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51700C1Ev();
+extern void _ZN7ee51700D1Ev();
+Name_Map name_map_ee51700[] = {
+ NSPAIR(_ZN7ee51700C1Ev),
+ NSPAIR(_ZN7ee51700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd1700;
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+static Base_Class bases_ee51700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1700, 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 _ZTI7ee51700[];
+extern void _ZN7ee517003barEv();
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517003barEv,_ZTv0_n20_N7ee517003barEv)();
+extern void ABISELECT(_ZThn32_N7ee517003barEv,_ZThn16_N7ee517003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51700[0]),
+ (VTBL_ENTRY)&_ZN7ee517003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51700[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517003barEv,_ZTv0_n20_N7ee517003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51700[];
+static VTBL_ENTRY _tg__ZTV6dd1700__7ee51700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700__7ee51700[] = {
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee51700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee51700[] = {
+ {&(_ZTV7ee51700[5]), 5,17},
+ {&(_ZTV7ee51700[10]), 10,17},
+ {&(_ZTV7ee51700[15]), 15,17},
+ {&(_tg__ZTV6dd1700__7ee51700[4]), 4,4},
+ {&(_tg__ZTV5cc700__6dd1700__7ee51700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee51700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee51700[];
+extern VTBL_ENTRY _ZTV7ee51700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51700[];
+static VTBL_ENTRY alt_thunk_names228[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517003barEv,_ZTv0_n20_N7ee517003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517003barEv,_ZThn16_N7ee517003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51700 = { "ee51700", // class name
+ bases_ee51700, 4,
+ &(vtc_ee51700[0]), // expected_vtbl_contents
+ &(vtt_ee51700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51700),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names228,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61700 : dd1700 {
+ int e;
+ virtual void foo(); // _ZN7ee617003fooEv
+ virtual void bar(); // _ZN7ee617003barEv
+ ~ee61700(); // tgen
+ ee61700(); // tgen
+};
+//SIG(1 ee61700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61700 ::foo(){vfunc_called(this, "_ZN7ee617003fooEv");}
+void ee61700 ::bar(){vfunc_called(this, "_ZN7ee617003barEv");}
+ee61700 ::~ee61700(){ note_dtor("ee61700", this);} // tgen
+ee61700 ::ee61700(){ note_ctor("ee61700", this);} // tgen
+
+static void Test_ee61700()
+{
+ extern Class_Descriptor cd_ee61700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61700, buf);
+ ee61700 *dp, &lv = *(dp=new (buf) ee61700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee61700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee61700");
+ check_base_class_offset(lv, (cc700*)(dd1700*), ABISELECT(16,12), "ee61700");
+ check_base_class_offset(lv, (dd1700*), 0, "ee61700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61700.e");
+ test_class_info(&lv, &cd_ee61700);
+ dp->~ee61700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61700(Test_ee61700, "ee61700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61700C1Ev();
+extern void _ZN7ee61700D1Ev();
+Name_Map name_map_ee61700[] = {
+ NSPAIR(_ZN7ee61700C1Ev),
+ NSPAIR(_ZN7ee61700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd1700;
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+static Base_Class bases_ee61700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee61700[];
+extern void _ZN7ee617003fooEv();
+extern void _ZN7ee617003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617003fooEv,_ZTv0_n16_N7ee617003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617003fooEv,_ZThn12_N7ee617003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617003barEv,_ZTv0_n20_N7ee617003barEv)();
+extern void ABISELECT(_ZThn16_N7ee617003barEv,_ZThn12_N7ee617003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61700[0]),
+ (VTBL_ENTRY)&_ZN7ee617003fooEv,
+ (VTBL_ENTRY)&_ZN7ee617003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617003fooEv,_ZTv0_n16_N7ee617003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617003barEv,_ZTv0_n20_N7ee617003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61700[];
+static VTBL_ENTRY _tg__ZTV6dd1700__7ee61700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700__7ee61700[] = {
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee61700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee61700[] = {
+ {&(_ZTV7ee61700[4]), 4,13},
+ {&(_tg__ZTV6dd1700__7ee61700[4]), 4,4},
+ {&(_tg__ZTV5cc700__6dd1700__7ee61700[5]), 5,7},
+ {&(_ZTV7ee61700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee61700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee61700[];
+extern VTBL_ENTRY _ZTV7ee61700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61700[];
+static VTBL_ENTRY alt_thunk_names229[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617003barEv,_ZTv0_n20_N7ee617003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617003barEv,_ZThn12_N7ee617003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617003fooEv,_ZTv0_n16_N7ee617003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617003fooEv,_ZThn12_N7ee617003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61700 = { "ee61700", // class name
+ bases_ee61700, 4,
+ &(vtc_ee61700[0]), // expected_vtbl_contents
+ &(vtt_ee61700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names229,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71700 : virtual dd1700 {
+ int e;
+ virtual void foo(); // _ZN7ee717003fooEv
+ virtual void bar(); // _ZN7ee717003barEv
+ ~ee71700(); // tgen
+ ee71700(); // tgen
+};
+//SIG(1 ee71700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71700 ::foo(){vfunc_called(this, "_ZN7ee717003fooEv");}
+void ee71700 ::bar(){vfunc_called(this, "_ZN7ee717003barEv");}
+ee71700 ::~ee71700(){ note_dtor("ee71700", this);} // tgen
+ee71700 ::ee71700(){ note_ctor("ee71700", this);} // tgen
+
+static void Test_ee71700()
+{
+ extern Class_Descriptor cd_ee71700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71700, buf);
+ ee71700 *dp, &lv = *(dp=new (buf) ee71700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee71700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee71700");
+ check_base_class_offset(lv, (cc700*)(dd1700*), ABISELECT(32,16), "ee71700");
+ check_base_class_offset(lv, (dd1700*), ABISELECT(16,8), "ee71700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71700.e");
+ test_class_info(&lv, &cd_ee71700);
+ dp->~ee71700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71700(Test_ee71700, "ee71700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71700C1Ev();
+extern void _ZN7ee71700D1Ev();
+Name_Map name_map_ee71700[] = {
+ NSPAIR(_ZN7ee71700C1Ev),
+ NSPAIR(_ZN7ee71700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd1700;
+extern VTBL_ENTRY _ZTI6dd1700[];
+extern VTBL_ENTRY _ZTV6dd1700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1700[];
+static Base_Class bases_ee71700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1700, 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 _ZTI7ee71700[];
+extern void _ZN7ee717003fooEv();
+extern void _ZN7ee717003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717003fooEv,_ZTv0_n16_N7ee717003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717003fooEv,_ZThn16_N7ee717003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717003barEv,_ZTv0_n20_N7ee717003barEv)();
+extern void ABISELECT(_ZThn32_N7ee717003barEv,_ZThn16_N7ee717003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71700[0]),
+ (VTBL_ENTRY)&_ZN7ee717003fooEv,
+ (VTBL_ENTRY)&_ZN7ee717003barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71700[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717003fooEv,_ZTv0_n16_N7ee717003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717003barEv,_ZTv0_n20_N7ee717003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71700[];
+static VTBL_ENTRY _tg__ZTV6dd1700__7ee71700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd1700__7ee71700[] = {
+ 0,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee71700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee71700[] = {
+ {&(_ZTV7ee71700[5]), 5,18},
+ {&(_ZTV7ee71700[11]), 11,18},
+ {&(_ZTV7ee71700[16]), 16,18},
+ {&(_tg__ZTV6dd1700__7ee71700[4]), 4,4},
+ {&(_tg__ZTV5cc700__6dd1700__7ee71700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee71700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee71700[];
+extern VTBL_ENTRY _ZTV7ee71700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71700[];
+static VTBL_ENTRY alt_thunk_names230[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717003barEv,_ZTv0_n20_N7ee717003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717003barEv,_ZThn16_N7ee717003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717003fooEv,_ZTv0_n16_N7ee717003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717003fooEv,_ZThn16_N7ee717003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71700 = { "ee71700", // class name
+ bases_ee71700, 4,
+ &(vtc_ee71700[0]), // expected_vtbl_contents
+ &(vtt_ee71700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71700),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names230,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2700 : cc700 {
+ int d;
+ virtual void foo(); // _ZN6dd27003fooEv
+ ~dd2700(); // tgen
+ dd2700(); // tgen
+};
+//SIG(-1 dd2700) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2700 ::foo(){vfunc_called(this, "_ZN6dd27003fooEv");}
+dd2700 ::~dd2700(){ note_dtor("dd2700", this);} // tgen
+dd2700 ::dd2700(){ note_ctor("dd2700", this);} // tgen
+
+static void Test_dd2700()
+{
+ extern Class_Descriptor cd_dd2700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2700, buf);
+ dd2700 *dp, &lv = *(dp=new (buf) dd2700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd2700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(16,12), "dd2700");
+ check_base_class_offset(lv, (cc700*), 0, "dd2700");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2700.d");
+ test_class_info(&lv, &cd_dd2700);
+ dp->~dd2700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2700(Test_dd2700, "dd2700", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2700C1Ev();
+extern void _ZN6dd2700D1Ev();
+Name_Map name_map_dd2700[] = {
+ NSPAIR(_ZN6dd2700C1Ev),
+ NSPAIR(_ZN6dd2700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+static Base_Class bases_dd2700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_dd2700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd2700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_dd2700[] = {
+ {&(_ZTV6dd2700[3]), 3,5},
+ {&(_tg__ZTV5cc700__6dd2700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+Class_Descriptor cd_dd2700 = { "dd2700", // class name
+ bases_dd2700, 3,
+ &(vtc_dd2700[0]), // expected_vtbl_contents
+ &(vtt_dd2700[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2700),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 ee02700 : dd2700 {
+ int e;
+ ~ee02700(); // tgen
+ ee02700(); // tgen
+};
+//SIG(1 ee02700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02700 ::~ee02700(){ note_dtor("ee02700", this);} // tgen
+ee02700 ::ee02700(){ note_ctor("ee02700", this);} // tgen
+
+static void Test_ee02700()
+{
+ extern Class_Descriptor cd_ee02700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02700, buf);
+ ee02700 *dp, &lv = *(dp=new (buf) ee02700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee02700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd2700*), ABISELECT(20,16), "ee02700");
+ check_base_class_offset(lv, (cc700*)(dd2700*), 0, "ee02700");
+ check_base_class_offset(lv, (dd2700*), 0, "ee02700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02700.e");
+ test_class_info(&lv, &cd_ee02700);
+ dp->~ee02700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02700(Test_ee02700, "ee02700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02700C1Ev();
+extern void _ZN7ee02700D1Ev();
+Name_Map name_map_ee02700[] = {
+ NSPAIR(_ZN7ee02700C1Ev),
+ NSPAIR(_ZN7ee02700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd2700;
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+static Base_Class bases_ee02700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee02700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee02700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd2700__7ee02700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd2700__7ee02700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee02700[] = {
+ {&(_ZTV7ee02700[3]), 3,5},
+ {&(_tg__ZTV6dd2700__7ee02700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd2700__7ee02700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee02700[];
+extern VTBL_ENTRY _ZTV7ee02700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02700[];
+Class_Descriptor cd_ee02700 = { "ee02700", // class name
+ bases_ee02700, 4,
+ &(vtc_ee02700[0]), // expected_vtbl_contents
+ &(vtt_ee02700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02700),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 ee12700 : virtual dd2700 {
+ int e;
+ ~ee12700(); // tgen
+ ee12700(); // tgen
+};
+//SIG(1 ee12700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12700 ::~ee12700(){ note_dtor("ee12700", this);} // tgen
+ee12700 ::ee12700(){ note_ctor("ee12700", this);} // tgen
+
+static void Test_ee12700()
+{
+ extern Class_Descriptor cd_ee12700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12700, buf);
+ ee12700 *dp, &lv = *(dp=new (buf) ee12700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee12700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd2700*), ABISELECT(32,20), "ee12700");
+ check_base_class_offset(lv, (cc700*)(dd2700*), ABISELECT(16,8), "ee12700");
+ check_base_class_offset(lv, (dd2700*), ABISELECT(16,8), "ee12700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12700.e");
+ test_class_info(&lv, &cd_ee12700);
+ dp->~ee12700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12700(Test_ee12700, "ee12700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12700C1Ev();
+extern void _ZN7ee12700D1Ev();
+Name_Map name_map_ee12700[] = {
+ NSPAIR(_ZN7ee12700C1Ev),
+ NSPAIR(_ZN7ee12700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd2700;
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+static Base_Class bases_ee12700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2700, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee12700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12700[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd2700__7ee12700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd2700__7ee12700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee12700[] = {
+ {&(_ZTV7ee12700[4]), 4,11},
+ {&(_ZTV7ee12700[9]), 9,11},
+ {&(_tg__ZTV6dd2700__7ee12700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd2700__7ee12700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee12700[];
+extern VTBL_ENTRY _ZTV7ee12700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12700[];
+Class_Descriptor cd_ee12700 = { "ee12700", // class name
+ bases_ee12700, 4,
+ &(vtc_ee12700[0]), // expected_vtbl_contents
+ &(vtt_ee12700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12700),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12700),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 ee22700 : dd2700 {
+ int e;
+ virtual void foo(); // _ZN7ee227003fooEv
+ ~ee22700(); // tgen
+ ee22700(); // tgen
+};
+//SIG(1 ee22700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22700 ::foo(){vfunc_called(this, "_ZN7ee227003fooEv");}
+ee22700 ::~ee22700(){ note_dtor("ee22700", this);} // tgen
+ee22700 ::ee22700(){ note_ctor("ee22700", this);} // tgen
+
+static void Test_ee22700()
+{
+ extern Class_Descriptor cd_ee22700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22700, buf);
+ ee22700 *dp, &lv = *(dp=new (buf) ee22700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee22700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd2700*), ABISELECT(20,16), "ee22700");
+ check_base_class_offset(lv, (cc700*)(dd2700*), 0, "ee22700");
+ check_base_class_offset(lv, (dd2700*), 0, "ee22700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22700.e");
+ test_class_info(&lv, &cd_ee22700);
+ dp->~ee22700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22700(Test_ee22700, "ee22700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22700C1Ev();
+extern void _ZN7ee22700D1Ev();
+Name_Map name_map_ee22700[] = {
+ NSPAIR(_ZN7ee22700C1Ev),
+ NSPAIR(_ZN7ee22700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd2700;
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+static Base_Class bases_ee22700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee22700[];
+extern void _ZN7ee227003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee22700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22700[0]),
+ (VTBL_ENTRY)&_ZN7ee227003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd2700__7ee22700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd2700__7ee22700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee22700[] = {
+ {&(_ZTV7ee22700[3]), 3,5},
+ {&(_tg__ZTV6dd2700__7ee22700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd2700__7ee22700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee22700[];
+extern VTBL_ENTRY _ZTV7ee22700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22700[];
+Class_Descriptor cd_ee22700 = { "ee22700", // class name
+ bases_ee22700, 4,
+ &(vtc_ee22700[0]), // expected_vtbl_contents
+ &(vtt_ee22700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22700),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 ee32700 : virtual dd2700 {
+ int e;
+ virtual void foo(); // _ZN7ee327003fooEv
+ ~ee32700(); // tgen
+ ee32700(); // tgen
+};
+//SIG(1 ee32700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32700 ::foo(){vfunc_called(this, "_ZN7ee327003fooEv");}
+ee32700 ::~ee32700(){ note_dtor("ee32700", this);} // tgen
+ee32700 ::ee32700(){ note_ctor("ee32700", this);} // tgen
+
+static void Test_ee32700()
+{
+ extern Class_Descriptor cd_ee32700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32700, buf);
+ ee32700 *dp, &lv = *(dp=new (buf) ee32700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee32700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd2700*), ABISELECT(32,20), "ee32700");
+ check_base_class_offset(lv, (cc700*)(dd2700*), ABISELECT(16,8), "ee32700");
+ check_base_class_offset(lv, (dd2700*), ABISELECT(16,8), "ee32700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32700.e");
+ test_class_info(&lv, &cd_ee32700);
+ dp->~ee32700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32700(Test_ee32700, "ee32700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32700C1Ev();
+extern void _ZN7ee32700D1Ev();
+Name_Map name_map_ee32700[] = {
+ NSPAIR(_ZN7ee32700C1Ev),
+ NSPAIR(_ZN7ee32700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd2700;
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+static Base_Class bases_ee32700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32700[];
+extern void _ZN7ee327003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327003fooEv,_ZTv0_n16_N7ee327003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327003fooEv,_ZThn8_N7ee327003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee32700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32700[0]),
+ (VTBL_ENTRY)&_ZN7ee327003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327003fooEv,_ZTv0_n16_N7ee327003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd2700__7ee32700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd2700__7ee32700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee32700[] = {
+ {&(_ZTV7ee32700[4]), 4,12},
+ {&(_ZTV7ee32700[10]), 10,12},
+ {&(_tg__ZTV6dd2700__7ee32700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd2700__7ee32700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee32700[];
+extern VTBL_ENTRY _ZTV7ee32700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32700[];
+static VTBL_ENTRY alt_thunk_names231[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327003fooEv,_ZTv0_n16_N7ee327003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327003fooEv,_ZThn8_N7ee327003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32700 = { "ee32700", // class name
+ bases_ee32700, 4,
+ &(vtc_ee32700[0]), // expected_vtbl_contents
+ &(vtt_ee32700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names231,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42700 : dd2700 {
+ int e;
+ virtual void bar(); // _ZN7ee427003barEv
+ ~ee42700(); // tgen
+ ee42700(); // tgen
+};
+//SIG(1 ee42700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42700 ::bar(){vfunc_called(this, "_ZN7ee427003barEv");}
+ee42700 ::~ee42700(){ note_dtor("ee42700", this);} // tgen
+ee42700 ::ee42700(){ note_ctor("ee42700", this);} // tgen
+
+static void Test_ee42700()
+{
+ extern Class_Descriptor cd_ee42700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42700, buf);
+ ee42700 *dp, &lv = *(dp=new (buf) ee42700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee42700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd2700*), ABISELECT(20,16), "ee42700");
+ check_base_class_offset(lv, (cc700*)(dd2700*), 0, "ee42700");
+ check_base_class_offset(lv, (dd2700*), 0, "ee42700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42700.e");
+ test_class_info(&lv, &cd_ee42700);
+ dp->~ee42700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42700(Test_ee42700, "ee42700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42700C1Ev();
+extern void _ZN7ee42700D1Ev();
+Name_Map name_map_ee42700[] = {
+ NSPAIR(_ZN7ee42700C1Ev),
+ NSPAIR(_ZN7ee42700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd2700;
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+static Base_Class bases_ee42700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee42700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN7ee427003barEv();
+static VTBL_ENTRY vtc_ee42700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN7ee427003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee42700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd2700__7ee42700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd2700__7ee42700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee42700[] = {
+ {&(_ZTV7ee42700[3]), 3,5},
+ {&(_tg__ZTV6dd2700__7ee42700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd2700__7ee42700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee42700[];
+extern VTBL_ENTRY _ZTV7ee42700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42700[];
+Class_Descriptor cd_ee42700 = { "ee42700", // class name
+ bases_ee42700, 4,
+ &(vtc_ee42700[0]), // expected_vtbl_contents
+ &(vtt_ee42700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42700),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 ee52700 : virtual dd2700 {
+ int e;
+ virtual void bar(); // _ZN7ee527003barEv
+ ~ee52700(); // tgen
+ ee52700(); // tgen
+};
+//SIG(1 ee52700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52700 ::bar(){vfunc_called(this, "_ZN7ee527003barEv");}
+ee52700 ::~ee52700(){ note_dtor("ee52700", this);} // tgen
+ee52700 ::ee52700(){ note_ctor("ee52700", this);} // tgen
+
+static void Test_ee52700()
+{
+ extern Class_Descriptor cd_ee52700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52700, buf);
+ ee52700 *dp, &lv = *(dp=new (buf) ee52700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee52700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd2700*), ABISELECT(32,20), "ee52700");
+ check_base_class_offset(lv, (cc700*)(dd2700*), ABISELECT(16,8), "ee52700");
+ check_base_class_offset(lv, (dd2700*), ABISELECT(16,8), "ee52700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52700.e");
+ test_class_info(&lv, &cd_ee52700);
+ dp->~ee52700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52700(Test_ee52700, "ee52700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52700C1Ev();
+extern void _ZN7ee52700D1Ev();
+Name_Map name_map_ee52700[] = {
+ NSPAIR(_ZN7ee52700C1Ev),
+ NSPAIR(_ZN7ee52700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd2700;
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+static Base_Class bases_ee52700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52700[];
+extern void _ZN7ee527003barEv();
+extern void _ZN6dd27003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527003barEv,_ZTv0_n20_N7ee527003barEv)();
+extern void ABISELECT(_ZThn16_N7ee527003barEv,_ZThn8_N7ee527003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52700[0]),
+ (VTBL_ENTRY)&_ZN7ee527003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527003barEv,_ZTv0_n20_N7ee527003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd2700__7ee52700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd2700__7ee52700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee52700[] = {
+ {&(_ZTV7ee52700[4]), 4,12},
+ {&(_ZTV7ee52700[10]), 10,12},
+ {&(_tg__ZTV6dd2700__7ee52700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd2700__7ee52700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee52700[];
+extern VTBL_ENTRY _ZTV7ee52700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52700[];
+static VTBL_ENTRY alt_thunk_names232[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527003barEv,_ZTv0_n20_N7ee527003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527003barEv,_ZThn8_N7ee527003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52700 = { "ee52700", // class name
+ bases_ee52700, 4,
+ &(vtc_ee52700[0]), // expected_vtbl_contents
+ &(vtt_ee52700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names232,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62700 : dd2700 {
+ int e;
+ virtual void foo(); // _ZN7ee627003fooEv
+ virtual void bar(); // _ZN7ee627003barEv
+ ~ee62700(); // tgen
+ ee62700(); // tgen
+};
+//SIG(1 ee62700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62700 ::foo(){vfunc_called(this, "_ZN7ee627003fooEv");}
+void ee62700 ::bar(){vfunc_called(this, "_ZN7ee627003barEv");}
+ee62700 ::~ee62700(){ note_dtor("ee62700", this);} // tgen
+ee62700 ::ee62700(){ note_ctor("ee62700", this);} // tgen
+
+static void Test_ee62700()
+{
+ extern Class_Descriptor cd_ee62700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62700, buf);
+ ee62700 *dp, &lv = *(dp=new (buf) ee62700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee62700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd2700*), ABISELECT(20,16), "ee62700");
+ check_base_class_offset(lv, (cc700*)(dd2700*), 0, "ee62700");
+ check_base_class_offset(lv, (dd2700*), 0, "ee62700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62700.e");
+ test_class_info(&lv, &cd_ee62700);
+ dp->~ee62700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62700(Test_ee62700, "ee62700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62700C1Ev();
+extern void _ZN7ee62700D1Ev();
+Name_Map name_map_ee62700[] = {
+ NSPAIR(_ZN7ee62700C1Ev),
+ NSPAIR(_ZN7ee62700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd2700;
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+static Base_Class bases_ee62700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee62700[];
+extern void _ZN7ee627003fooEv();
+extern void _ZN7ee627003barEv();
+static VTBL_ENTRY vtc_ee62700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62700[0]),
+ (VTBL_ENTRY)&_ZN7ee627003fooEv,
+ (VTBL_ENTRY)&_ZN7ee627003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee62700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd2700__7ee62700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd2700__7ee62700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee62700[] = {
+ {&(_ZTV7ee62700[3]), 3,5},
+ {&(_tg__ZTV6dd2700__7ee62700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd2700__7ee62700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee62700[];
+extern VTBL_ENTRY _ZTV7ee62700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62700[];
+Class_Descriptor cd_ee62700 = { "ee62700", // class name
+ bases_ee62700, 4,
+ &(vtc_ee62700[0]), // expected_vtbl_contents
+ &(vtt_ee62700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62700),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 ee72700 : virtual dd2700 {
+ int e;
+ virtual void foo(); // _ZN7ee727003fooEv
+ virtual void bar(); // _ZN7ee727003barEv
+ ~ee72700(); // tgen
+ ee72700(); // tgen
+};
+//SIG(1 ee72700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72700 ::foo(){vfunc_called(this, "_ZN7ee727003fooEv");}
+void ee72700 ::bar(){vfunc_called(this, "_ZN7ee727003barEv");}
+ee72700 ::~ee72700(){ note_dtor("ee72700", this);} // tgen
+ee72700 ::ee72700(){ note_ctor("ee72700", this);} // tgen
+
+static void Test_ee72700()
+{
+ extern Class_Descriptor cd_ee72700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72700, buf);
+ ee72700 *dp, &lv = *(dp=new (buf) ee72700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee72700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd2700*), ABISELECT(32,20), "ee72700");
+ check_base_class_offset(lv, (cc700*)(dd2700*), ABISELECT(16,8), "ee72700");
+ check_base_class_offset(lv, (dd2700*), ABISELECT(16,8), "ee72700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72700.e");
+ test_class_info(&lv, &cd_ee72700);
+ dp->~ee72700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72700(Test_ee72700, "ee72700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72700C1Ev();
+extern void _ZN7ee72700D1Ev();
+Name_Map name_map_ee72700[] = {
+ NSPAIR(_ZN7ee72700C1Ev),
+ NSPAIR(_ZN7ee72700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd2700;
+extern VTBL_ENTRY _ZTI6dd2700[];
+extern VTBL_ENTRY _ZTV6dd2700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2700[];
+static Base_Class bases_ee72700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72700[];
+extern void _ZN7ee727003fooEv();
+extern void _ZN7ee727003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727003fooEv,_ZTv0_n16_N7ee727003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727003fooEv,_ZThn8_N7ee727003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727003barEv,_ZTv0_n20_N7ee727003barEv)();
+extern void ABISELECT(_ZThn16_N7ee727003barEv,_ZThn8_N7ee727003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72700[0]),
+ (VTBL_ENTRY)&_ZN7ee727003fooEv,
+ (VTBL_ENTRY)&_ZN7ee727003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727003fooEv,_ZTv0_n16_N7ee727003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727003barEv,_ZTv0_n20_N7ee727003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72700[];
+extern void _ZN6dd27003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV6dd2700__7ee72700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2700[0]),
+ (VTBL_ENTRY)&_ZN6dd27003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd2700__7ee72700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee72700[] = {
+ {&(_ZTV7ee72700[4]), 4,13},
+ {&(_ZTV7ee72700[11]), 11,13},
+ {&(_tg__ZTV6dd2700__7ee72700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd2700__7ee72700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee72700[];
+extern VTBL_ENTRY _ZTV7ee72700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72700[];
+static VTBL_ENTRY alt_thunk_names233[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727003barEv,_ZTv0_n20_N7ee727003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727003barEv,_ZThn8_N7ee727003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727003fooEv,_ZTv0_n16_N7ee727003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727003fooEv,_ZThn8_N7ee727003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72700 = { "ee72700", // class name
+ bases_ee72700, 4,
+ &(vtc_ee72700[0]), // expected_vtbl_contents
+ &(vtt_ee72700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names233,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3700 : virtual cc700 {
+ int d;
+ virtual void foo(); // _ZN6dd37003fooEv
+ ~dd3700(); // tgen
+ dd3700(); // tgen
+};
+//SIG(-1 dd3700) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3700 ::foo(){vfunc_called(this, "_ZN6dd37003fooEv");}
+dd3700 ::~dd3700(){ note_dtor("dd3700", this);} // tgen
+dd3700 ::dd3700(){ note_ctor("dd3700", this);} // tgen
+
+static void Test_dd3700()
+{
+ extern Class_Descriptor cd_dd3700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3700, buf);
+ dd3700 *dp, &lv = *(dp=new (buf) dd3700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd3700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,16), "dd3700");
+ check_base_class_offset(lv, (cc700*), ABISELECT(16,8), "dd3700");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3700.d");
+ test_class_info(&lv, &cd_dd3700);
+ dp->~dd3700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3700(Test_dd3700, "dd3700", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3700C1Ev();
+extern void _ZN6dd3700D1Ev();
+Name_Map name_map_dd3700[] = {
+ NSPAIR(_ZN6dd3700C1Ev),
+ NSPAIR(_ZN6dd3700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+static Base_Class bases_dd3700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern void _ZN6dd37003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_dd3700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_dd3700[] = {
+ {&(_ZTV6dd3700[4]), 4,12},
+ {&(_ZTV6dd3700[10]), 10,12},
+ {&(_tg__ZTV5cc700__6dd3700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static VTBL_ENTRY alt_thunk_names234[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3700 = { "dd3700", // class name
+ bases_dd3700, 3,
+ &(vtc_dd3700[0]), // expected_vtbl_contents
+ &(vtt_dd3700[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3700),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names234,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03700 : dd3700 {
+ int e;
+ ~ee03700(); // tgen
+ ee03700(); // tgen
+};
+//SIG(1 ee03700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03700 ::~ee03700(){ note_dtor("ee03700", this);} // tgen
+ee03700 ::ee03700(){ note_ctor("ee03700", this);} // tgen
+
+static void Test_ee03700()
+{
+ extern Class_Descriptor cd_ee03700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03700, buf);
+ ee03700 *dp, &lv = *(dp=new (buf) ee03700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee03700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee03700");
+ check_base_class_offset(lv, (cc700*)(dd3700*), ABISELECT(16,12), "ee03700");
+ check_base_class_offset(lv, (dd3700*), 0, "ee03700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03700.e");
+ test_class_info(&lv, &cd_ee03700);
+ dp->~ee03700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03700(Test_ee03700, "ee03700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03700C1Ev();
+extern void _ZN7ee03700D1Ev();
+Name_Map name_map_ee03700[] = {
+ NSPAIR(_ZN7ee03700C1Ev),
+ NSPAIR(_ZN7ee03700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd3700;
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static Base_Class bases_ee03700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee03700[];
+extern void _ZN6dd37003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee03700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03700[];
+extern void _ZN6dd37003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3700__7ee03700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700__7ee03700[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee03700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee03700[] = {
+ {&(_ZTV7ee03700[4]), 4,12},
+ {&(_tg__ZTV6dd3700__7ee03700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd3700__7ee03700[5]), 5,7},
+ {&(_ZTV7ee03700[10]), 10,12},
+ {&(_tg__ZTV5cc700__7ee03700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee03700[];
+extern VTBL_ENTRY _ZTV7ee03700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03700[];
+static VTBL_ENTRY alt_thunk_names235[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03700 = { "ee03700", // class name
+ bases_ee03700, 4,
+ &(vtc_ee03700[0]), // expected_vtbl_contents
+ &(vtt_ee03700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names235,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13700 : virtual dd3700 {
+ int e;
+ ~ee13700(); // tgen
+ ee13700(); // tgen
+};
+//SIG(1 ee13700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13700 ::~ee13700(){ note_dtor("ee13700", this);} // tgen
+ee13700 ::ee13700(){ note_ctor("ee13700", this);} // tgen
+
+static void Test_ee13700()
+{
+ extern Class_Descriptor cd_ee13700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13700, buf);
+ ee13700 *dp, &lv = *(dp=new (buf) ee13700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee13700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee13700");
+ check_base_class_offset(lv, (cc700*)(dd3700*), ABISELECT(32,16), "ee13700");
+ check_base_class_offset(lv, (dd3700*), ABISELECT(16,8), "ee13700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13700.e");
+ test_class_info(&lv, &cd_ee13700);
+ dp->~ee13700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13700(Test_ee13700, "ee13700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13700C1Ev();
+extern void _ZN7ee13700D1Ev();
+Name_Map name_map_ee13700[] = {
+ NSPAIR(_ZN7ee13700C1Ev),
+ NSPAIR(_ZN7ee13700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd3700;
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static Base_Class bases_ee13700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13700[];
+extern void _ZN6dd37003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee13700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13700[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13700[];
+extern void _ZN6dd37003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3700__7ee13700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700__7ee13700[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee13700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee13700[] = {
+ {&(_ZTV7ee13700[5]), 5,18},
+ {&(_ZTV7ee13700[10]), 10,18},
+ {&(_ZTV7ee13700[16]), 16,18},
+ {&(_tg__ZTV6dd3700__7ee13700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd3700__7ee13700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee13700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee13700[];
+extern VTBL_ENTRY _ZTV7ee13700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13700[];
+static VTBL_ENTRY alt_thunk_names236[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13700 = { "ee13700", // class name
+ bases_ee13700, 4,
+ &(vtc_ee13700[0]), // expected_vtbl_contents
+ &(vtt_ee13700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13700),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names236,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23700 : dd3700 {
+ int e;
+ virtual void foo(); // _ZN7ee237003fooEv
+ ~ee23700(); // tgen
+ ee23700(); // tgen
+};
+//SIG(1 ee23700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23700 ::foo(){vfunc_called(this, "_ZN7ee237003fooEv");}
+ee23700 ::~ee23700(){ note_dtor("ee23700", this);} // tgen
+ee23700 ::ee23700(){ note_ctor("ee23700", this);} // tgen
+
+static void Test_ee23700()
+{
+ extern Class_Descriptor cd_ee23700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23700, buf);
+ ee23700 *dp, &lv = *(dp=new (buf) ee23700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee23700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee23700");
+ check_base_class_offset(lv, (cc700*)(dd3700*), ABISELECT(16,12), "ee23700");
+ check_base_class_offset(lv, (dd3700*), 0, "ee23700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23700.e");
+ test_class_info(&lv, &cd_ee23700);
+ dp->~ee23700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23700(Test_ee23700, "ee23700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23700C1Ev();
+extern void _ZN7ee23700D1Ev();
+Name_Map name_map_ee23700[] = {
+ NSPAIR(_ZN7ee23700C1Ev),
+ NSPAIR(_ZN7ee23700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd3700;
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static Base_Class bases_ee23700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee23700[];
+extern void _ZN7ee237003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237003fooEv,_ZTv0_n16_N7ee237003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237003fooEv,_ZThn12_N7ee237003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee23700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23700[0]),
+ (VTBL_ENTRY)&_ZN7ee237003fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237003fooEv,_ZTv0_n16_N7ee237003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23700[];
+extern void _ZN6dd37003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3700__7ee23700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700__7ee23700[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee23700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee23700[] = {
+ {&(_ZTV7ee23700[4]), 4,12},
+ {&(_tg__ZTV6dd3700__7ee23700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd3700__7ee23700[5]), 5,7},
+ {&(_ZTV7ee23700[10]), 10,12},
+ {&(_tg__ZTV5cc700__7ee23700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee23700[];
+extern VTBL_ENTRY _ZTV7ee23700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23700[];
+static VTBL_ENTRY alt_thunk_names237[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237003fooEv,_ZTv0_n16_N7ee237003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237003fooEv,_ZThn12_N7ee237003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23700 = { "ee23700", // class name
+ bases_ee23700, 4,
+ &(vtc_ee23700[0]), // expected_vtbl_contents
+ &(vtt_ee23700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names237,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33700 : virtual dd3700 {
+ int e;
+ virtual void foo(); // _ZN7ee337003fooEv
+ ~ee33700(); // tgen
+ ee33700(); // tgen
+};
+//SIG(1 ee33700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33700 ::foo(){vfunc_called(this, "_ZN7ee337003fooEv");}
+ee33700 ::~ee33700(){ note_dtor("ee33700", this);} // tgen
+ee33700 ::ee33700(){ note_ctor("ee33700", this);} // tgen
+
+static void Test_ee33700()
+{
+ extern Class_Descriptor cd_ee33700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33700, buf);
+ ee33700 *dp, &lv = *(dp=new (buf) ee33700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee33700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee33700");
+ check_base_class_offset(lv, (cc700*)(dd3700*), ABISELECT(32,16), "ee33700");
+ check_base_class_offset(lv, (dd3700*), ABISELECT(16,8), "ee33700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33700.e");
+ test_class_info(&lv, &cd_ee33700);
+ dp->~ee33700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33700(Test_ee33700, "ee33700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33700C1Ev();
+extern void _ZN7ee33700D1Ev();
+Name_Map name_map_ee33700[] = {
+ NSPAIR(_ZN7ee33700C1Ev),
+ NSPAIR(_ZN7ee33700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd3700;
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static Base_Class bases_ee33700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33700[];
+extern void _ZN7ee337003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337003fooEv,_ZTv0_n20_N7ee337003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337003fooEv,_ZThn8_N7ee337003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337003fooEv,_ZTv0_n16_N7ee337003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337003fooEv,_ZThn16_N7ee337003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY vtc_ee33700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33700[0]),
+ (VTBL_ENTRY)&_ZN7ee337003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337003fooEv,_ZTv0_n20_N7ee337003fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337003fooEv,_ZTv0_n16_N7ee337003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33700[];
+extern void _ZN6dd37003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3700__7ee33700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700__7ee33700[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee33700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee33700[] = {
+ {&(_ZTV7ee33700[5]), 5,19},
+ {&(_ZTV7ee33700[11]), 11,19},
+ {&(_ZTV7ee33700[17]), 17,19},
+ {&(_tg__ZTV6dd3700__7ee33700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd3700__7ee33700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee33700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee33700[];
+extern VTBL_ENTRY _ZTV7ee33700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33700[];
+static VTBL_ENTRY alt_thunk_names238[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337003fooEv,_ZTv0_n16_N7ee337003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337003fooEv,_ZThn16_N7ee337003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337003fooEv,_ZTv0_n20_N7ee337003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337003fooEv,_ZThn8_N7ee337003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33700 = { "ee33700", // class name
+ bases_ee33700, 4,
+ &(vtc_ee33700[0]), // expected_vtbl_contents
+ &(vtt_ee33700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33700),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names238,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43700 : dd3700 {
+ int e;
+ virtual void bar(); // _ZN7ee437003barEv
+ ~ee43700(); // tgen
+ ee43700(); // tgen
+};
+//SIG(1 ee43700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43700 ::bar(){vfunc_called(this, "_ZN7ee437003barEv");}
+ee43700 ::~ee43700(){ note_dtor("ee43700", this);} // tgen
+ee43700 ::ee43700(){ note_ctor("ee43700", this);} // tgen
+
+static void Test_ee43700()
+{
+ extern Class_Descriptor cd_ee43700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43700, buf);
+ ee43700 *dp, &lv = *(dp=new (buf) ee43700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee43700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee43700");
+ check_base_class_offset(lv, (cc700*)(dd3700*), ABISELECT(16,12), "ee43700");
+ check_base_class_offset(lv, (dd3700*), 0, "ee43700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43700.e");
+ test_class_info(&lv, &cd_ee43700);
+ dp->~ee43700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43700(Test_ee43700, "ee43700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43700C1Ev();
+extern void _ZN7ee43700D1Ev();
+Name_Map name_map_ee43700[] = {
+ NSPAIR(_ZN7ee43700C1Ev),
+ NSPAIR(_ZN7ee43700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd3700;
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static Base_Class bases_ee43700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee43700[];
+extern void _ZN6dd37003fooEv();
+extern void _ZN7ee437003barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437003barEv,_ZTv0_n20_N7ee437003barEv)();
+extern void ABISELECT(_ZThn16_N7ee437003barEv,_ZThn12_N7ee437003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+ (VTBL_ENTRY)&_ZN7ee437003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437003barEv,_ZTv0_n20_N7ee437003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43700[];
+extern void _ZN6dd37003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3700__7ee43700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700__7ee43700[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee43700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee43700[] = {
+ {&(_ZTV7ee43700[4]), 4,13},
+ {&(_tg__ZTV6dd3700__7ee43700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd3700__7ee43700[5]), 5,7},
+ {&(_ZTV7ee43700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee43700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee43700[];
+extern VTBL_ENTRY _ZTV7ee43700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43700[];
+static VTBL_ENTRY alt_thunk_names239[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437003barEv,_ZTv0_n20_N7ee437003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437003barEv,_ZThn12_N7ee437003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43700 = { "ee43700", // class name
+ bases_ee43700, 4,
+ &(vtc_ee43700[0]), // expected_vtbl_contents
+ &(vtt_ee43700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names239,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53700 : virtual dd3700 {
+ int e;
+ virtual void bar(); // _ZN7ee537003barEv
+ ~ee53700(); // tgen
+ ee53700(); // tgen
+};
+//SIG(1 ee53700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53700 ::bar(){vfunc_called(this, "_ZN7ee537003barEv");}
+ee53700 ::~ee53700(){ note_dtor("ee53700", this);} // tgen
+ee53700 ::ee53700(){ note_ctor("ee53700", this);} // tgen
+
+static void Test_ee53700()
+{
+ extern Class_Descriptor cd_ee53700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53700, buf);
+ ee53700 *dp, &lv = *(dp=new (buf) ee53700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee53700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee53700");
+ check_base_class_offset(lv, (cc700*)(dd3700*), ABISELECT(32,16), "ee53700");
+ check_base_class_offset(lv, (dd3700*), ABISELECT(16,8), "ee53700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53700.e");
+ test_class_info(&lv, &cd_ee53700);
+ dp->~ee53700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53700(Test_ee53700, "ee53700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53700C1Ev();
+extern void _ZN7ee53700D1Ev();
+Name_Map name_map_ee53700[] = {
+ NSPAIR(_ZN7ee53700C1Ev),
+ NSPAIR(_ZN7ee53700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd3700;
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static Base_Class bases_ee53700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53700[];
+extern void _ZN7ee537003barEv();
+extern void _ZN6dd37003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537003barEv,_ZTv0_n20_N7ee537003barEv)();
+extern void ABISELECT(_ZThn32_N7ee537003barEv,_ZThn16_N7ee537003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53700[0]),
+ (VTBL_ENTRY)&_ZN7ee537003barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537003barEv,_ZTv0_n20_N7ee537003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53700[];
+extern void _ZN6dd37003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3700__7ee53700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700__7ee53700[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee53700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee53700[] = {
+ {&(_ZTV7ee53700[5]), 5,19},
+ {&(_ZTV7ee53700[11]), 11,19},
+ {&(_ZTV7ee53700[17]), 17,19},
+ {&(_tg__ZTV6dd3700__7ee53700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd3700__7ee53700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee53700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee53700[];
+extern VTBL_ENTRY _ZTV7ee53700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53700[];
+static VTBL_ENTRY alt_thunk_names240[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537003barEv,_ZTv0_n20_N7ee537003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537003barEv,_ZThn16_N7ee537003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53700 = { "ee53700", // class name
+ bases_ee53700, 4,
+ &(vtc_ee53700[0]), // expected_vtbl_contents
+ &(vtt_ee53700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53700),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names240,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63700 : dd3700 {
+ int e;
+ virtual void foo(); // _ZN7ee637003fooEv
+ virtual void bar(); // _ZN7ee637003barEv
+ ~ee63700(); // tgen
+ ee63700(); // tgen
+};
+//SIG(1 ee63700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63700 ::foo(){vfunc_called(this, "_ZN7ee637003fooEv");}
+void ee63700 ::bar(){vfunc_called(this, "_ZN7ee637003barEv");}
+ee63700 ::~ee63700(){ note_dtor("ee63700", this);} // tgen
+ee63700 ::ee63700(){ note_ctor("ee63700", this);} // tgen
+
+static void Test_ee63700()
+{
+ extern Class_Descriptor cd_ee63700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63700, buf);
+ ee63700 *dp, &lv = *(dp=new (buf) ee63700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee63700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee63700");
+ check_base_class_offset(lv, (cc700*)(dd3700*), ABISELECT(16,12), "ee63700");
+ check_base_class_offset(lv, (dd3700*), 0, "ee63700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63700.e");
+ test_class_info(&lv, &cd_ee63700);
+ dp->~ee63700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63700(Test_ee63700, "ee63700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63700C1Ev();
+extern void _ZN7ee63700D1Ev();
+Name_Map name_map_ee63700[] = {
+ NSPAIR(_ZN7ee63700C1Ev),
+ NSPAIR(_ZN7ee63700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd3700;
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static Base_Class bases_ee63700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee63700[];
+extern void _ZN7ee637003fooEv();
+extern void _ZN7ee637003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637003fooEv,_ZTv0_n16_N7ee637003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637003fooEv,_ZThn12_N7ee637003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637003barEv,_ZTv0_n20_N7ee637003barEv)();
+extern void ABISELECT(_ZThn16_N7ee637003barEv,_ZThn12_N7ee637003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63700[0]),
+ (VTBL_ENTRY)&_ZN7ee637003fooEv,
+ (VTBL_ENTRY)&_ZN7ee637003barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637003fooEv,_ZTv0_n16_N7ee637003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637003barEv,_ZTv0_n20_N7ee637003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63700[];
+extern void _ZN6dd37003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3700__7ee63700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700__7ee63700[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee63700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee63700[] = {
+ {&(_ZTV7ee63700[4]), 4,13},
+ {&(_tg__ZTV6dd3700__7ee63700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd3700__7ee63700[5]), 5,7},
+ {&(_ZTV7ee63700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee63700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee63700[];
+extern VTBL_ENTRY _ZTV7ee63700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63700[];
+static VTBL_ENTRY alt_thunk_names241[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn12_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637003barEv,_ZTv0_n20_N7ee637003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637003barEv,_ZThn12_N7ee637003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637003fooEv,_ZTv0_n16_N7ee637003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637003fooEv,_ZThn12_N7ee637003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63700 = { "ee63700", // class name
+ bases_ee63700, 4,
+ &(vtc_ee63700[0]), // expected_vtbl_contents
+ &(vtt_ee63700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names241,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73700 : virtual dd3700 {
+ int e;
+ virtual void foo(); // _ZN7ee737003fooEv
+ virtual void bar(); // _ZN7ee737003barEv
+ ~ee73700(); // tgen
+ ee73700(); // tgen
+};
+//SIG(1 ee73700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73700 ::foo(){vfunc_called(this, "_ZN7ee737003fooEv");}
+void ee73700 ::bar(){vfunc_called(this, "_ZN7ee737003barEv");}
+ee73700 ::~ee73700(){ note_dtor("ee73700", this);} // tgen
+ee73700 ::ee73700(){ note_ctor("ee73700", this);} // tgen
+
+static void Test_ee73700()
+{
+ extern Class_Descriptor cd_ee73700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73700, buf);
+ ee73700 *dp, &lv = *(dp=new (buf) ee73700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee73700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee73700");
+ check_base_class_offset(lv, (cc700*)(dd3700*), ABISELECT(32,16), "ee73700");
+ check_base_class_offset(lv, (dd3700*), ABISELECT(16,8), "ee73700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73700.e");
+ test_class_info(&lv, &cd_ee73700);
+ dp->~ee73700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73700(Test_ee73700, "ee73700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73700C1Ev();
+extern void _ZN7ee73700D1Ev();
+Name_Map name_map_ee73700[] = {
+ NSPAIR(_ZN7ee73700C1Ev),
+ NSPAIR(_ZN7ee73700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd3700;
+extern VTBL_ENTRY _ZTI6dd3700[];
+extern VTBL_ENTRY _ZTV6dd3700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3700[];
+static Base_Class bases_ee73700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3700, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73700[];
+extern void _ZN7ee737003fooEv();
+extern void _ZN7ee737003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737003fooEv,_ZTv0_n20_N7ee737003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737003fooEv,_ZThn8_N7ee737003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737003fooEv,_ZTv0_n16_N7ee737003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737003fooEv,_ZThn16_N7ee737003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737003barEv,_ZTv0_n20_N7ee737003barEv)();
+extern void ABISELECT(_ZThn32_N7ee737003barEv,_ZThn16_N7ee737003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73700[0]),
+ (VTBL_ENTRY)&_ZN7ee737003fooEv,
+ (VTBL_ENTRY)&_ZN7ee737003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737003fooEv,_ZTv0_n20_N7ee737003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737003fooEv,_ZTv0_n16_N7ee737003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737003barEv,_ZTv0_n20_N7ee737003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73700[];
+extern void _ZN6dd37003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3700__7ee73700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&_ZN6dd37003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv)() __attribute__((weak));
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd3700__7ee73700[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv),
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee73700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee73700[] = {
+ {&(_ZTV7ee73700[5]), 5,20},
+ {&(_ZTV7ee73700[12]), 12,20},
+ {&(_ZTV7ee73700[18]), 18,20},
+ {&(_tg__ZTV6dd3700__7ee73700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd3700__7ee73700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee73700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee73700[];
+extern VTBL_ENTRY _ZTV7ee73700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73700[];
+static VTBL_ENTRY alt_thunk_names242[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37003fooEv,_ZTv0_n16_N6dd37003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37003fooEv,_ZThn8_N6dd37003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737003barEv,_ZTv0_n20_N7ee737003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737003barEv,_ZThn16_N7ee737003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737003fooEv,_ZTv0_n16_N7ee737003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737003fooEv,_ZThn16_N7ee737003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737003fooEv,_ZTv0_n20_N7ee737003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737003fooEv,_ZThn8_N7ee737003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73700 = { "ee73700", // class name
+ bases_ee73700, 4,
+ &(vtc_ee73700[0]), // expected_vtbl_contents
+ &(vtt_ee73700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73700),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names242,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4700 : cc700 {
+ int d;
+ virtual void bar(); // _ZN6dd47003barEv
+ ~dd4700(); // tgen
+ dd4700(); // tgen
+};
+//SIG(-1 dd4700) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4700 ::bar(){vfunc_called(this, "_ZN6dd47003barEv");}
+dd4700 ::~dd4700(){ note_dtor("dd4700", this);} // tgen
+dd4700 ::dd4700(){ note_ctor("dd4700", this);} // tgen
+
+static void Test_dd4700()
+{
+ extern Class_Descriptor cd_dd4700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4700, buf);
+ dd4700 *dp, &lv = *(dp=new (buf) dd4700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd4700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(16,12), "dd4700");
+ check_base_class_offset(lv, (cc700*), 0, "dd4700");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4700.d");
+ test_class_info(&lv, &cd_dd4700);
+ dp->~dd4700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4700(Test_dd4700, "dd4700", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4700C1Ev();
+extern void _ZN6dd4700D1Ev();
+Name_Map name_map_dd4700[] = {
+ NSPAIR(_ZN6dd4700C1Ev),
+ NSPAIR(_ZN6dd4700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+static Base_Class bases_dd4700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY vtc_dd4700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd4700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_dd4700[] = {
+ {&(_ZTV6dd4700[3]), 3,5},
+ {&(_tg__ZTV5cc700__6dd4700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+Class_Descriptor cd_dd4700 = { "dd4700", // class name
+ bases_dd4700, 3,
+ &(vtc_dd4700[0]), // expected_vtbl_contents
+ &(vtt_dd4700[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4700),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 ee04700 : dd4700 {
+ int e;
+ ~ee04700(); // tgen
+ ee04700(); // tgen
+};
+//SIG(1 ee04700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04700 ::~ee04700(){ note_dtor("ee04700", this);} // tgen
+ee04700 ::ee04700(){ note_ctor("ee04700", this);} // tgen
+
+static void Test_ee04700()
+{
+ extern Class_Descriptor cd_ee04700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04700, buf);
+ ee04700 *dp, &lv = *(dp=new (buf) ee04700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee04700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd4700*), ABISELECT(20,16), "ee04700");
+ check_base_class_offset(lv, (cc700*)(dd4700*), 0, "ee04700");
+ check_base_class_offset(lv, (dd4700*), 0, "ee04700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04700.e");
+ test_class_info(&lv, &cd_ee04700);
+ dp->~ee04700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04700(Test_ee04700, "ee04700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04700C1Ev();
+extern void _ZN7ee04700D1Ev();
+Name_Map name_map_ee04700[] = {
+ NSPAIR(_ZN7ee04700C1Ev),
+ NSPAIR(_ZN7ee04700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd4700;
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+static Base_Class bases_ee04700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee04700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY vtc_ee04700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee04700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4700__7ee04700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd4700__7ee04700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee04700[] = {
+ {&(_ZTV7ee04700[3]), 3,5},
+ {&(_tg__ZTV6dd4700__7ee04700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd4700__7ee04700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee04700[];
+extern VTBL_ENTRY _ZTV7ee04700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04700[];
+Class_Descriptor cd_ee04700 = { "ee04700", // class name
+ bases_ee04700, 4,
+ &(vtc_ee04700[0]), // expected_vtbl_contents
+ &(vtt_ee04700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04700),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 ee14700 : virtual dd4700 {
+ int e;
+ ~ee14700(); // tgen
+ ee14700(); // tgen
+};
+//SIG(1 ee14700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14700 ::~ee14700(){ note_dtor("ee14700", this);} // tgen
+ee14700 ::ee14700(){ note_ctor("ee14700", this);} // tgen
+
+static void Test_ee14700()
+{
+ extern Class_Descriptor cd_ee14700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14700, buf);
+ ee14700 *dp, &lv = *(dp=new (buf) ee14700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee14700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd4700*), ABISELECT(32,20), "ee14700");
+ check_base_class_offset(lv, (cc700*)(dd4700*), ABISELECT(16,8), "ee14700");
+ check_base_class_offset(lv, (dd4700*), ABISELECT(16,8), "ee14700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14700.e");
+ test_class_info(&lv, &cd_ee14700);
+ dp->~ee14700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14700(Test_ee14700, "ee14700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14700C1Ev();
+extern void _ZN7ee14700D1Ev();
+Name_Map name_map_ee14700[] = {
+ NSPAIR(_ZN7ee14700C1Ev),
+ NSPAIR(_ZN7ee14700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd4700;
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+static Base_Class bases_ee14700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4700, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY vtc_ee14700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14700[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4700__7ee14700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd4700__7ee14700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee14700[] = {
+ {&(_ZTV7ee14700[4]), 4,11},
+ {&(_ZTV7ee14700[9]), 9,11},
+ {&(_tg__ZTV6dd4700__7ee14700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd4700__7ee14700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee14700[];
+extern VTBL_ENTRY _ZTV7ee14700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14700[];
+Class_Descriptor cd_ee14700 = { "ee14700", // class name
+ bases_ee14700, 4,
+ &(vtc_ee14700[0]), // expected_vtbl_contents
+ &(vtt_ee14700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14700),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14700),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 ee24700 : dd4700 {
+ int e;
+ virtual void foo(); // _ZN7ee247003fooEv
+ ~ee24700(); // tgen
+ ee24700(); // tgen
+};
+//SIG(1 ee24700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24700 ::foo(){vfunc_called(this, "_ZN7ee247003fooEv");}
+ee24700 ::~ee24700(){ note_dtor("ee24700", this);} // tgen
+ee24700 ::ee24700(){ note_ctor("ee24700", this);} // tgen
+
+static void Test_ee24700()
+{
+ extern Class_Descriptor cd_ee24700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24700, buf);
+ ee24700 *dp, &lv = *(dp=new (buf) ee24700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee24700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd4700*), ABISELECT(20,16), "ee24700");
+ check_base_class_offset(lv, (cc700*)(dd4700*), 0, "ee24700");
+ check_base_class_offset(lv, (dd4700*), 0, "ee24700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24700.e");
+ test_class_info(&lv, &cd_ee24700);
+ dp->~ee24700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24700(Test_ee24700, "ee24700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24700C1Ev();
+extern void _ZN7ee24700D1Ev();
+Name_Map name_map_ee24700[] = {
+ NSPAIR(_ZN7ee24700C1Ev),
+ NSPAIR(_ZN7ee24700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd4700;
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+static Base_Class bases_ee24700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee24700[];
+extern void _ZN7ee247003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY vtc_ee24700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24700[0]),
+ (VTBL_ENTRY)&_ZN7ee247003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee24700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4700__7ee24700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd4700__7ee24700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee24700[] = {
+ {&(_ZTV7ee24700[3]), 3,5},
+ {&(_tg__ZTV6dd4700__7ee24700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd4700__7ee24700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee24700[];
+extern VTBL_ENTRY _ZTV7ee24700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24700[];
+Class_Descriptor cd_ee24700 = { "ee24700", // class name
+ bases_ee24700, 4,
+ &(vtc_ee24700[0]), // expected_vtbl_contents
+ &(vtt_ee24700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24700),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 ee34700 : virtual dd4700 {
+ int e;
+ virtual void foo(); // _ZN7ee347003fooEv
+ ~ee34700(); // tgen
+ ee34700(); // tgen
+};
+//SIG(1 ee34700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34700 ::foo(){vfunc_called(this, "_ZN7ee347003fooEv");}
+ee34700 ::~ee34700(){ note_dtor("ee34700", this);} // tgen
+ee34700 ::ee34700(){ note_ctor("ee34700", this);} // tgen
+
+static void Test_ee34700()
+{
+ extern Class_Descriptor cd_ee34700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34700, buf);
+ ee34700 *dp, &lv = *(dp=new (buf) ee34700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee34700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd4700*), ABISELECT(32,20), "ee34700");
+ check_base_class_offset(lv, (cc700*)(dd4700*), ABISELECT(16,8), "ee34700");
+ check_base_class_offset(lv, (dd4700*), ABISELECT(16,8), "ee34700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34700.e");
+ test_class_info(&lv, &cd_ee34700);
+ dp->~ee34700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34700(Test_ee34700, "ee34700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34700C1Ev();
+extern void _ZN7ee34700D1Ev();
+Name_Map name_map_ee34700[] = {
+ NSPAIR(_ZN7ee34700C1Ev),
+ NSPAIR(_ZN7ee34700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd4700;
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+static Base_Class bases_ee34700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34700[];
+extern void _ZN7ee347003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347003fooEv,_ZTv0_n16_N7ee347003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347003fooEv,_ZThn8_N7ee347003fooEv)() __attribute__((weak));
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY vtc_ee34700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34700[0]),
+ (VTBL_ENTRY)&_ZN7ee347003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347003fooEv,_ZTv0_n16_N7ee347003fooEv),
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4700__7ee34700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd4700__7ee34700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee34700[] = {
+ {&(_ZTV7ee34700[4]), 4,12},
+ {&(_ZTV7ee34700[10]), 10,12},
+ {&(_tg__ZTV6dd4700__7ee34700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd4700__7ee34700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee34700[];
+extern VTBL_ENTRY _ZTV7ee34700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34700[];
+static VTBL_ENTRY alt_thunk_names243[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347003fooEv,_ZTv0_n16_N7ee347003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347003fooEv,_ZThn8_N7ee347003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34700 = { "ee34700", // class name
+ bases_ee34700, 4,
+ &(vtc_ee34700[0]), // expected_vtbl_contents
+ &(vtt_ee34700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names243,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44700 : dd4700 {
+ int e;
+ virtual void bar(); // _ZN7ee447003barEv
+ ~ee44700(); // tgen
+ ee44700(); // tgen
+};
+//SIG(1 ee44700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44700 ::bar(){vfunc_called(this, "_ZN7ee447003barEv");}
+ee44700 ::~ee44700(){ note_dtor("ee44700", this);} // tgen
+ee44700 ::ee44700(){ note_ctor("ee44700", this);} // tgen
+
+static void Test_ee44700()
+{
+ extern Class_Descriptor cd_ee44700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44700, buf);
+ ee44700 *dp, &lv = *(dp=new (buf) ee44700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee44700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd4700*), ABISELECT(20,16), "ee44700");
+ check_base_class_offset(lv, (cc700*)(dd4700*), 0, "ee44700");
+ check_base_class_offset(lv, (dd4700*), 0, "ee44700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44700.e");
+ test_class_info(&lv, &cd_ee44700);
+ dp->~ee44700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44700(Test_ee44700, "ee44700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44700C1Ev();
+extern void _ZN7ee44700D1Ev();
+Name_Map name_map_ee44700[] = {
+ NSPAIR(_ZN7ee44700C1Ev),
+ NSPAIR(_ZN7ee44700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd4700;
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+static Base_Class bases_ee44700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee44700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN7ee447003barEv();
+static VTBL_ENTRY vtc_ee44700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN7ee447003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee44700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4700__7ee44700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd4700__7ee44700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee44700[] = {
+ {&(_ZTV7ee44700[3]), 3,5},
+ {&(_tg__ZTV6dd4700__7ee44700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd4700__7ee44700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee44700[];
+extern VTBL_ENTRY _ZTV7ee44700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44700[];
+Class_Descriptor cd_ee44700 = { "ee44700", // class name
+ bases_ee44700, 4,
+ &(vtc_ee44700[0]), // expected_vtbl_contents
+ &(vtt_ee44700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44700),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 ee54700 : virtual dd4700 {
+ int e;
+ virtual void bar(); // _ZN7ee547003barEv
+ ~ee54700(); // tgen
+ ee54700(); // tgen
+};
+//SIG(1 ee54700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54700 ::bar(){vfunc_called(this, "_ZN7ee547003barEv");}
+ee54700 ::~ee54700(){ note_dtor("ee54700", this);} // tgen
+ee54700 ::ee54700(){ note_ctor("ee54700", this);} // tgen
+
+static void Test_ee54700()
+{
+ extern Class_Descriptor cd_ee54700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54700, buf);
+ ee54700 *dp, &lv = *(dp=new (buf) ee54700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee54700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd4700*), ABISELECT(32,20), "ee54700");
+ check_base_class_offset(lv, (cc700*)(dd4700*), ABISELECT(16,8), "ee54700");
+ check_base_class_offset(lv, (dd4700*), ABISELECT(16,8), "ee54700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54700.e");
+ test_class_info(&lv, &cd_ee54700);
+ dp->~ee54700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54700(Test_ee54700, "ee54700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54700C1Ev();
+extern void _ZN7ee54700D1Ev();
+Name_Map name_map_ee54700[] = {
+ NSPAIR(_ZN7ee54700C1Ev),
+ NSPAIR(_ZN7ee54700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd4700;
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+static Base_Class bases_ee54700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54700[];
+extern void _ZN7ee547003barEv();
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547003barEv,_ZTv0_n20_N7ee547003barEv)();
+extern void ABISELECT(_ZThn16_N7ee547003barEv,_ZThn8_N7ee547003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54700[0]),
+ (VTBL_ENTRY)&_ZN7ee547003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547003barEv,_ZTv0_n20_N7ee547003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4700__7ee54700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd4700__7ee54700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee54700[] = {
+ {&(_ZTV7ee54700[4]), 4,12},
+ {&(_ZTV7ee54700[10]), 10,12},
+ {&(_tg__ZTV6dd4700__7ee54700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd4700__7ee54700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee54700[];
+extern VTBL_ENTRY _ZTV7ee54700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54700[];
+static VTBL_ENTRY alt_thunk_names244[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547003barEv,_ZTv0_n20_N7ee547003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547003barEv,_ZThn8_N7ee547003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54700 = { "ee54700", // class name
+ bases_ee54700, 4,
+ &(vtc_ee54700[0]), // expected_vtbl_contents
+ &(vtt_ee54700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names244,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64700 : dd4700 {
+ int e;
+ virtual void foo(); // _ZN7ee647003fooEv
+ virtual void bar(); // _ZN7ee647003barEv
+ ~ee64700(); // tgen
+ ee64700(); // tgen
+};
+//SIG(1 ee64700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64700 ::foo(){vfunc_called(this, "_ZN7ee647003fooEv");}
+void ee64700 ::bar(){vfunc_called(this, "_ZN7ee647003barEv");}
+ee64700 ::~ee64700(){ note_dtor("ee64700", this);} // tgen
+ee64700 ::ee64700(){ note_ctor("ee64700", this);} // tgen
+
+static void Test_ee64700()
+{
+ extern Class_Descriptor cd_ee64700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64700, buf);
+ ee64700 *dp, &lv = *(dp=new (buf) ee64700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee64700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd4700*), ABISELECT(20,16), "ee64700");
+ check_base_class_offset(lv, (cc700*)(dd4700*), 0, "ee64700");
+ check_base_class_offset(lv, (dd4700*), 0, "ee64700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64700.e");
+ test_class_info(&lv, &cd_ee64700);
+ dp->~ee64700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64700(Test_ee64700, "ee64700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64700C1Ev();
+extern void _ZN7ee64700D1Ev();
+Name_Map name_map_ee64700[] = {
+ NSPAIR(_ZN7ee64700C1Ev),
+ NSPAIR(_ZN7ee64700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd4700;
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+static Base_Class bases_ee64700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee64700[];
+extern void _ZN7ee647003fooEv();
+extern void _ZN7ee647003barEv();
+static VTBL_ENTRY vtc_ee64700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64700[0]),
+ (VTBL_ENTRY)&_ZN7ee647003fooEv,
+ (VTBL_ENTRY)&_ZN7ee647003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee64700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4700__7ee64700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd4700__7ee64700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee64700[] = {
+ {&(_ZTV7ee64700[3]), 3,5},
+ {&(_tg__ZTV6dd4700__7ee64700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd4700__7ee64700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee64700[];
+extern VTBL_ENTRY _ZTV7ee64700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64700[];
+Class_Descriptor cd_ee64700 = { "ee64700", // class name
+ bases_ee64700, 4,
+ &(vtc_ee64700[0]), // expected_vtbl_contents
+ &(vtt_ee64700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64700),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 ee74700 : virtual dd4700 {
+ int e;
+ virtual void foo(); // _ZN7ee747003fooEv
+ virtual void bar(); // _ZN7ee747003barEv
+ ~ee74700(); // tgen
+ ee74700(); // tgen
+};
+//SIG(1 ee74700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74700 ::foo(){vfunc_called(this, "_ZN7ee747003fooEv");}
+void ee74700 ::bar(){vfunc_called(this, "_ZN7ee747003barEv");}
+ee74700 ::~ee74700(){ note_dtor("ee74700", this);} // tgen
+ee74700 ::ee74700(){ note_ctor("ee74700", this);} // tgen
+
+static void Test_ee74700()
+{
+ extern Class_Descriptor cd_ee74700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74700, buf);
+ ee74700 *dp, &lv = *(dp=new (buf) ee74700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee74700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd4700*), ABISELECT(32,20), "ee74700");
+ check_base_class_offset(lv, (cc700*)(dd4700*), ABISELECT(16,8), "ee74700");
+ check_base_class_offset(lv, (dd4700*), ABISELECT(16,8), "ee74700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74700.e");
+ test_class_info(&lv, &cd_ee74700);
+ dp->~ee74700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74700(Test_ee74700, "ee74700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74700C1Ev();
+extern void _ZN7ee74700D1Ev();
+Name_Map name_map_ee74700[] = {
+ NSPAIR(_ZN7ee74700C1Ev),
+ NSPAIR(_ZN7ee74700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd4700;
+extern VTBL_ENTRY _ZTI6dd4700[];
+extern VTBL_ENTRY _ZTV6dd4700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4700[];
+static Base_Class bases_ee74700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74700[];
+extern void _ZN7ee747003fooEv();
+extern void _ZN7ee747003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747003fooEv,_ZTv0_n16_N7ee747003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747003fooEv,_ZThn8_N7ee747003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747003barEv,_ZTv0_n20_N7ee747003barEv)();
+extern void ABISELECT(_ZThn16_N7ee747003barEv,_ZThn8_N7ee747003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74700[0]),
+ (VTBL_ENTRY)&_ZN7ee747003fooEv,
+ (VTBL_ENTRY)&_ZN7ee747003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747003fooEv,_ZTv0_n16_N7ee747003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747003barEv,_ZTv0_n20_N7ee747003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN6dd47003barEv();
+static VTBL_ENTRY _tg__ZTV6dd4700__7ee74700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN6dd47003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd4700__7ee74700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee74700[] = {
+ {&(_ZTV7ee74700[4]), 4,13},
+ {&(_ZTV7ee74700[11]), 11,13},
+ {&(_tg__ZTV6dd4700__7ee74700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd4700__7ee74700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee74700[];
+extern VTBL_ENTRY _ZTV7ee74700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74700[];
+static VTBL_ENTRY alt_thunk_names245[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747003barEv,_ZTv0_n20_N7ee747003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747003barEv,_ZThn8_N7ee747003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747003fooEv,_ZTv0_n16_N7ee747003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747003fooEv,_ZThn8_N7ee747003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74700 = { "ee74700", // class name
+ bases_ee74700, 4,
+ &(vtc_ee74700[0]), // expected_vtbl_contents
+ &(vtt_ee74700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names245,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5700 : virtual cc700 {
+ int d;
+ virtual void bar(); // _ZN6dd57003barEv
+ ~dd5700(); // tgen
+ dd5700(); // tgen
+};
+//SIG(-1 dd5700) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5700 ::bar(){vfunc_called(this, "_ZN6dd57003barEv");}
+dd5700 ::~dd5700(){ note_dtor("dd5700", this);} // tgen
+dd5700 ::dd5700(){ note_ctor("dd5700", this);} // tgen
+
+static void Test_dd5700()
+{
+ extern Class_Descriptor cd_dd5700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5700, buf);
+ dd5700 *dp, &lv = *(dp=new (buf) dd5700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd5700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,16), "dd5700");
+ check_base_class_offset(lv, (cc700*), ABISELECT(16,8), "dd5700");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5700.d");
+ test_class_info(&lv, &cd_dd5700);
+ dp->~dd5700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5700(Test_dd5700, "dd5700", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5700C1Ev();
+extern void _ZN6dd5700D1Ev();
+Name_Map name_map_dd5700[] = {
+ NSPAIR(_ZN6dd5700C1Ev),
+ NSPAIR(_ZN6dd5700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+static Base_Class bases_dd5700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern void _ZN6dd57003barEv();
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_dd5700[] = {
+ {&(_ZTV6dd5700[4]), 4,12},
+ {&(_ZTV6dd5700[10]), 10,12},
+ {&(_tg__ZTV5cc700__6dd5700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static VTBL_ENTRY alt_thunk_names246[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5700 = { "dd5700", // class name
+ bases_dd5700, 3,
+ &(vtc_dd5700[0]), // expected_vtbl_contents
+ &(vtt_dd5700[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5700),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names246,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05700 : dd5700 {
+ int e;
+ ~ee05700(); // tgen
+ ee05700(); // tgen
+};
+//SIG(1 ee05700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05700 ::~ee05700(){ note_dtor("ee05700", this);} // tgen
+ee05700 ::ee05700(){ note_ctor("ee05700", this);} // tgen
+
+static void Test_ee05700()
+{
+ extern Class_Descriptor cd_ee05700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05700, buf);
+ ee05700 *dp, &lv = *(dp=new (buf) ee05700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee05700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee05700");
+ check_base_class_offset(lv, (cc700*)(dd5700*), ABISELECT(16,12), "ee05700");
+ check_base_class_offset(lv, (dd5700*), 0, "ee05700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05700.e");
+ test_class_info(&lv, &cd_ee05700);
+ dp->~ee05700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05700(Test_ee05700, "ee05700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05700C1Ev();
+extern void _ZN7ee05700D1Ev();
+Name_Map name_map_ee05700[] = {
+ NSPAIR(_ZN7ee05700C1Ev),
+ NSPAIR(_ZN7ee05700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd5700;
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static Base_Class bases_ee05700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee05700[];
+extern void _ZN6dd57003barEv();
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05700[];
+extern void _ZN6dd57003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5700__7ee05700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700__7ee05700[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee05700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee05700[] = {
+ {&(_ZTV7ee05700[4]), 4,12},
+ {&(_tg__ZTV6dd5700__7ee05700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd5700__7ee05700[5]), 5,7},
+ {&(_ZTV7ee05700[10]), 10,12},
+ {&(_tg__ZTV5cc700__7ee05700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee05700[];
+extern VTBL_ENTRY _ZTV7ee05700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05700[];
+static VTBL_ENTRY alt_thunk_names247[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05700 = { "ee05700", // class name
+ bases_ee05700, 4,
+ &(vtc_ee05700[0]), // expected_vtbl_contents
+ &(vtt_ee05700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names247,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15700 : virtual dd5700 {
+ int e;
+ ~ee15700(); // tgen
+ ee15700(); // tgen
+};
+//SIG(1 ee15700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15700 ::~ee15700(){ note_dtor("ee15700", this);} // tgen
+ee15700 ::ee15700(){ note_ctor("ee15700", this);} // tgen
+
+static void Test_ee15700()
+{
+ extern Class_Descriptor cd_ee15700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15700, buf);
+ ee15700 *dp, &lv = *(dp=new (buf) ee15700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee15700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee15700");
+ check_base_class_offset(lv, (cc700*)(dd5700*), ABISELECT(32,16), "ee15700");
+ check_base_class_offset(lv, (dd5700*), ABISELECT(16,8), "ee15700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15700.e");
+ test_class_info(&lv, &cd_ee15700);
+ dp->~ee15700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15700(Test_ee15700, "ee15700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15700C1Ev();
+extern void _ZN7ee15700D1Ev();
+Name_Map name_map_ee15700[] = {
+ NSPAIR(_ZN7ee15700C1Ev),
+ NSPAIR(_ZN7ee15700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd5700;
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static Base_Class bases_ee15700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15700[];
+extern void _ZN6dd57003barEv();
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15700[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15700[];
+extern void _ZN6dd57003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5700__7ee15700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700__7ee15700[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee15700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee15700[] = {
+ {&(_ZTV7ee15700[5]), 5,18},
+ {&(_ZTV7ee15700[10]), 10,18},
+ {&(_ZTV7ee15700[16]), 16,18},
+ {&(_tg__ZTV6dd5700__7ee15700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd5700__7ee15700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee15700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee15700[];
+extern VTBL_ENTRY _ZTV7ee15700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15700[];
+static VTBL_ENTRY alt_thunk_names248[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15700 = { "ee15700", // class name
+ bases_ee15700, 4,
+ &(vtc_ee15700[0]), // expected_vtbl_contents
+ &(vtt_ee15700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15700),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names248,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25700 : dd5700 {
+ int e;
+ virtual void foo(); // _ZN7ee257003fooEv
+ ~ee25700(); // tgen
+ ee25700(); // tgen
+};
+//SIG(1 ee25700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25700 ::foo(){vfunc_called(this, "_ZN7ee257003fooEv");}
+ee25700 ::~ee25700(){ note_dtor("ee25700", this);} // tgen
+ee25700 ::ee25700(){ note_ctor("ee25700", this);} // tgen
+
+static void Test_ee25700()
+{
+ extern Class_Descriptor cd_ee25700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25700, buf);
+ ee25700 *dp, &lv = *(dp=new (buf) ee25700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee25700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee25700");
+ check_base_class_offset(lv, (cc700*)(dd5700*), ABISELECT(16,12), "ee25700");
+ check_base_class_offset(lv, (dd5700*), 0, "ee25700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25700.e");
+ test_class_info(&lv, &cd_ee25700);
+ dp->~ee25700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25700(Test_ee25700, "ee25700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25700C1Ev();
+extern void _ZN7ee25700D1Ev();
+Name_Map name_map_ee25700[] = {
+ NSPAIR(_ZN7ee25700C1Ev),
+ NSPAIR(_ZN7ee25700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd5700;
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static Base_Class bases_ee25700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee25700[];
+extern void _ZN6dd57003barEv();
+extern void _ZN7ee257003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257003fooEv,_ZTv0_n16_N7ee257003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257003fooEv,_ZThn12_N7ee257003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+ (VTBL_ENTRY)&_ZN7ee257003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257003fooEv,_ZTv0_n16_N7ee257003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25700[];
+extern void _ZN6dd57003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5700__7ee25700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700__7ee25700[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee25700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee25700[] = {
+ {&(_ZTV7ee25700[4]), 4,13},
+ {&(_tg__ZTV6dd5700__7ee25700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd5700__7ee25700[5]), 5,7},
+ {&(_ZTV7ee25700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee25700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee25700[];
+extern VTBL_ENTRY _ZTV7ee25700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25700[];
+static VTBL_ENTRY alt_thunk_names249[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257003fooEv,_ZTv0_n16_N7ee257003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257003fooEv,_ZThn12_N7ee257003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25700 = { "ee25700", // class name
+ bases_ee25700, 4,
+ &(vtc_ee25700[0]), // expected_vtbl_contents
+ &(vtt_ee25700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names249,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35700 : virtual dd5700 {
+ int e;
+ virtual void foo(); // _ZN7ee357003fooEv
+ ~ee35700(); // tgen
+ ee35700(); // tgen
+};
+//SIG(1 ee35700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35700 ::foo(){vfunc_called(this, "_ZN7ee357003fooEv");}
+ee35700 ::~ee35700(){ note_dtor("ee35700", this);} // tgen
+ee35700 ::ee35700(){ note_ctor("ee35700", this);} // tgen
+
+static void Test_ee35700()
+{
+ extern Class_Descriptor cd_ee35700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35700, buf);
+ ee35700 *dp, &lv = *(dp=new (buf) ee35700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee35700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee35700");
+ check_base_class_offset(lv, (cc700*)(dd5700*), ABISELECT(32,16), "ee35700");
+ check_base_class_offset(lv, (dd5700*), ABISELECT(16,8), "ee35700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35700.e");
+ test_class_info(&lv, &cd_ee35700);
+ dp->~ee35700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35700(Test_ee35700, "ee35700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35700C1Ev();
+extern void _ZN7ee35700D1Ev();
+Name_Map name_map_ee35700[] = {
+ NSPAIR(_ZN7ee35700C1Ev),
+ NSPAIR(_ZN7ee35700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd5700;
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static Base_Class bases_ee35700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35700[];
+extern void _ZN7ee357003fooEv();
+extern void _ZN6dd57003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357003fooEv,_ZTv0_n16_N7ee357003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357003fooEv,_ZThn16_N7ee357003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35700[0]),
+ (VTBL_ENTRY)&_ZN7ee357003fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357003fooEv,_ZTv0_n16_N7ee357003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35700[];
+extern void _ZN6dd57003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5700__7ee35700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700__7ee35700[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee35700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee35700[] = {
+ {&(_ZTV7ee35700[5]), 5,19},
+ {&(_ZTV7ee35700[11]), 11,19},
+ {&(_ZTV7ee35700[17]), 17,19},
+ {&(_tg__ZTV6dd5700__7ee35700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd5700__7ee35700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee35700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee35700[];
+extern VTBL_ENTRY _ZTV7ee35700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35700[];
+static VTBL_ENTRY alt_thunk_names250[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357003fooEv,_ZTv0_n16_N7ee357003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357003fooEv,_ZThn16_N7ee357003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35700 = { "ee35700", // class name
+ bases_ee35700, 4,
+ &(vtc_ee35700[0]), // expected_vtbl_contents
+ &(vtt_ee35700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35700),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names250,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45700 : dd5700 {
+ int e;
+ virtual void bar(); // _ZN7ee457003barEv
+ ~ee45700(); // tgen
+ ee45700(); // tgen
+};
+//SIG(1 ee45700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45700 ::bar(){vfunc_called(this, "_ZN7ee457003barEv");}
+ee45700 ::~ee45700(){ note_dtor("ee45700", this);} // tgen
+ee45700 ::ee45700(){ note_ctor("ee45700", this);} // tgen
+
+static void Test_ee45700()
+{
+ extern Class_Descriptor cd_ee45700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45700, buf);
+ ee45700 *dp, &lv = *(dp=new (buf) ee45700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee45700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee45700");
+ check_base_class_offset(lv, (cc700*)(dd5700*), ABISELECT(16,12), "ee45700");
+ check_base_class_offset(lv, (dd5700*), 0, "ee45700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45700.e");
+ test_class_info(&lv, &cd_ee45700);
+ dp->~ee45700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45700(Test_ee45700, "ee45700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45700C1Ev();
+extern void _ZN7ee45700D1Ev();
+Name_Map name_map_ee45700[] = {
+ NSPAIR(_ZN7ee45700C1Ev),
+ NSPAIR(_ZN7ee45700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd5700;
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static Base_Class bases_ee45700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee45700[];
+extern void _ZN7ee457003barEv();
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457003barEv,_ZTv0_n20_N7ee457003barEv)();
+extern void ABISELECT(_ZThn16_N7ee457003barEv,_ZThn12_N7ee457003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45700[0]),
+ (VTBL_ENTRY)&_ZN7ee457003barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457003barEv,_ZTv0_n20_N7ee457003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45700[];
+extern void _ZN6dd57003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5700__7ee45700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700__7ee45700[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee45700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee45700[] = {
+ {&(_ZTV7ee45700[4]), 4,12},
+ {&(_tg__ZTV6dd5700__7ee45700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd5700__7ee45700[5]), 5,7},
+ {&(_ZTV7ee45700[10]), 10,12},
+ {&(_tg__ZTV5cc700__7ee45700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee45700[];
+extern VTBL_ENTRY _ZTV7ee45700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45700[];
+static VTBL_ENTRY alt_thunk_names251[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457003barEv,_ZTv0_n20_N7ee457003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457003barEv,_ZThn12_N7ee457003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45700 = { "ee45700", // class name
+ bases_ee45700, 4,
+ &(vtc_ee45700[0]), // expected_vtbl_contents
+ &(vtt_ee45700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names251,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55700 : virtual dd5700 {
+ int e;
+ virtual void bar(); // _ZN7ee557003barEv
+ ~ee55700(); // tgen
+ ee55700(); // tgen
+};
+//SIG(1 ee55700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55700 ::bar(){vfunc_called(this, "_ZN7ee557003barEv");}
+ee55700 ::~ee55700(){ note_dtor("ee55700", this);} // tgen
+ee55700 ::ee55700(){ note_ctor("ee55700", this);} // tgen
+
+static void Test_ee55700()
+{
+ extern Class_Descriptor cd_ee55700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55700, buf);
+ ee55700 *dp, &lv = *(dp=new (buf) ee55700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee55700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee55700");
+ check_base_class_offset(lv, (cc700*)(dd5700*), ABISELECT(32,16), "ee55700");
+ check_base_class_offset(lv, (dd5700*), ABISELECT(16,8), "ee55700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55700.e");
+ test_class_info(&lv, &cd_ee55700);
+ dp->~ee55700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55700(Test_ee55700, "ee55700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55700C1Ev();
+extern void _ZN7ee55700D1Ev();
+Name_Map name_map_ee55700[] = {
+ NSPAIR(_ZN7ee55700C1Ev),
+ NSPAIR(_ZN7ee55700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd5700;
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static Base_Class bases_ee55700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55700[];
+extern void _ZN7ee557003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557003barEv,_ZTv0_n20_N7ee557003barEv)();
+extern void ABISELECT(_ZThn16_N7ee557003barEv,_ZThn8_N7ee557003barEv)() __attribute__((weak));
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557003barEv,_ZTv0_n20_N7ee557003barEv)();
+extern void ABISELECT(_ZThn32_N7ee557003barEv,_ZThn16_N7ee557003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55700[0]),
+ (VTBL_ENTRY)&_ZN7ee557003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557003barEv,_ZTv0_n20_N7ee557003barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557003barEv,_ZTv0_n20_N7ee557003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55700[];
+extern void _ZN6dd57003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5700__7ee55700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700__7ee55700[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee55700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee55700[] = {
+ {&(_ZTV7ee55700[5]), 5,19},
+ {&(_ZTV7ee55700[11]), 11,19},
+ {&(_ZTV7ee55700[17]), 17,19},
+ {&(_tg__ZTV6dd5700__7ee55700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd5700__7ee55700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee55700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee55700[];
+extern VTBL_ENTRY _ZTV7ee55700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55700[];
+static VTBL_ENTRY alt_thunk_names252[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557003barEv,_ZTv0_n20_N7ee557003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557003barEv,_ZThn16_N7ee557003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557003barEv,_ZThn8_N7ee557003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55700 = { "ee55700", // class name
+ bases_ee55700, 4,
+ &(vtc_ee55700[0]), // expected_vtbl_contents
+ &(vtt_ee55700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55700),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names252,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65700 : dd5700 {
+ int e;
+ virtual void foo(); // _ZN7ee657003fooEv
+ virtual void bar(); // _ZN7ee657003barEv
+ ~ee65700(); // tgen
+ ee65700(); // tgen
+};
+//SIG(1 ee65700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65700 ::foo(){vfunc_called(this, "_ZN7ee657003fooEv");}
+void ee65700 ::bar(){vfunc_called(this, "_ZN7ee657003barEv");}
+ee65700 ::~ee65700(){ note_dtor("ee65700", this);} // tgen
+ee65700 ::ee65700(){ note_ctor("ee65700", this);} // tgen
+
+static void Test_ee65700()
+{
+ extern Class_Descriptor cd_ee65700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65700, buf);
+ ee65700 *dp, &lv = *(dp=new (buf) ee65700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee65700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee65700");
+ check_base_class_offset(lv, (cc700*)(dd5700*), ABISELECT(16,12), "ee65700");
+ check_base_class_offset(lv, (dd5700*), 0, "ee65700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65700.e");
+ test_class_info(&lv, &cd_ee65700);
+ dp->~ee65700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65700(Test_ee65700, "ee65700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65700C1Ev();
+extern void _ZN7ee65700D1Ev();
+Name_Map name_map_ee65700[] = {
+ NSPAIR(_ZN7ee65700C1Ev),
+ NSPAIR(_ZN7ee65700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd5700;
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static Base_Class bases_ee65700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee65700[];
+extern void _ZN7ee657003barEv();
+extern void _ZN7ee657003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657003fooEv,_ZTv0_n16_N7ee657003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657003fooEv,_ZThn12_N7ee657003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657003barEv,_ZTv0_n20_N7ee657003barEv)();
+extern void ABISELECT(_ZThn16_N7ee657003barEv,_ZThn12_N7ee657003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65700[0]),
+ (VTBL_ENTRY)&_ZN7ee657003barEv,
+ (VTBL_ENTRY)&_ZN7ee657003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657003fooEv,_ZTv0_n16_N7ee657003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657003barEv,_ZTv0_n20_N7ee657003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65700[];
+extern void _ZN6dd57003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5700__7ee65700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700__7ee65700[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee65700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee65700[] = {
+ {&(_ZTV7ee65700[4]), 4,13},
+ {&(_tg__ZTV6dd5700__7ee65700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd5700__7ee65700[5]), 5,7},
+ {&(_ZTV7ee65700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee65700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee65700[];
+extern VTBL_ENTRY _ZTV7ee65700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65700[];
+static VTBL_ENTRY alt_thunk_names253[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn12_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657003barEv,_ZTv0_n20_N7ee657003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657003barEv,_ZThn12_N7ee657003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657003fooEv,_ZTv0_n16_N7ee657003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657003fooEv,_ZThn12_N7ee657003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65700 = { "ee65700", // class name
+ bases_ee65700, 4,
+ &(vtc_ee65700[0]), // expected_vtbl_contents
+ &(vtt_ee65700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names253,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75700 : virtual dd5700 {
+ int e;
+ virtual void foo(); // _ZN7ee757003fooEv
+ virtual void bar(); // _ZN7ee757003barEv
+ ~ee75700(); // tgen
+ ee75700(); // tgen
+};
+//SIG(1 ee75700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75700 ::foo(){vfunc_called(this, "_ZN7ee757003fooEv");}
+void ee75700 ::bar(){vfunc_called(this, "_ZN7ee757003barEv");}
+ee75700 ::~ee75700(){ note_dtor("ee75700", this);} // tgen
+ee75700 ::ee75700(){ note_ctor("ee75700", this);} // tgen
+
+static void Test_ee75700()
+{
+ extern Class_Descriptor cd_ee75700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75700, buf);
+ ee75700 *dp, &lv = *(dp=new (buf) ee75700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee75700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee75700");
+ check_base_class_offset(lv, (cc700*)(dd5700*), ABISELECT(32,16), "ee75700");
+ check_base_class_offset(lv, (dd5700*), ABISELECT(16,8), "ee75700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75700.e");
+ test_class_info(&lv, &cd_ee75700);
+ dp->~ee75700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75700(Test_ee75700, "ee75700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75700C1Ev();
+extern void _ZN7ee75700D1Ev();
+Name_Map name_map_ee75700[] = {
+ NSPAIR(_ZN7ee75700C1Ev),
+ NSPAIR(_ZN7ee75700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd5700;
+extern VTBL_ENTRY _ZTI6dd5700[];
+extern VTBL_ENTRY _ZTV6dd5700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5700[];
+static Base_Class bases_ee75700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5700, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75700[];
+extern void _ZN7ee757003fooEv();
+extern void _ZN7ee757003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757003barEv,_ZTv0_n20_N7ee757003barEv)();
+extern void ABISELECT(_ZThn16_N7ee757003barEv,_ZThn8_N7ee757003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757003fooEv,_ZTv0_n16_N7ee757003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757003fooEv,_ZThn16_N7ee757003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757003barEv,_ZTv0_n20_N7ee757003barEv)();
+extern void ABISELECT(_ZThn32_N7ee757003barEv,_ZThn16_N7ee757003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75700[0]),
+ (VTBL_ENTRY)&_ZN7ee757003fooEv,
+ (VTBL_ENTRY)&_ZN7ee757003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757003barEv,_ZTv0_n20_N7ee757003barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757003fooEv,_ZTv0_n16_N7ee757003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757003barEv,_ZTv0_n20_N7ee757003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75700[];
+extern void _ZN6dd57003barEv();
+static VTBL_ENTRY _tg__ZTV6dd5700__7ee75700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN6dd57003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv)();
+extern void ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd5700__7ee75700[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee75700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee75700[] = {
+ {&(_ZTV7ee75700[5]), 5,20},
+ {&(_ZTV7ee75700[12]), 12,20},
+ {&(_ZTV7ee75700[18]), 18,20},
+ {&(_tg__ZTV6dd5700__7ee75700[4]), 4,5},
+ {&(_tg__ZTV5cc700__6dd5700__7ee75700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee75700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee75700[];
+extern VTBL_ENTRY _ZTV7ee75700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75700[];
+static VTBL_ENTRY alt_thunk_names254[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57003barEv,_ZTv0_n20_N6dd57003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57003barEv,_ZThn8_N6dd57003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757003fooEv,_ZTv0_n16_N7ee757003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757003fooEv,_ZThn16_N7ee757003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757003barEv,_ZTv0_n20_N7ee757003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757003barEv,_ZThn16_N7ee757003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757003barEv,_ZThn8_N7ee757003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75700 = { "ee75700", // class name
+ bases_ee75700, 4,
+ &(vtc_ee75700[0]), // expected_vtbl_contents
+ &(vtt_ee75700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75700),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names254,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6700 : cc700 {
+ int d;
+ virtual void bar(); // _ZN6dd67003barEv
+ virtual void foo(); // _ZN6dd67003fooEv
+ ~dd6700(); // tgen
+ dd6700(); // tgen
+};
+//SIG(-1 dd6700) C1{ BC2{ VBC3{ BC4{ Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6700 ::bar(){vfunc_called(this, "_ZN6dd67003barEv");}
+void dd6700 ::foo(){vfunc_called(this, "_ZN6dd67003fooEv");}
+dd6700 ::~dd6700(){ note_dtor("dd6700", this);} // tgen
+dd6700 ::dd6700(){ note_ctor("dd6700", this);} // tgen
+
+static void Test_dd6700()
+{
+ extern Class_Descriptor cd_dd6700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6700, buf);
+ dd6700 *dp, &lv = *(dp=new (buf) dd6700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(16,12), "dd6700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(16,12), "dd6700");
+ check_base_class_offset(lv, (cc700*), 0, "dd6700");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6700.d");
+ test_class_info(&lv, &cd_dd6700);
+ dp->~dd6700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6700(Test_dd6700, "dd6700", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6700C1Ev();
+extern void _ZN6dd6700D1Ev();
+Name_Map name_map_dd6700[] = {
+ NSPAIR(_ZN6dd6700C1Ev),
+ NSPAIR(_ZN6dd6700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+static Base_Class bases_dd6700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY vtc_dd6700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd6700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_dd6700[] = {
+ {&(_ZTV6dd6700[3]), 3,5},
+ {&(_tg__ZTV5cc700__6dd6700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+Class_Descriptor cd_dd6700 = { "dd6700", // class name
+ bases_dd6700, 3,
+ &(vtc_dd6700[0]), // expected_vtbl_contents
+ &(vtt_dd6700[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6700),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 ee06700 : dd6700 {
+ int e;
+ ~ee06700(); // tgen
+ ee06700(); // tgen
+};
+//SIG(1 ee06700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06700 ::~ee06700(){ note_dtor("ee06700", this);} // tgen
+ee06700 ::ee06700(){ note_ctor("ee06700", this);} // tgen
+
+static void Test_ee06700()
+{
+ extern Class_Descriptor cd_ee06700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06700, buf);
+ ee06700 *dp, &lv = *(dp=new (buf) ee06700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee06700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd6700*), ABISELECT(20,16), "ee06700");
+ check_base_class_offset(lv, (cc700*)(dd6700*), 0, "ee06700");
+ check_base_class_offset(lv, (dd6700*), 0, "ee06700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06700.e");
+ test_class_info(&lv, &cd_ee06700);
+ dp->~ee06700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06700(Test_ee06700, "ee06700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06700C1Ev();
+extern void _ZN7ee06700D1Ev();
+Name_Map name_map_ee06700[] = {
+ NSPAIR(_ZN7ee06700C1Ev),
+ NSPAIR(_ZN7ee06700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd6700;
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+static Base_Class bases_ee06700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee06700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY vtc_ee06700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee06700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6700__7ee06700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd6700__7ee06700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee06700[] = {
+ {&(_ZTV7ee06700[3]), 3,5},
+ {&(_tg__ZTV6dd6700__7ee06700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd6700__7ee06700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee06700[];
+extern VTBL_ENTRY _ZTV7ee06700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06700[];
+Class_Descriptor cd_ee06700 = { "ee06700", // class name
+ bases_ee06700, 4,
+ &(vtc_ee06700[0]), // expected_vtbl_contents
+ &(vtt_ee06700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06700),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 ee16700 : virtual dd6700 {
+ int e;
+ ~ee16700(); // tgen
+ ee16700(); // tgen
+};
+//SIG(1 ee16700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16700 ::~ee16700(){ note_dtor("ee16700", this);} // tgen
+ee16700 ::ee16700(){ note_ctor("ee16700", this);} // tgen
+
+static void Test_ee16700()
+{
+ extern Class_Descriptor cd_ee16700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16700, buf);
+ ee16700 *dp, &lv = *(dp=new (buf) ee16700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee16700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd6700*), ABISELECT(32,20), "ee16700");
+ check_base_class_offset(lv, (cc700*)(dd6700*), ABISELECT(16,8), "ee16700");
+ check_base_class_offset(lv, (dd6700*), ABISELECT(16,8), "ee16700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16700.e");
+ test_class_info(&lv, &cd_ee16700);
+ dp->~ee16700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16700(Test_ee16700, "ee16700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16700C1Ev();
+extern void _ZN7ee16700D1Ev();
+Name_Map name_map_ee16700[] = {
+ NSPAIR(_ZN7ee16700C1Ev),
+ NSPAIR(_ZN7ee16700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd6700;
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+static Base_Class bases_ee16700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6700, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY vtc_ee16700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16700[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6700__7ee16700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd6700__7ee16700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee16700[] = {
+ {&(_ZTV7ee16700[4]), 4,11},
+ {&(_ZTV7ee16700[9]), 9,11},
+ {&(_tg__ZTV6dd6700__7ee16700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd6700__7ee16700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee16700[];
+extern VTBL_ENTRY _ZTV7ee16700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16700[];
+Class_Descriptor cd_ee16700 = { "ee16700", // class name
+ bases_ee16700, 4,
+ &(vtc_ee16700[0]), // expected_vtbl_contents
+ &(vtt_ee16700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16700),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16700),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 ee26700 : dd6700 {
+ int e;
+ virtual void foo(); // _ZN7ee267003fooEv
+ ~ee26700(); // tgen
+ ee26700(); // tgen
+};
+//SIG(1 ee26700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26700 ::foo(){vfunc_called(this, "_ZN7ee267003fooEv");}
+ee26700 ::~ee26700(){ note_dtor("ee26700", this);} // tgen
+ee26700 ::ee26700(){ note_ctor("ee26700", this);} // tgen
+
+static void Test_ee26700()
+{
+ extern Class_Descriptor cd_ee26700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26700, buf);
+ ee26700 *dp, &lv = *(dp=new (buf) ee26700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee26700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd6700*), ABISELECT(20,16), "ee26700");
+ check_base_class_offset(lv, (cc700*)(dd6700*), 0, "ee26700");
+ check_base_class_offset(lv, (dd6700*), 0, "ee26700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26700.e");
+ test_class_info(&lv, &cd_ee26700);
+ dp->~ee26700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26700(Test_ee26700, "ee26700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26700C1Ev();
+extern void _ZN7ee26700D1Ev();
+Name_Map name_map_ee26700[] = {
+ NSPAIR(_ZN7ee26700C1Ev),
+ NSPAIR(_ZN7ee26700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd6700;
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+static Base_Class bases_ee26700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee26700[];
+extern void _ZN7ee267003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY vtc_ee26700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26700[0]),
+ (VTBL_ENTRY)&_ZN7ee267003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee26700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6700__7ee26700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd6700__7ee26700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee26700[] = {
+ {&(_ZTV7ee26700[3]), 3,5},
+ {&(_tg__ZTV6dd6700__7ee26700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd6700__7ee26700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee26700[];
+extern VTBL_ENTRY _ZTV7ee26700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26700[];
+Class_Descriptor cd_ee26700 = { "ee26700", // class name
+ bases_ee26700, 4,
+ &(vtc_ee26700[0]), // expected_vtbl_contents
+ &(vtt_ee26700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26700),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 ee36700 : virtual dd6700 {
+ int e;
+ virtual void foo(); // _ZN7ee367003fooEv
+ ~ee36700(); // tgen
+ ee36700(); // tgen
+};
+//SIG(1 ee36700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36700 ::foo(){vfunc_called(this, "_ZN7ee367003fooEv");}
+ee36700 ::~ee36700(){ note_dtor("ee36700", this);} // tgen
+ee36700 ::ee36700(){ note_ctor("ee36700", this);} // tgen
+
+static void Test_ee36700()
+{
+ extern Class_Descriptor cd_ee36700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36700, buf);
+ ee36700 *dp, &lv = *(dp=new (buf) ee36700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee36700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd6700*), ABISELECT(32,20), "ee36700");
+ check_base_class_offset(lv, (cc700*)(dd6700*), ABISELECT(16,8), "ee36700");
+ check_base_class_offset(lv, (dd6700*), ABISELECT(16,8), "ee36700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36700.e");
+ test_class_info(&lv, &cd_ee36700);
+ dp->~ee36700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36700(Test_ee36700, "ee36700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36700C1Ev();
+extern void _ZN7ee36700D1Ev();
+Name_Map name_map_ee36700[] = {
+ NSPAIR(_ZN7ee36700C1Ev),
+ NSPAIR(_ZN7ee36700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd6700;
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+static Base_Class bases_ee36700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36700[];
+extern void _ZN7ee367003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367003fooEv,_ZTv0_n16_N7ee367003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367003fooEv,_ZThn8_N7ee367003fooEv)() __attribute__((weak));
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY vtc_ee36700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36700[0]),
+ (VTBL_ENTRY)&_ZN7ee367003fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367003fooEv,_ZTv0_n16_N7ee367003fooEv),
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6700__7ee36700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd6700__7ee36700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee36700[] = {
+ {&(_ZTV7ee36700[4]), 4,12},
+ {&(_ZTV7ee36700[10]), 10,12},
+ {&(_tg__ZTV6dd6700__7ee36700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd6700__7ee36700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee36700[];
+extern VTBL_ENTRY _ZTV7ee36700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36700[];
+static VTBL_ENTRY alt_thunk_names255[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367003fooEv,_ZTv0_n16_N7ee367003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367003fooEv,_ZThn8_N7ee367003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36700 = { "ee36700", // class name
+ bases_ee36700, 4,
+ &(vtc_ee36700[0]), // expected_vtbl_contents
+ &(vtt_ee36700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names255,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46700 : dd6700 {
+ int e;
+ virtual void bar(); // _ZN7ee467003barEv
+ ~ee46700(); // tgen
+ ee46700(); // tgen
+};
+//SIG(1 ee46700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46700 ::bar(){vfunc_called(this, "_ZN7ee467003barEv");}
+ee46700 ::~ee46700(){ note_dtor("ee46700", this);} // tgen
+ee46700 ::ee46700(){ note_ctor("ee46700", this);} // tgen
+
+static void Test_ee46700()
+{
+ extern Class_Descriptor cd_ee46700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46700, buf);
+ ee46700 *dp, &lv = *(dp=new (buf) ee46700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee46700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd6700*), ABISELECT(20,16), "ee46700");
+ check_base_class_offset(lv, (cc700*)(dd6700*), 0, "ee46700");
+ check_base_class_offset(lv, (dd6700*), 0, "ee46700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46700.e");
+ test_class_info(&lv, &cd_ee46700);
+ dp->~ee46700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46700(Test_ee46700, "ee46700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46700C1Ev();
+extern void _ZN7ee46700D1Ev();
+Name_Map name_map_ee46700[] = {
+ NSPAIR(_ZN7ee46700C1Ev),
+ NSPAIR(_ZN7ee46700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd6700;
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+static Base_Class bases_ee46700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee46700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN7ee467003barEv();
+static VTBL_ENTRY vtc_ee46700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN7ee467003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee46700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6700__7ee46700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd6700__7ee46700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee46700[] = {
+ {&(_ZTV7ee46700[3]), 3,5},
+ {&(_tg__ZTV6dd6700__7ee46700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd6700__7ee46700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee46700[];
+extern VTBL_ENTRY _ZTV7ee46700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46700[];
+Class_Descriptor cd_ee46700 = { "ee46700", // class name
+ bases_ee46700, 4,
+ &(vtc_ee46700[0]), // expected_vtbl_contents
+ &(vtt_ee46700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46700),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 ee56700 : virtual dd6700 {
+ int e;
+ virtual void bar(); // _ZN7ee567003barEv
+ ~ee56700(); // tgen
+ ee56700(); // tgen
+};
+//SIG(1 ee56700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56700 ::bar(){vfunc_called(this, "_ZN7ee567003barEv");}
+ee56700 ::~ee56700(){ note_dtor("ee56700", this);} // tgen
+ee56700 ::ee56700(){ note_ctor("ee56700", this);} // tgen
+
+static void Test_ee56700()
+{
+ extern Class_Descriptor cd_ee56700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56700, buf);
+ ee56700 *dp, &lv = *(dp=new (buf) ee56700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee56700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd6700*), ABISELECT(32,20), "ee56700");
+ check_base_class_offset(lv, (cc700*)(dd6700*), ABISELECT(16,8), "ee56700");
+ check_base_class_offset(lv, (dd6700*), ABISELECT(16,8), "ee56700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56700.e");
+ test_class_info(&lv, &cd_ee56700);
+ dp->~ee56700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56700(Test_ee56700, "ee56700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56700C1Ev();
+extern void _ZN7ee56700D1Ev();
+Name_Map name_map_ee56700[] = {
+ NSPAIR(_ZN7ee56700C1Ev),
+ NSPAIR(_ZN7ee56700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd6700;
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+static Base_Class bases_ee56700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56700[];
+extern void _ZN7ee567003barEv();
+extern void _ZN6dd67003fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567003barEv,_ZTv0_n20_N7ee567003barEv)();
+extern void ABISELECT(_ZThn16_N7ee567003barEv,_ZThn8_N7ee567003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56700[0]),
+ (VTBL_ENTRY)&_ZN7ee567003barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567003barEv,_ZTv0_n20_N7ee567003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6700__7ee56700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd6700__7ee56700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee56700[] = {
+ {&(_ZTV7ee56700[4]), 4,12},
+ {&(_ZTV7ee56700[10]), 10,12},
+ {&(_tg__ZTV6dd6700__7ee56700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd6700__7ee56700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee56700[];
+extern VTBL_ENTRY _ZTV7ee56700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56700[];
+static VTBL_ENTRY alt_thunk_names256[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567003barEv,_ZTv0_n20_N7ee567003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567003barEv,_ZThn8_N7ee567003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56700 = { "ee56700", // class name
+ bases_ee56700, 4,
+ &(vtc_ee56700[0]), // expected_vtbl_contents
+ &(vtt_ee56700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56700),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names256,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66700 : dd6700 {
+ int e;
+ virtual void foo(); // _ZN7ee667003fooEv
+ virtual void bar(); // _ZN7ee667003barEv
+ ~ee66700(); // tgen
+ ee66700(); // tgen
+};
+//SIG(1 ee66700) C1{ BC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66700 ::foo(){vfunc_called(this, "_ZN7ee667003fooEv");}
+void ee66700 ::bar(){vfunc_called(this, "_ZN7ee667003barEv");}
+ee66700 ::~ee66700(){ note_dtor("ee66700", this);} // tgen
+ee66700 ::ee66700(){ note_ctor("ee66700", this);} // tgen
+
+static void Test_ee66700()
+{
+ extern Class_Descriptor cd_ee66700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66700, buf);
+ ee66700 *dp, &lv = *(dp=new (buf) ee66700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(20,16), "ee66700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd6700*), ABISELECT(20,16), "ee66700");
+ check_base_class_offset(lv, (cc700*)(dd6700*), 0, "ee66700");
+ check_base_class_offset(lv, (dd6700*), 0, "ee66700");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66700.e");
+ test_class_info(&lv, &cd_ee66700);
+ dp->~ee66700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66700(Test_ee66700, "ee66700", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66700C1Ev();
+extern void _ZN7ee66700D1Ev();
+Name_Map name_map_ee66700[] = {
+ NSPAIR(_ZN7ee66700C1Ev),
+ NSPAIR(_ZN7ee66700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd6700;
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+static Base_Class bases_ee66700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(20,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee66700[];
+extern void _ZN7ee667003fooEv();
+extern void _ZN7ee667003barEv();
+static VTBL_ENTRY vtc_ee66700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66700[0]),
+ (VTBL_ENTRY)&_ZN7ee667003fooEv,
+ (VTBL_ENTRY)&_ZN7ee667003barEv,
+};
+extern VTBL_ENTRY _ZTV7ee66700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6700__7ee66700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd6700__7ee66700[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee66700[] = {
+ {&(_ZTV7ee66700[3]), 3,5},
+ {&(_tg__ZTV6dd6700__7ee66700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd6700__7ee66700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee66700[];
+extern VTBL_ENTRY _ZTV7ee66700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66700[];
+Class_Descriptor cd_ee66700 = { "ee66700", // class name
+ bases_ee66700, 4,
+ &(vtc_ee66700[0]), // expected_vtbl_contents
+ &(vtt_ee66700[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66700),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66700),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 ee76700 : virtual dd6700 {
+ int e;
+ virtual void foo(); // _ZN7ee767003fooEv
+ virtual void bar(); // _ZN7ee767003barEv
+ ~ee76700(); // tgen
+ ee76700(); // tgen
+};
+//SIG(1 ee76700) C1{ VBC2{ BC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76700 ::foo(){vfunc_called(this, "_ZN7ee767003fooEv");}
+void ee76700 ::bar(){vfunc_called(this, "_ZN7ee767003barEv");}
+ee76700 ::~ee76700(){ note_dtor("ee76700", this);} // tgen
+ee76700 ::ee76700(){ note_ctor("ee76700", this);} // tgen
+
+static void Test_ee76700()
+{
+ extern Class_Descriptor cd_ee76700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76700, buf);
+ ee76700 *dp, &lv = *(dp=new (buf) ee76700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(32,20), "ee76700");
+ check_base_class_offset(lv, (bb00*)(cc700*)(dd6700*), ABISELECT(32,20), "ee76700");
+ check_base_class_offset(lv, (cc700*)(dd6700*), ABISELECT(16,8), "ee76700");
+ check_base_class_offset(lv, (dd6700*), ABISELECT(16,8), "ee76700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76700.e");
+ test_class_info(&lv, &cd_ee76700);
+ dp->~ee76700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76700(Test_ee76700, "ee76700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76700C1Ev();
+extern void _ZN7ee76700D1Ev();
+Name_Map name_map_ee76700[] = {
+ NSPAIR(_ZN7ee76700C1Ev),
+ NSPAIR(_ZN7ee76700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd6700;
+extern VTBL_ENTRY _ZTI6dd6700[];
+extern VTBL_ENTRY _ZTV6dd6700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6700[];
+static Base_Class bases_ee76700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76700[];
+extern void _ZN7ee767003fooEv();
+extern void _ZN7ee767003barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767003fooEv,_ZTv0_n16_N7ee767003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767003fooEv,_ZThn8_N7ee767003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767003barEv,_ZTv0_n20_N7ee767003barEv)();
+extern void ABISELECT(_ZThn16_N7ee767003barEv,_ZThn8_N7ee767003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76700[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76700[0]),
+ (VTBL_ENTRY)&_ZN7ee767003fooEv,
+ (VTBL_ENTRY)&_ZN7ee767003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767003fooEv,_ZTv0_n16_N7ee767003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767003barEv,_ZTv0_n20_N7ee767003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76700[];
+extern void _ZN6dd67003fooEv();
+extern void _ZN6dd67003barEv();
+static VTBL_ENTRY _tg__ZTV6dd6700__7ee76700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6700[0]),
+ (VTBL_ENTRY)&_ZN6dd67003fooEv,
+ (VTBL_ENTRY)&_ZN6dd67003barEv,
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc7006dd6700__7ee76700[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee76700[] = {
+ {&(_ZTV7ee76700[4]), 4,13},
+ {&(_ZTV7ee76700[11]), 11,13},
+ {&(_tg__ZTV6dd6700__7ee76700[3]), 3,5},
+ {&(_tg__ZTV5cc7006dd6700__7ee76700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee76700[];
+extern VTBL_ENTRY _ZTV7ee76700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76700[];
+static VTBL_ENTRY alt_thunk_names257[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767003barEv,_ZTv0_n20_N7ee767003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767003barEv,_ZThn8_N7ee767003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767003fooEv,_ZTv0_n16_N7ee767003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767003fooEv,_ZThn8_N7ee767003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76700 = { "ee76700", // class name
+ bases_ee76700, 4,
+ &(vtc_ee76700[0]), // expected_vtbl_contents
+ &(vtt_ee76700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76700),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names257,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7700 : virtual cc700 {
+ int d;
+ virtual void bar(); // _ZN6dd77003barEv
+ virtual void foo(); // _ZN6dd77003fooEv
+ ~dd7700(); // tgen
+ dd7700(); // tgen
+};
+//SIG(-1 dd7700) C1{ VBC2{ VBC3{ BC4{ Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7700 ::bar(){vfunc_called(this, "_ZN6dd77003barEv");}
+void dd7700 ::foo(){vfunc_called(this, "_ZN6dd77003fooEv");}
+dd7700 ::~dd7700(){ note_dtor("dd7700", this);} // tgen
+dd7700 ::dd7700(){ note_ctor("dd7700", this);} // tgen
+
+static void Test_dd7700()
+{
+ extern Class_Descriptor cd_dd7700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7700, buf);
+ dd7700 *dp, &lv = *(dp=new (buf) dd7700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,16), "dd7700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,16), "dd7700");
+ check_base_class_offset(lv, (cc700*), ABISELECT(16,8), "dd7700");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7700.d");
+ test_class_info(&lv, &cd_dd7700);
+ dp->~dd7700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7700(Test_dd7700, "dd7700", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7700C1Ev();
+extern void _ZN6dd7700D1Ev();
+Name_Map name_map_dd7700[] = {
+ NSPAIR(_ZN6dd7700C1Ev),
+ NSPAIR(_ZN6dd7700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+static Base_Class bases_dd7700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_dd7700[] = {
+ {&(_ZTV6dd7700[4]), 4,13},
+ {&(_ZTV6dd7700[11]), 11,13},
+ {&(_tg__ZTV5cc700__6dd7700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static VTBL_ENTRY alt_thunk_names258[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7700 = { "dd7700", // class name
+ bases_dd7700, 3,
+ &(vtc_dd7700[0]), // expected_vtbl_contents
+ &(vtt_dd7700[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7700),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names258,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07700 : dd7700 {
+ int e;
+ ~ee07700(); // tgen
+ ee07700(); // tgen
+};
+//SIG(1 ee07700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07700 ::~ee07700(){ note_dtor("ee07700", this);} // tgen
+ee07700 ::ee07700(){ note_ctor("ee07700", this);} // tgen
+
+static void Test_ee07700()
+{
+ extern Class_Descriptor cd_ee07700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07700, buf);
+ ee07700 *dp, &lv = *(dp=new (buf) ee07700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee07700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee07700");
+ check_base_class_offset(lv, (cc700*)(dd7700*), ABISELECT(16,12), "ee07700");
+ check_base_class_offset(lv, (dd7700*), 0, "ee07700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07700.e");
+ test_class_info(&lv, &cd_ee07700);
+ dp->~ee07700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07700(Test_ee07700, "ee07700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07700C1Ev();
+extern void _ZN7ee07700D1Ev();
+Name_Map name_map_ee07700[] = {
+ NSPAIR(_ZN7ee07700C1Ev),
+ NSPAIR(_ZN7ee07700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd7700;
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static Base_Class bases_ee07700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee07700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7700__7ee07700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700__7ee07700[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee07700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee07700[] = {
+ {&(_ZTV7ee07700[4]), 4,13},
+ {&(_tg__ZTV6dd7700__7ee07700[4]), 4,6},
+ {&(_tg__ZTV5cc700__6dd7700__7ee07700[5]), 5,7},
+ {&(_ZTV7ee07700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee07700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee07700[];
+extern VTBL_ENTRY _ZTV7ee07700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07700[];
+static VTBL_ENTRY alt_thunk_names259[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07700 = { "ee07700", // class name
+ bases_ee07700, 4,
+ &(vtc_ee07700[0]), // expected_vtbl_contents
+ &(vtt_ee07700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names259,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17700 : virtual dd7700 {
+ int e;
+ ~ee17700(); // tgen
+ ee17700(); // tgen
+};
+//SIG(1 ee17700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17700 ::~ee17700(){ note_dtor("ee17700", this);} // tgen
+ee17700 ::ee17700(){ note_ctor("ee17700", this);} // tgen
+
+static void Test_ee17700()
+{
+ extern Class_Descriptor cd_ee17700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17700, buf);
+ ee17700 *dp, &lv = *(dp=new (buf) ee17700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee17700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee17700");
+ check_base_class_offset(lv, (cc700*)(dd7700*), ABISELECT(32,16), "ee17700");
+ check_base_class_offset(lv, (dd7700*), ABISELECT(16,8), "ee17700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17700.e");
+ test_class_info(&lv, &cd_ee17700);
+ dp->~ee17700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17700(Test_ee17700, "ee17700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17700C1Ev();
+extern void _ZN7ee17700D1Ev();
+Name_Map name_map_ee17700[] = {
+ NSPAIR(_ZN7ee17700C1Ev),
+ NSPAIR(_ZN7ee17700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd7700;
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static Base_Class bases_ee17700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7700, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17700[0]),
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7700__7ee17700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700__7ee17700[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee17700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee17700[] = {
+ {&(_ZTV7ee17700[5]), 5,20},
+ {&(_ZTV7ee17700[11]), 11,20},
+ {&(_ZTV7ee17700[18]), 18,20},
+ {&(_tg__ZTV6dd7700__7ee17700[4]), 4,6},
+ {&(_tg__ZTV5cc700__6dd7700__7ee17700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee17700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee17700[];
+extern VTBL_ENTRY _ZTV7ee17700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17700[];
+static VTBL_ENTRY alt_thunk_names260[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17700 = { "ee17700", // class name
+ bases_ee17700, 4,
+ &(vtc_ee17700[0]), // expected_vtbl_contents
+ &(vtt_ee17700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17700),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names260,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27700 : dd7700 {
+ int e;
+ virtual void foo(); // _ZN7ee277003fooEv
+ ~ee27700(); // tgen
+ ee27700(); // tgen
+};
+//SIG(1 ee27700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27700 ::foo(){vfunc_called(this, "_ZN7ee277003fooEv");}
+ee27700 ::~ee27700(){ note_dtor("ee27700", this);} // tgen
+ee27700 ::ee27700(){ note_ctor("ee27700", this);} // tgen
+
+static void Test_ee27700()
+{
+ extern Class_Descriptor cd_ee27700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27700, buf);
+ ee27700 *dp, &lv = *(dp=new (buf) ee27700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee27700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee27700");
+ check_base_class_offset(lv, (cc700*)(dd7700*), ABISELECT(16,12), "ee27700");
+ check_base_class_offset(lv, (dd7700*), 0, "ee27700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27700.e");
+ test_class_info(&lv, &cd_ee27700);
+ dp->~ee27700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27700(Test_ee27700, "ee27700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27700C1Ev();
+extern void _ZN7ee27700D1Ev();
+Name_Map name_map_ee27700[] = {
+ NSPAIR(_ZN7ee27700C1Ev),
+ NSPAIR(_ZN7ee27700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd7700;
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static Base_Class bases_ee27700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee27700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN7ee277003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277003fooEv,_ZTv0_n16_N7ee277003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277003fooEv,_ZThn12_N7ee277003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN7ee277003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277003fooEv,_ZTv0_n16_N7ee277003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7700__7ee27700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700__7ee27700[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee27700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee27700[] = {
+ {&(_ZTV7ee27700[4]), 4,13},
+ {&(_tg__ZTV6dd7700__7ee27700[4]), 4,6},
+ {&(_tg__ZTV5cc700__6dd7700__7ee27700[5]), 5,7},
+ {&(_ZTV7ee27700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee27700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee27700[];
+extern VTBL_ENTRY _ZTV7ee27700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27700[];
+static VTBL_ENTRY alt_thunk_names261[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277003fooEv,_ZTv0_n16_N7ee277003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277003fooEv,_ZThn12_N7ee277003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27700 = { "ee27700", // class name
+ bases_ee27700, 4,
+ &(vtc_ee27700[0]), // expected_vtbl_contents
+ &(vtt_ee27700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names261,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37700 : virtual dd7700 {
+ int e;
+ virtual void foo(); // _ZN7ee377003fooEv
+ ~ee37700(); // tgen
+ ee37700(); // tgen
+};
+//SIG(1 ee37700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37700 ::foo(){vfunc_called(this, "_ZN7ee377003fooEv");}
+ee37700 ::~ee37700(){ note_dtor("ee37700", this);} // tgen
+ee37700 ::ee37700(){ note_ctor("ee37700", this);} // tgen
+
+static void Test_ee37700()
+{
+ extern Class_Descriptor cd_ee37700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37700, buf);
+ ee37700 *dp, &lv = *(dp=new (buf) ee37700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee37700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee37700");
+ check_base_class_offset(lv, (cc700*)(dd7700*), ABISELECT(32,16), "ee37700");
+ check_base_class_offset(lv, (dd7700*), ABISELECT(16,8), "ee37700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37700.e");
+ test_class_info(&lv, &cd_ee37700);
+ dp->~ee37700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37700(Test_ee37700, "ee37700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37700C1Ev();
+extern void _ZN7ee37700D1Ev();
+Name_Map name_map_ee37700[] = {
+ NSPAIR(_ZN7ee37700C1Ev),
+ NSPAIR(_ZN7ee37700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd7700;
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static Base_Class bases_ee37700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37700[];
+extern void _ZN7ee377003fooEv();
+extern void _ZN6dd77003barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377003fooEv,_ZTv0_n24_N7ee377003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377003fooEv,_ZThn8_N7ee377003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377003fooEv,_ZTv0_n16_N7ee377003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377003fooEv,_ZThn16_N7ee377003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37700[0]),
+ (VTBL_ENTRY)&_ZN7ee377003fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377003fooEv,_ZTv0_n24_N7ee377003fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377003fooEv,_ZTv0_n16_N7ee377003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7700__7ee37700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700__7ee37700[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee37700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee37700[] = {
+ {&(_ZTV7ee37700[5]), 5,21},
+ {&(_ZTV7ee37700[12]), 12,21},
+ {&(_ZTV7ee37700[19]), 19,21},
+ {&(_tg__ZTV6dd7700__7ee37700[4]), 4,6},
+ {&(_tg__ZTV5cc700__6dd7700__7ee37700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee37700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee37700[];
+extern VTBL_ENTRY _ZTV7ee37700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37700[];
+static VTBL_ENTRY alt_thunk_names262[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377003fooEv,_ZTv0_n16_N7ee377003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377003fooEv,_ZThn16_N7ee377003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377003fooEv,_ZTv0_n24_N7ee377003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377003fooEv,_ZThn8_N7ee377003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37700 = { "ee37700", // class name
+ bases_ee37700, 4,
+ &(vtc_ee37700[0]), // expected_vtbl_contents
+ &(vtt_ee37700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37700),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names262,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47700 : dd7700 {
+ int e;
+ virtual void bar(); // _ZN7ee477003barEv
+ ~ee47700(); // tgen
+ ee47700(); // tgen
+};
+//SIG(1 ee47700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47700 ::bar(){vfunc_called(this, "_ZN7ee477003barEv");}
+ee47700 ::~ee47700(){ note_dtor("ee47700", this);} // tgen
+ee47700 ::ee47700(){ note_ctor("ee47700", this);} // tgen
+
+static void Test_ee47700()
+{
+ extern Class_Descriptor cd_ee47700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47700, buf);
+ ee47700 *dp, &lv = *(dp=new (buf) ee47700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee47700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee47700");
+ check_base_class_offset(lv, (cc700*)(dd7700*), ABISELECT(16,12), "ee47700");
+ check_base_class_offset(lv, (dd7700*), 0, "ee47700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47700.e");
+ test_class_info(&lv, &cd_ee47700);
+ dp->~ee47700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47700(Test_ee47700, "ee47700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47700C1Ev();
+extern void _ZN7ee47700D1Ev();
+Name_Map name_map_ee47700[] = {
+ NSPAIR(_ZN7ee47700C1Ev),
+ NSPAIR(_ZN7ee47700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd7700;
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static Base_Class bases_ee47700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee47700[];
+extern void _ZN7ee477003barEv();
+extern void _ZN6dd77003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477003barEv,_ZTv0_n20_N7ee477003barEv)();
+extern void ABISELECT(_ZThn16_N7ee477003barEv,_ZThn12_N7ee477003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47700[0]),
+ (VTBL_ENTRY)&_ZN7ee477003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477003barEv,_ZTv0_n20_N7ee477003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7700__7ee47700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700__7ee47700[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee47700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee47700[] = {
+ {&(_ZTV7ee47700[4]), 4,13},
+ {&(_tg__ZTV6dd7700__7ee47700[4]), 4,6},
+ {&(_tg__ZTV5cc700__6dd7700__7ee47700[5]), 5,7},
+ {&(_ZTV7ee47700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee47700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee47700[];
+extern VTBL_ENTRY _ZTV7ee47700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47700[];
+static VTBL_ENTRY alt_thunk_names263[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477003barEv,_ZTv0_n20_N7ee477003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477003barEv,_ZThn12_N7ee477003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47700 = { "ee47700", // class name
+ bases_ee47700, 4,
+ &(vtc_ee47700[0]), // expected_vtbl_contents
+ &(vtt_ee47700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names263,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57700 : virtual dd7700 {
+ int e;
+ virtual void bar(); // _ZN7ee577003barEv
+ ~ee57700(); // tgen
+ ee57700(); // tgen
+};
+//SIG(1 ee57700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57700 ::bar(){vfunc_called(this, "_ZN7ee577003barEv");}
+ee57700 ::~ee57700(){ note_dtor("ee57700", this);} // tgen
+ee57700 ::ee57700(){ note_ctor("ee57700", this);} // tgen
+
+static void Test_ee57700()
+{
+ extern Class_Descriptor cd_ee57700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57700, buf);
+ ee57700 *dp, &lv = *(dp=new (buf) ee57700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee57700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee57700");
+ check_base_class_offset(lv, (cc700*)(dd7700*), ABISELECT(32,16), "ee57700");
+ check_base_class_offset(lv, (dd7700*), ABISELECT(16,8), "ee57700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57700.e");
+ test_class_info(&lv, &cd_ee57700);
+ dp->~ee57700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57700(Test_ee57700, "ee57700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57700C1Ev();
+extern void _ZN7ee57700D1Ev();
+Name_Map name_map_ee57700[] = {
+ NSPAIR(_ZN7ee57700C1Ev),
+ NSPAIR(_ZN7ee57700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd7700;
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static Base_Class bases_ee57700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7700, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57700[];
+extern void _ZN7ee577003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577003barEv,_ZTv0_n20_N7ee577003barEv)();
+extern void ABISELECT(_ZThn16_N7ee577003barEv,_ZThn8_N7ee577003barEv)() __attribute__((weak));
+extern void _ZN6dd77003fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577003barEv,_ZTv0_n20_N7ee577003barEv)();
+extern void ABISELECT(_ZThn32_N7ee577003barEv,_ZThn16_N7ee577003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57700[0]),
+ (VTBL_ENTRY)&_ZN7ee577003barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577003barEv,_ZTv0_n20_N7ee577003barEv),
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577003barEv,_ZTv0_n20_N7ee577003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7700__7ee57700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700__7ee57700[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee57700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee57700[] = {
+ {&(_ZTV7ee57700[5]), 5,21},
+ {&(_ZTV7ee57700[12]), 12,21},
+ {&(_ZTV7ee57700[19]), 19,21},
+ {&(_tg__ZTV6dd7700__7ee57700[4]), 4,6},
+ {&(_tg__ZTV5cc700__6dd7700__7ee57700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee57700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee57700[];
+extern VTBL_ENTRY _ZTV7ee57700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57700[];
+static VTBL_ENTRY alt_thunk_names264[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577003barEv,_ZTv0_n20_N7ee577003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577003barEv,_ZThn16_N7ee577003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577003barEv,_ZThn8_N7ee577003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57700 = { "ee57700", // class name
+ bases_ee57700, 4,
+ &(vtc_ee57700[0]), // expected_vtbl_contents
+ &(vtt_ee57700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57700),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names264,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67700 : dd7700 {
+ int e;
+ virtual void foo(); // _ZN7ee677003fooEv
+ virtual void bar(); // _ZN7ee677003barEv
+ ~ee67700(); // tgen
+ ee67700(); // tgen
+};
+//SIG(1 ee67700) C1{ BC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67700 ::foo(){vfunc_called(this, "_ZN7ee677003fooEv");}
+void ee67700 ::bar(){vfunc_called(this, "_ZN7ee677003barEv");}
+ee67700 ::~ee67700(){ note_dtor("ee67700", this);} // tgen
+ee67700 ::ee67700(){ note_ctor("ee67700", this);} // tgen
+
+static void Test_ee67700()
+{
+ extern Class_Descriptor cd_ee67700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67700, buf);
+ ee67700 *dp, &lv = *(dp=new (buf) ee67700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(28,20), "ee67700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(28,20), "ee67700");
+ check_base_class_offset(lv, (cc700*)(dd7700*), ABISELECT(16,12), "ee67700");
+ check_base_class_offset(lv, (dd7700*), 0, "ee67700");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67700.e");
+ test_class_info(&lv, &cd_ee67700);
+ dp->~ee67700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67700(Test_ee67700, "ee67700", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67700C1Ev();
+extern void _ZN7ee67700D1Ev();
+Name_Map name_map_ee67700[] = {
+ NSPAIR(_ZN7ee67700C1Ev),
+ NSPAIR(_ZN7ee67700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd7700;
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static Base_Class bases_ee67700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(28,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7700, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI7ee67700[];
+extern void _ZN7ee677003barEv();
+extern void _ZN7ee677003fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677003fooEv,_ZTv0_n16_N7ee677003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677003fooEv,_ZThn12_N7ee677003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677003barEv,_ZTv0_n20_N7ee677003barEv)();
+extern void ABISELECT(_ZThn16_N7ee677003barEv,_ZThn12_N7ee677003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67700[0]),
+ (VTBL_ENTRY)&_ZN7ee677003barEv,
+ (VTBL_ENTRY)&_ZN7ee677003fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677003fooEv,_ZTv0_n16_N7ee677003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677003barEv,_ZTv0_n20_N7ee677003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7700__7ee67700[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700__7ee67700[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee67700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee67700[] = {
+ {&(_ZTV7ee67700[4]), 4,13},
+ {&(_tg__ZTV6dd7700__7ee67700[4]), 4,6},
+ {&(_tg__ZTV5cc700__6dd7700__7ee67700[5]), 5,7},
+ {&(_ZTV7ee67700[11]), 11,13},
+ {&(_tg__ZTV5cc700__7ee67700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee67700[];
+extern VTBL_ENTRY _ZTV7ee67700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67700[];
+static VTBL_ENTRY alt_thunk_names265[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn12_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn12_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677003barEv,_ZTv0_n20_N7ee677003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677003barEv,_ZThn12_N7ee677003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677003fooEv,_ZTv0_n16_N7ee677003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677003fooEv,_ZThn12_N7ee677003fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67700 = { "ee67700", // class name
+ bases_ee67700, 4,
+ &(vtc_ee67700[0]), // expected_vtbl_contents
+ &(vtt_ee67700[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67700),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67700),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67700),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names265,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77700 : virtual dd7700 {
+ int e;
+ virtual void foo(); // _ZN7ee777003fooEv
+ virtual void bar(); // _ZN7ee777003barEv
+ ~ee77700(); // tgen
+ ee77700(); // tgen
+};
+//SIG(1 ee77700) C1{ VBC2{ VBC3{ VBC4{ BC5{ Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77700 ::foo(){vfunc_called(this, "_ZN7ee777003fooEv");}
+void ee77700 ::bar(){vfunc_called(this, "_ZN7ee777003barEv");}
+ee77700 ::~ee77700(){ note_dtor("ee77700", this);} // tgen
+ee77700 ::ee77700(){ note_ctor("ee77700", this);} // tgen
+
+static void Test_ee77700()
+{
+ extern Class_Descriptor cd_ee77700;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77700, buf);
+ ee77700 *dp, &lv = *(dp=new (buf) ee77700());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77700)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77700)");
+ check_base_class_offset(lv, (aa0*)(bb00*), ABISELECT(44,24), "ee77700");
+ check_base_class_offset(lv, (bb00*)(cc700*), ABISELECT(44,24), "ee77700");
+ check_base_class_offset(lv, (cc700*)(dd7700*), ABISELECT(32,16), "ee77700");
+ check_base_class_offset(lv, (dd7700*), ABISELECT(16,8), "ee77700");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77700.e");
+ test_class_info(&lv, &cd_ee77700);
+ dp->~ee77700();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77700(Test_ee77700, "ee77700", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77700C1Ev();
+extern void _ZN7ee77700D1Ev();
+Name_Map name_map_ee77700[] = {
+ NSPAIR(_ZN7ee77700C1Ev),
+ NSPAIR(_ZN7ee77700D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb00;
+extern VTBL_ENTRY _ZTI4bb00[];
+extern Class_Descriptor cd_cc700;
+extern VTBL_ENTRY _ZTI5cc700[];
+extern VTBL_ENTRY _ZTV5cc700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc700[];
+extern Class_Descriptor cd_dd7700;
+extern VTBL_ENTRY _ZTI6dd7700[];
+extern VTBL_ENTRY _ZTV6dd7700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7700[];
+static Base_Class bases_ee77700[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb00, ABISELECT(44,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ -1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc700, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7700, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77700[];
+extern void _ZN7ee777003fooEv();
+extern void _ZN7ee777003barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777003barEv,_ZTv0_n20_N7ee777003barEv)();
+extern void ABISELECT(_ZThn16_N7ee777003barEv,_ZThn8_N7ee777003barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777003fooEv,_ZTv0_n24_N7ee777003fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777003fooEv,_ZThn8_N7ee777003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777003fooEv,_ZTv0_n16_N7ee777003fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777003fooEv,_ZThn16_N7ee777003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777003barEv,_ZTv0_n20_N7ee777003barEv)();
+extern void ABISELECT(_ZThn32_N7ee777003barEv,_ZThn16_N7ee777003barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77700[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77700[0]),
+ (VTBL_ENTRY)&_ZN7ee777003fooEv,
+ (VTBL_ENTRY)&_ZN7ee777003barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777003barEv,_ZTv0_n20_N7ee777003barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777003fooEv,_ZTv0_n24_N7ee777003fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777003fooEv,_ZTv0_n16_N7ee777003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777003barEv,_ZTv0_n20_N7ee777003barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77700[];
+extern void _ZN6dd77003barEv();
+extern void _ZN6dd77003fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7700__7ee77700[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&_ZN6dd77003barEv,
+ (VTBL_ENTRY)&_ZN6dd77003fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv)();
+extern void ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc700__6dd7700__7ee77700[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7700[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv),
+};
+extern void _ZN5cc7003fooEv();
+extern void _ZN5cc7003barEv();
+static VTBL_ENTRY _tg__ZTV5cc700__7ee77700[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc700[0]),
+ (VTBL_ENTRY)&_ZN5cc7003fooEv,
+ (VTBL_ENTRY)&_ZN5cc7003barEv,
+};
+static VTT_ENTRY vtt_ee77700[] = {
+ {&(_ZTV7ee77700[5]), 5,22},
+ {&(_ZTV7ee77700[13]), 13,22},
+ {&(_ZTV7ee77700[20]), 20,22},
+ {&(_tg__ZTV6dd7700__7ee77700[4]), 4,6},
+ {&(_tg__ZTV5cc700__6dd7700__7ee77700[5]), 5,7},
+ {&(_tg__ZTV5cc700__7ee77700[3]), 3,5},
+};
+extern VTBL_ENTRY _ZTI7ee77700[];
+extern VTBL_ENTRY _ZTV7ee77700[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77700[];
+static VTBL_ENTRY alt_thunk_names266[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77003barEv,_ZTv0_n20_N6dd77003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003barEv,_ZThn8_N6dd77003barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77003fooEv,_ZTv0_n16_N6dd77003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77003fooEv,_ZThn8_N6dd77003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777003fooEv,_ZTv0_n16_N7ee777003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777003fooEv,_ZThn16_N7ee777003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777003fooEv,_ZTv0_n24_N7ee777003fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777003fooEv,_ZThn8_N7ee777003fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777003barEv,_ZTv0_n20_N7ee777003barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777003barEv,_ZThn16_N7ee777003barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777003barEv,_ZThn8_N7ee777003barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77700 = { "ee77700", // class name
+ bases_ee77700, 4,
+ &(vtc_ee77700[0]), // expected_vtbl_contents
+ &(vtt_ee77700[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77700),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77700),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77700),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names266,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb01 : aa1 {
+ int b;
+ ~bb01(); // tgen
+ bb01(); // tgen
+};
+//SIG(-1 bb01) C1{ BC2{ v1 Fi} Fi}
+
+
+bb01 ::~bb01(){ note_dtor("bb01", this);} // tgen
+bb01 ::bb01(){ note_ctor("bb01", this);} // tgen
+
+static void Test_bb01()
+{
+ extern Class_Descriptor cd_bb01;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb01, buf);
+ bb01 *dp, &lv = *(dp=new (buf) bb01());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb01)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb01)");
+ check_base_class_offset(lv, (aa1*), 0, "bb01");
+ check_field_offset(lv, b, ABISELECT(12,8), "bb01.b");
+ test_class_info(&lv, &cd_bb01);
+ dp->~bb01();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb01(Test_bb01, "bb01", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb01C1Ev();
+extern void _ZN4bb01D1Ev();
+Name_Map name_map_bb01[] = {
+ NSPAIR(_ZN4bb01C1Ev),
+ NSPAIR(_ZN4bb01D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+static Base_Class bases_bb01[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb01[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_bb01[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb01[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+Class_Descriptor cd_bb01 = { "bb01", // class name
+ bases_bb01, 1,
+ &(vtc_bb01[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb01),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV4bb01),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc001 : bb01 {
+ int c;
+ ~cc001(); // tgen
+ cc001(); // tgen
+};
+//SIG(-1 cc001) C1{ BC2{ BC3{ v1 Fi} Fi} Fi}
+
+
+cc001 ::~cc001(){ note_dtor("cc001", this);} // tgen
+cc001 ::cc001(){ note_ctor("cc001", this);} // tgen
+
+static void Test_cc001()
+{
+ extern Class_Descriptor cd_cc001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc001, buf);
+ cc001 *dp, &lv = *(dp=new (buf) cc001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc001)");
+ check_base_class_offset(lv, (aa1*)(bb01*), 0, "cc001");
+ check_base_class_offset(lv, (bb01*), 0, "cc001");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc001.c");
+ test_class_info(&lv, &cd_cc001);
+ dp->~cc001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc001(Test_cc001, "cc001", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc001C1Ev();
+extern void _ZN5cc001D1Ev();
+Name_Map name_map_cc001[] = {
+ NSPAIR(_ZN5cc001C1Ev),
+ NSPAIR(_ZN5cc001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+static Base_Class bases_cc001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc001[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_cc001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+Class_Descriptor cd_cc001 = { "cc001", // class name
+ bases_cc001, 2,
+ &(vtc_cc001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc001),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0001 : cc001 {
+ int d;
+ ~dd0001(); // tgen
+ dd0001(); // tgen
+};
+//SIG(-1 dd0001) C1{ BC2{ BC3{ BC4{ v1 Fi} Fi} Fi} Fi}
+
+
+dd0001 ::~dd0001(){ note_dtor("dd0001", this);} // tgen
+dd0001 ::dd0001(){ note_ctor("dd0001", this);} // tgen
+
+static void Test_dd0001()
+{
+ extern Class_Descriptor cd_dd0001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0001, buf);
+ dd0001 *dp, &lv = *(dp=new (buf) dd0001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), 0, "dd0001");
+ check_base_class_offset(lv, (bb01*)(cc001*), 0, "dd0001");
+ check_base_class_offset(lv, (cc001*), 0, "dd0001");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0001.d");
+ test_class_info(&lv, &cd_dd0001);
+ dp->~dd0001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0001(Test_dd0001, "dd0001", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0001C1Ev();
+extern void _ZN6dd0001D1Ev();
+Name_Map name_map_dd0001[] = {
+ NSPAIR(_ZN6dd0001C1Ev),
+ NSPAIR(_ZN6dd0001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+static Base_Class bases_dd0001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd0001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+Class_Descriptor cd_dd0001 = { "dd0001", // class name
+ bases_dd0001, 3,
+ &(vtc_dd0001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0001),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00001 : dd0001 {
+ int e;
+ ~ee00001(); // tgen
+ ee00001(); // tgen
+};
+//SIG(1 ee00001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} Fi}
+
+
+ee00001 ::~ee00001(){ note_dtor("ee00001", this);} // tgen
+ee00001 ::ee00001(){ note_ctor("ee00001", this);} // tgen
+
+static void Test_ee00001()
+{
+ extern Class_Descriptor cd_ee00001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00001, buf);
+ ee00001 *dp, &lv = *(dp=new (buf) ee00001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd0001*), 0, "ee00001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd0001*), 0, "ee00001");
+ check_base_class_offset(lv, (cc001*)(dd0001*), 0, "ee00001");
+ check_base_class_offset(lv, (dd0001*), 0, "ee00001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00001.e");
+ test_class_info(&lv, &cd_ee00001);
+ dp->~ee00001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00001(Test_ee00001, "ee00001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00001C1Ev();
+extern void _ZN7ee00001D1Ev();
+Name_Map name_map_ee00001[] = {
+ NSPAIR(_ZN7ee00001C1Ev),
+ NSPAIR(_ZN7ee00001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd0001;
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+static Base_Class bases_ee00001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00001[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee00001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00001[];
+extern VTBL_ENTRY _ZTV7ee00001[];
+Class_Descriptor cd_ee00001 = { "ee00001", // class name
+ bases_ee00001, 4,
+ &(vtc_ee00001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00001),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10001 : virtual dd0001 {
+ int e;
+ ~ee10001(); // tgen
+ ee10001(); // tgen
+};
+//SIG(1 ee10001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} Fi}
+
+
+ee10001 ::~ee10001(){ note_dtor("ee10001", this);} // tgen
+ee10001 ::ee10001(){ note_ctor("ee10001", this);} // tgen
+
+static void Test_ee10001()
+{
+ extern Class_Descriptor cd_ee10001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10001, buf);
+ ee10001 *dp, &lv = *(dp=new (buf) ee10001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd0001*), ABISELECT(16,8), "ee10001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd0001*), ABISELECT(16,8), "ee10001");
+ check_base_class_offset(lv, (cc001*)(dd0001*), ABISELECT(16,8), "ee10001");
+ check_base_class_offset(lv, (dd0001*), ABISELECT(16,8), "ee10001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10001.e");
+ test_class_info(&lv, &cd_ee10001);
+ dp->~ee10001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10001(Test_ee10001, "ee10001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10001C1Ev();
+extern void _ZN7ee10001D1Ev();
+Name_Map name_map_ee10001[] = {
+ NSPAIR(_ZN7ee10001C1Ev),
+ NSPAIR(_ZN7ee10001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd0001;
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+static Base_Class bases_ee10001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10001[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee10001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10001[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10001[];
+static VTT_ENTRY vtt_ee10001[] = {
+ {&(_ZTV7ee10001[3]), 3,7},
+ {&(_ZTV7ee10001[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10001[];
+extern VTBL_ENTRY _ZTV7ee10001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10001[];
+Class_Descriptor cd_ee10001 = { "ee10001", // class name
+ bases_ee10001, 4,
+ &(vtc_ee10001[0]), // expected_vtbl_contents
+ &(vtt_ee10001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10001),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20001 : dd0001 {
+ int e;
+ virtual void foo(); // _ZN7ee200013fooEv
+ ~ee20001(); // tgen
+ ee20001(); // tgen
+};
+//SIG(1 ee20001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee20001 ::foo(){vfunc_called(this, "_ZN7ee200013fooEv");}
+ee20001 ::~ee20001(){ note_dtor("ee20001", this);} // tgen
+ee20001 ::ee20001(){ note_ctor("ee20001", this);} // tgen
+
+static void Test_ee20001()
+{
+ extern Class_Descriptor cd_ee20001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20001, buf);
+ ee20001 *dp, &lv = *(dp=new (buf) ee20001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd0001*), 0, "ee20001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd0001*), 0, "ee20001");
+ check_base_class_offset(lv, (cc001*)(dd0001*), 0, "ee20001");
+ check_base_class_offset(lv, (dd0001*), 0, "ee20001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20001.e");
+ test_class_info(&lv, &cd_ee20001);
+ dp->~ee20001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20001(Test_ee20001, "ee20001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20001C1Ev();
+extern void _ZN7ee20001D1Ev();
+Name_Map name_map_ee20001[] = {
+ NSPAIR(_ZN7ee20001C1Ev),
+ NSPAIR(_ZN7ee20001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd0001;
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+static Base_Class bases_ee20001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20001[];
+extern void _ZN7ee200013fooEv();
+static VTBL_ENTRY vtc_ee20001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20001[0]),
+ (VTBL_ENTRY)&_ZN7ee200013fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20001[];
+extern VTBL_ENTRY _ZTV7ee20001[];
+Class_Descriptor cd_ee20001 = { "ee20001", // class name
+ bases_ee20001, 4,
+ &(vtc_ee20001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20001),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30001 : virtual dd0001 {
+ int e;
+ virtual void foo(); // _ZN7ee300013fooEv
+ ~ee30001(); // tgen
+ ee30001(); // tgen
+};
+//SIG(1 ee30001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee30001 ::foo(){vfunc_called(this, "_ZN7ee300013fooEv");}
+ee30001 ::~ee30001(){ note_dtor("ee30001", this);} // tgen
+ee30001 ::ee30001(){ note_ctor("ee30001", this);} // tgen
+
+static void Test_ee30001()
+{
+ extern Class_Descriptor cd_ee30001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30001, buf);
+ ee30001 *dp, &lv = *(dp=new (buf) ee30001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd0001*), ABISELECT(16,8), "ee30001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd0001*), ABISELECT(16,8), "ee30001");
+ check_base_class_offset(lv, (cc001*)(dd0001*), ABISELECT(16,8), "ee30001");
+ check_base_class_offset(lv, (dd0001*), ABISELECT(16,8), "ee30001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30001.e");
+ test_class_info(&lv, &cd_ee30001);
+ dp->~ee30001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30001(Test_ee30001, "ee30001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30001C1Ev();
+extern void _ZN7ee30001D1Ev();
+Name_Map name_map_ee30001[] = {
+ NSPAIR(_ZN7ee30001C1Ev),
+ NSPAIR(_ZN7ee30001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd0001;
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+static Base_Class bases_ee30001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30001[];
+extern void _ZN7ee300013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300013fooEv,_ZTv0_n12_N7ee300013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300013fooEv,_ZThn8_N7ee300013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30001[0]),
+ (VTBL_ENTRY)&_ZN7ee300013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300013fooEv,_ZTv0_n12_N7ee300013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30001[];
+static VTT_ENTRY vtt_ee30001[] = {
+ {&(_ZTV7ee30001[3]), 3,8},
+ {&(_ZTV7ee30001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30001[];
+extern VTBL_ENTRY _ZTV7ee30001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30001[];
+static VTBL_ENTRY alt_thunk_names267[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300013fooEv,_ZTv0_n12_N7ee300013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300013fooEv,_ZThn8_N7ee300013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30001 = { "ee30001", // class name
+ bases_ee30001, 4,
+ &(vtc_ee30001[0]), // expected_vtbl_contents
+ &(vtt_ee30001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names267,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40001 : dd0001 {
+ int e;
+ virtual void bar(); // _ZN7ee400013barEv
+ ~ee40001(); // tgen
+ ee40001(); // tgen
+};
+//SIG(1 ee40001) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee40001 ::bar(){vfunc_called(this, "_ZN7ee400013barEv");}
+ee40001 ::~ee40001(){ note_dtor("ee40001", this);} // tgen
+ee40001 ::ee40001(){ note_ctor("ee40001", this);} // tgen
+
+static void Test_ee40001()
+{
+ extern Class_Descriptor cd_ee40001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40001, buf);
+ ee40001 *dp, &lv = *(dp=new (buf) ee40001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd0001*), 0, "ee40001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd0001*), 0, "ee40001");
+ check_base_class_offset(lv, (cc001*)(dd0001*), 0, "ee40001");
+ check_base_class_offset(lv, (dd0001*), 0, "ee40001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40001.e");
+ test_class_info(&lv, &cd_ee40001);
+ dp->~ee40001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40001(Test_ee40001, "ee40001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40001C1Ev();
+extern void _ZN7ee40001D1Ev();
+Name_Map name_map_ee40001[] = {
+ NSPAIR(_ZN7ee40001C1Ev),
+ NSPAIR(_ZN7ee40001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd0001;
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+static Base_Class bases_ee40001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40001[];
+extern void _ZN3aa13fooEv();
+extern void _ZN7ee400013barEv();
+static VTBL_ENTRY vtc_ee40001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN7ee400013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40001[];
+extern VTBL_ENTRY _ZTV7ee40001[];
+Class_Descriptor cd_ee40001 = { "ee40001", // class name
+ bases_ee40001, 4,
+ &(vtc_ee40001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50001 : virtual dd0001 {
+ int e;
+ virtual void bar(); // _ZN7ee500013barEv
+ ~ee50001(); // tgen
+ ee50001(); // tgen
+};
+//SIG(1 ee50001) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee50001 ::bar(){vfunc_called(this, "_ZN7ee500013barEv");}
+ee50001 ::~ee50001(){ note_dtor("ee50001", this);} // tgen
+ee50001 ::ee50001(){ note_ctor("ee50001", this);} // tgen
+
+static void Test_ee50001()
+{
+ extern Class_Descriptor cd_ee50001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50001, buf);
+ ee50001 *dp, &lv = *(dp=new (buf) ee50001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd0001*), ABISELECT(16,8), "ee50001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd0001*), ABISELECT(16,8), "ee50001");
+ check_base_class_offset(lv, (cc001*)(dd0001*), ABISELECT(16,8), "ee50001");
+ check_base_class_offset(lv, (dd0001*), ABISELECT(16,8), "ee50001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50001.e");
+ test_class_info(&lv, &cd_ee50001);
+ dp->~ee50001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50001(Test_ee50001, "ee50001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50001C1Ev();
+extern void _ZN7ee50001D1Ev();
+Name_Map name_map_ee50001[] = {
+ NSPAIR(_ZN7ee50001C1Ev),
+ NSPAIR(_ZN7ee50001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd0001;
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+static Base_Class bases_ee50001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50001[];
+extern void _ZN7ee500013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee50001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50001[0]),
+ (VTBL_ENTRY)&_ZN7ee500013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50001[];
+static VTT_ENTRY vtt_ee50001[] = {
+ {&(_ZTV7ee50001[3]), 3,8},
+ {&(_ZTV7ee50001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50001[];
+extern VTBL_ENTRY _ZTV7ee50001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50001[];
+Class_Descriptor cd_ee50001 = { "ee50001", // class name
+ bases_ee50001, 4,
+ &(vtc_ee50001[0]), // expected_vtbl_contents
+ &(vtt_ee50001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60001 : dd0001 {
+ int e;
+ virtual void foo(); // _ZN7ee600013fooEv
+ virtual void bar(); // _ZN7ee600013barEv
+ ~ee60001(); // tgen
+ ee60001(); // tgen
+};
+//SIG(1 ee60001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60001 ::foo(){vfunc_called(this, "_ZN7ee600013fooEv");}
+void ee60001 ::bar(){vfunc_called(this, "_ZN7ee600013barEv");}
+ee60001 ::~ee60001(){ note_dtor("ee60001", this);} // tgen
+ee60001 ::ee60001(){ note_ctor("ee60001", this);} // tgen
+
+static void Test_ee60001()
+{
+ extern Class_Descriptor cd_ee60001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60001, buf);
+ ee60001 *dp, &lv = *(dp=new (buf) ee60001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd0001*), 0, "ee60001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd0001*), 0, "ee60001");
+ check_base_class_offset(lv, (cc001*)(dd0001*), 0, "ee60001");
+ check_base_class_offset(lv, (dd0001*), 0, "ee60001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60001.e");
+ test_class_info(&lv, &cd_ee60001);
+ dp->~ee60001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60001(Test_ee60001, "ee60001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60001C1Ev();
+extern void _ZN7ee60001D1Ev();
+Name_Map name_map_ee60001[] = {
+ NSPAIR(_ZN7ee60001C1Ev),
+ NSPAIR(_ZN7ee60001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd0001;
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+static Base_Class bases_ee60001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60001[];
+extern void _ZN7ee600013fooEv();
+extern void _ZN7ee600013barEv();
+static VTBL_ENTRY vtc_ee60001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60001[0]),
+ (VTBL_ENTRY)&_ZN7ee600013fooEv,
+ (VTBL_ENTRY)&_ZN7ee600013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60001[];
+extern VTBL_ENTRY _ZTV7ee60001[];
+Class_Descriptor cd_ee60001 = { "ee60001", // class name
+ bases_ee60001, 4,
+ &(vtc_ee60001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70001 : virtual dd0001 {
+ int e;
+ virtual void foo(); // _ZN7ee700013fooEv
+ virtual void bar(); // _ZN7ee700013barEv
+ ~ee70001(); // tgen
+ ee70001(); // tgen
+};
+//SIG(1 ee70001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70001 ::foo(){vfunc_called(this, "_ZN7ee700013fooEv");}
+void ee70001 ::bar(){vfunc_called(this, "_ZN7ee700013barEv");}
+ee70001 ::~ee70001(){ note_dtor("ee70001", this);} // tgen
+ee70001 ::ee70001(){ note_ctor("ee70001", this);} // tgen
+
+static void Test_ee70001()
+{
+ extern Class_Descriptor cd_ee70001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70001, buf);
+ ee70001 *dp, &lv = *(dp=new (buf) ee70001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd0001*), ABISELECT(16,8), "ee70001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd0001*), ABISELECT(16,8), "ee70001");
+ check_base_class_offset(lv, (cc001*)(dd0001*), ABISELECT(16,8), "ee70001");
+ check_base_class_offset(lv, (dd0001*), ABISELECT(16,8), "ee70001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70001.e");
+ test_class_info(&lv, &cd_ee70001);
+ dp->~ee70001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70001(Test_ee70001, "ee70001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70001C1Ev();
+extern void _ZN7ee70001D1Ev();
+Name_Map name_map_ee70001[] = {
+ NSPAIR(_ZN7ee70001C1Ev),
+ NSPAIR(_ZN7ee70001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd0001;
+extern VTBL_ENTRY _ZTI6dd0001[];
+extern VTBL_ENTRY _ZTV6dd0001[];
+static Base_Class bases_ee70001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70001[];
+extern void _ZN7ee700013fooEv();
+extern void _ZN7ee700013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee700013fooEv,_ZTv0_n12_N7ee700013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700013fooEv,_ZThn8_N7ee700013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70001[0]),
+ (VTBL_ENTRY)&_ZN7ee700013fooEv,
+ (VTBL_ENTRY)&_ZN7ee700013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700013fooEv,_ZTv0_n12_N7ee700013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70001[];
+static VTT_ENTRY vtt_ee70001[] = {
+ {&(_ZTV7ee70001[3]), 3,9},
+ {&(_ZTV7ee70001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70001[];
+extern VTBL_ENTRY _ZTV7ee70001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70001[];
+static VTBL_ENTRY alt_thunk_names268[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700013fooEv,_ZTv0_n12_N7ee700013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700013fooEv,_ZThn8_N7ee700013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70001 = { "ee70001", // class name
+ bases_ee70001, 4,
+ &(vtc_ee70001[0]), // expected_vtbl_contents
+ &(vtt_ee70001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names268,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1001 : virtual cc001 {
+ int d;
+ ~dd1001(); // tgen
+ dd1001(); // tgen
+};
+//SIG(-1 dd1001) C1{ VBC2{ BC3{ BC4{ v1 Fi} Fi} Fi} Fi}
+
+
+dd1001 ::~dd1001(){ note_dtor("dd1001", this);} // tgen
+dd1001 ::dd1001(){ note_ctor("dd1001", this);} // tgen
+
+static void Test_dd1001()
+{
+ extern Class_Descriptor cd_dd1001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1001, buf);
+ dd1001 *dp, &lv = *(dp=new (buf) dd1001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,8), "dd1001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,8), "dd1001");
+ check_base_class_offset(lv, (cc001*), ABISELECT(16,8), "dd1001");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1001.d");
+ test_class_info(&lv, &cd_dd1001);
+ dp->~dd1001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1001(Test_dd1001, "dd1001", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1001C1Ev();
+extern void _ZN6dd1001D1Ev();
+Name_Map name_map_dd1001[] = {
+ NSPAIR(_ZN6dd1001C1Ev),
+ NSPAIR(_ZN6dd1001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+static Base_Class bases_dd1001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd1001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1001[];
+static VTT_ENTRY vtt_dd1001[] = {
+ {&(_ZTV6dd1001[3]), 3,7},
+ {&(_ZTV6dd1001[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+Class_Descriptor cd_dd1001 = { "dd1001", // class name
+ bases_dd1001, 3,
+ &(vtc_dd1001[0]), // expected_vtbl_contents
+ &(vtt_dd1001[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1001),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1001),2, //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 ee01001 : dd1001 {
+ int e;
+ ~ee01001(); // tgen
+ ee01001(); // tgen
+};
+//SIG(1 ee01001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} Fi}
+
+
+ee01001 ::~ee01001(){ note_dtor("ee01001", this);} // tgen
+ee01001 ::ee01001(){ note_ctor("ee01001", this);} // tgen
+
+static void Test_ee01001()
+{
+ extern Class_Descriptor cd_ee01001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01001, buf);
+ ee01001 *dp, &lv = *(dp=new (buf) ee01001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee01001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee01001");
+ check_base_class_offset(lv, (cc001*)(dd1001*), ABISELECT(16,12), "ee01001");
+ check_base_class_offset(lv, (dd1001*), 0, "ee01001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01001.e");
+ test_class_info(&lv, &cd_ee01001);
+ dp->~ee01001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01001(Test_ee01001, "ee01001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01001C1Ev();
+extern void _ZN7ee01001D1Ev();
+Name_Map name_map_ee01001[] = {
+ NSPAIR(_ZN7ee01001C1Ev),
+ NSPAIR(_ZN7ee01001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd1001;
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+static Base_Class bases_ee01001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01001[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee01001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01001[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01001[];
+static VTBL_ENTRY _tg__ZTV6dd1001__7ee01001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd1001__7ee01001[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01001[] = {
+ {&(_ZTV7ee01001[3]), 3,7},
+ {&(_tg__ZTV6dd1001__7ee01001[3]), 3,3},
+ {&(_tg__ZTV3aa14bb015cc001__6dd1001__7ee01001[3]), 3,4},
+ {&(_ZTV7ee01001[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01001[];
+extern VTBL_ENTRY _ZTV7ee01001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01001[];
+Class_Descriptor cd_ee01001 = { "ee01001", // class name
+ bases_ee01001, 4,
+ &(vtc_ee01001[0]), // expected_vtbl_contents
+ &(vtt_ee01001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01001),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11001 : virtual dd1001 {
+ int e;
+ ~ee11001(); // tgen
+ ee11001(); // tgen
+};
+//SIG(1 ee11001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} Fi}
+
+
+ee11001 ::~ee11001(){ note_dtor("ee11001", this);} // tgen
+ee11001 ::ee11001(){ note_ctor("ee11001", this);} // tgen
+
+static void Test_ee11001()
+{
+ extern Class_Descriptor cd_ee11001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11001, buf);
+ ee11001 *dp, &lv = *(dp=new (buf) ee11001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee11001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee11001");
+ check_base_class_offset(lv, (cc001*)(dd1001*), ABISELECT(32,16), "ee11001");
+ check_base_class_offset(lv, (dd1001*), ABISELECT(16,8), "ee11001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11001.e");
+ test_class_info(&lv, &cd_ee11001);
+ dp->~ee11001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11001(Test_ee11001, "ee11001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11001C1Ev();
+extern void _ZN7ee11001D1Ev();
+Name_Map name_map_ee11001[] = {
+ NSPAIR(_ZN7ee11001C1Ev),
+ NSPAIR(_ZN7ee11001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd1001;
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+static Base_Class bases_ee11001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11001[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee11001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11001[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11001[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11001[];
+static VTBL_ENTRY _tg__ZTV6dd1001__7ee11001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd1001__7ee11001[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11001[] = {
+ {&(_ZTV7ee11001[4]), 4,11},
+ {&(_ZTV7ee11001[7]), 7,11},
+ {&(_ZTV7ee11001[10]), 10,11},
+ {&(_tg__ZTV6dd1001__7ee11001[3]), 3,3},
+ {&(_tg__ZTV3aa14bb015cc001__6dd1001__7ee11001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11001[];
+extern VTBL_ENTRY _ZTV7ee11001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11001[];
+Class_Descriptor cd_ee11001 = { "ee11001", // class name
+ bases_ee11001, 4,
+ &(vtc_ee11001[0]), // expected_vtbl_contents
+ &(vtt_ee11001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11001),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21001 : dd1001 {
+ int e;
+ virtual void foo(); // _ZN7ee210013fooEv
+ ~ee21001(); // tgen
+ ee21001(); // tgen
+};
+//SIG(1 ee21001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee21001 ::foo(){vfunc_called(this, "_ZN7ee210013fooEv");}
+ee21001 ::~ee21001(){ note_dtor("ee21001", this);} // tgen
+ee21001 ::ee21001(){ note_ctor("ee21001", this);} // tgen
+
+static void Test_ee21001()
+{
+ extern Class_Descriptor cd_ee21001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21001, buf);
+ ee21001 *dp, &lv = *(dp=new (buf) ee21001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee21001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee21001");
+ check_base_class_offset(lv, (cc001*)(dd1001*), ABISELECT(16,12), "ee21001");
+ check_base_class_offset(lv, (dd1001*), 0, "ee21001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21001.e");
+ test_class_info(&lv, &cd_ee21001);
+ dp->~ee21001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21001(Test_ee21001, "ee21001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21001C1Ev();
+extern void _ZN7ee21001D1Ev();
+Name_Map name_map_ee21001[] = {
+ NSPAIR(_ZN7ee21001C1Ev),
+ NSPAIR(_ZN7ee21001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd1001;
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+static Base_Class bases_ee21001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21001[];
+extern void _ZN7ee210013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210013fooEv,_ZTv0_n12_N7ee210013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210013fooEv,_ZThn12_N7ee210013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21001[0]),
+ (VTBL_ENTRY)&_ZN7ee210013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210013fooEv,_ZTv0_n12_N7ee210013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21001[];
+static VTBL_ENTRY _tg__ZTV6dd1001__7ee21001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd1001__7ee21001[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21001[] = {
+ {&(_ZTV7ee21001[3]), 3,8},
+ {&(_tg__ZTV6dd1001__7ee21001[3]), 3,3},
+ {&(_tg__ZTV3aa14bb015cc001__6dd1001__7ee21001[3]), 3,4},
+ {&(_ZTV7ee21001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21001[];
+extern VTBL_ENTRY _ZTV7ee21001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21001[];
+static VTBL_ENTRY alt_thunk_names269[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210013fooEv,_ZTv0_n12_N7ee210013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210013fooEv,_ZThn12_N7ee210013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21001 = { "ee21001", // class name
+ bases_ee21001, 4,
+ &(vtc_ee21001[0]), // expected_vtbl_contents
+ &(vtt_ee21001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names269,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31001 : virtual dd1001 {
+ int e;
+ virtual void foo(); // _ZN7ee310013fooEv
+ ~ee31001(); // tgen
+ ee31001(); // tgen
+};
+//SIG(1 ee31001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee31001 ::foo(){vfunc_called(this, "_ZN7ee310013fooEv");}
+ee31001 ::~ee31001(){ note_dtor("ee31001", this);} // tgen
+ee31001 ::ee31001(){ note_ctor("ee31001", this);} // tgen
+
+static void Test_ee31001()
+{
+ extern Class_Descriptor cd_ee31001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31001, buf);
+ ee31001 *dp, &lv = *(dp=new (buf) ee31001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee31001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee31001");
+ check_base_class_offset(lv, (cc001*)(dd1001*), ABISELECT(32,16), "ee31001");
+ check_base_class_offset(lv, (dd1001*), ABISELECT(16,8), "ee31001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31001.e");
+ test_class_info(&lv, &cd_ee31001);
+ dp->~ee31001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31001(Test_ee31001, "ee31001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31001C1Ev();
+extern void _ZN7ee31001D1Ev();
+Name_Map name_map_ee31001[] = {
+ NSPAIR(_ZN7ee31001C1Ev),
+ NSPAIR(_ZN7ee31001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd1001;
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+static Base_Class bases_ee31001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31001[];
+extern void _ZN7ee310013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310013fooEv,_ZTv0_n12_N7ee310013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310013fooEv,_ZThn16_N7ee310013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31001[0]),
+ (VTBL_ENTRY)&_ZN7ee310013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31001[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310013fooEv,_ZTv0_n12_N7ee310013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31001[];
+static VTBL_ENTRY _tg__ZTV6dd1001__7ee31001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd1001__7ee31001[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31001[] = {
+ {&(_ZTV7ee31001[4]), 4,12},
+ {&(_ZTV7ee31001[8]), 8,12},
+ {&(_ZTV7ee31001[11]), 11,12},
+ {&(_tg__ZTV6dd1001__7ee31001[3]), 3,3},
+ {&(_tg__ZTV3aa14bb015cc001__6dd1001__7ee31001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31001[];
+extern VTBL_ENTRY _ZTV7ee31001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31001[];
+static VTBL_ENTRY alt_thunk_names270[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310013fooEv,_ZTv0_n12_N7ee310013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310013fooEv,_ZThn16_N7ee310013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31001 = { "ee31001", // class name
+ bases_ee31001, 4,
+ &(vtc_ee31001[0]), // expected_vtbl_contents
+ &(vtt_ee31001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31001),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names270,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41001 : dd1001 {
+ int e;
+ virtual void bar(); // _ZN7ee410013barEv
+ ~ee41001(); // tgen
+ ee41001(); // tgen
+};
+//SIG(1 ee41001) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee41001 ::bar(){vfunc_called(this, "_ZN7ee410013barEv");}
+ee41001 ::~ee41001(){ note_dtor("ee41001", this);} // tgen
+ee41001 ::ee41001(){ note_ctor("ee41001", this);} // tgen
+
+static void Test_ee41001()
+{
+ extern Class_Descriptor cd_ee41001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41001, buf);
+ ee41001 *dp, &lv = *(dp=new (buf) ee41001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee41001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee41001");
+ check_base_class_offset(lv, (cc001*)(dd1001*), ABISELECT(16,12), "ee41001");
+ check_base_class_offset(lv, (dd1001*), 0, "ee41001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41001.e");
+ test_class_info(&lv, &cd_ee41001);
+ dp->~ee41001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41001(Test_ee41001, "ee41001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41001C1Ev();
+extern void _ZN7ee41001D1Ev();
+Name_Map name_map_ee41001[] = {
+ NSPAIR(_ZN7ee41001C1Ev),
+ NSPAIR(_ZN7ee41001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd1001;
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+static Base_Class bases_ee41001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41001[];
+extern void _ZN7ee410013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee41001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41001[0]),
+ (VTBL_ENTRY)&_ZN7ee410013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41001[];
+static VTBL_ENTRY _tg__ZTV6dd1001__7ee41001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd1001__7ee41001[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41001[] = {
+ {&(_ZTV7ee41001[3]), 3,8},
+ {&(_tg__ZTV6dd1001__7ee41001[3]), 3,3},
+ {&(_tg__ZTV3aa14bb015cc001__6dd1001__7ee41001[3]), 3,4},
+ {&(_ZTV7ee41001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41001[];
+extern VTBL_ENTRY _ZTV7ee41001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41001[];
+Class_Descriptor cd_ee41001 = { "ee41001", // class name
+ bases_ee41001, 4,
+ &(vtc_ee41001[0]), // expected_vtbl_contents
+ &(vtt_ee41001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51001 : virtual dd1001 {
+ int e;
+ virtual void bar(); // _ZN7ee510013barEv
+ ~ee51001(); // tgen
+ ee51001(); // tgen
+};
+//SIG(1 ee51001) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee51001 ::bar(){vfunc_called(this, "_ZN7ee510013barEv");}
+ee51001 ::~ee51001(){ note_dtor("ee51001", this);} // tgen
+ee51001 ::ee51001(){ note_ctor("ee51001", this);} // tgen
+
+static void Test_ee51001()
+{
+ extern Class_Descriptor cd_ee51001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51001, buf);
+ ee51001 *dp, &lv = *(dp=new (buf) ee51001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee51001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee51001");
+ check_base_class_offset(lv, (cc001*)(dd1001*), ABISELECT(32,16), "ee51001");
+ check_base_class_offset(lv, (dd1001*), ABISELECT(16,8), "ee51001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51001.e");
+ test_class_info(&lv, &cd_ee51001);
+ dp->~ee51001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51001(Test_ee51001, "ee51001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51001C1Ev();
+extern void _ZN7ee51001D1Ev();
+Name_Map name_map_ee51001[] = {
+ NSPAIR(_ZN7ee51001C1Ev),
+ NSPAIR(_ZN7ee51001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd1001;
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+static Base_Class bases_ee51001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51001[];
+extern void _ZN7ee510013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee51001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51001[0]),
+ (VTBL_ENTRY)&_ZN7ee510013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51001[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51001[];
+static VTBL_ENTRY _tg__ZTV6dd1001__7ee51001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd1001__7ee51001[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51001[] = {
+ {&(_ZTV7ee51001[4]), 4,12},
+ {&(_ZTV7ee51001[8]), 8,12},
+ {&(_ZTV7ee51001[11]), 11,12},
+ {&(_tg__ZTV6dd1001__7ee51001[3]), 3,3},
+ {&(_tg__ZTV3aa14bb015cc001__6dd1001__7ee51001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51001[];
+extern VTBL_ENTRY _ZTV7ee51001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51001[];
+Class_Descriptor cd_ee51001 = { "ee51001", // class name
+ bases_ee51001, 4,
+ &(vtc_ee51001[0]), // expected_vtbl_contents
+ &(vtt_ee51001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51001),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61001 : dd1001 {
+ int e;
+ virtual void foo(); // _ZN7ee610013fooEv
+ virtual void bar(); // _ZN7ee610013barEv
+ ~ee61001(); // tgen
+ ee61001(); // tgen
+};
+//SIG(1 ee61001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61001 ::foo(){vfunc_called(this, "_ZN7ee610013fooEv");}
+void ee61001 ::bar(){vfunc_called(this, "_ZN7ee610013barEv");}
+ee61001 ::~ee61001(){ note_dtor("ee61001", this);} // tgen
+ee61001 ::ee61001(){ note_ctor("ee61001", this);} // tgen
+
+static void Test_ee61001()
+{
+ extern Class_Descriptor cd_ee61001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61001, buf);
+ ee61001 *dp, &lv = *(dp=new (buf) ee61001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee61001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee61001");
+ check_base_class_offset(lv, (cc001*)(dd1001*), ABISELECT(16,12), "ee61001");
+ check_base_class_offset(lv, (dd1001*), 0, "ee61001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61001.e");
+ test_class_info(&lv, &cd_ee61001);
+ dp->~ee61001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61001(Test_ee61001, "ee61001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61001C1Ev();
+extern void _ZN7ee61001D1Ev();
+Name_Map name_map_ee61001[] = {
+ NSPAIR(_ZN7ee61001C1Ev),
+ NSPAIR(_ZN7ee61001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd1001;
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+static Base_Class bases_ee61001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61001[];
+extern void _ZN7ee610013fooEv();
+extern void _ZN7ee610013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee610013fooEv,_ZTv0_n12_N7ee610013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610013fooEv,_ZThn12_N7ee610013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61001[0]),
+ (VTBL_ENTRY)&_ZN7ee610013fooEv,
+ (VTBL_ENTRY)&_ZN7ee610013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610013fooEv,_ZTv0_n12_N7ee610013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61001[];
+static VTBL_ENTRY _tg__ZTV6dd1001__7ee61001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd1001__7ee61001[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61001[] = {
+ {&(_ZTV7ee61001[3]), 3,9},
+ {&(_tg__ZTV6dd1001__7ee61001[3]), 3,3},
+ {&(_tg__ZTV3aa14bb015cc001__6dd1001__7ee61001[3]), 3,4},
+ {&(_ZTV7ee61001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61001[];
+extern VTBL_ENTRY _ZTV7ee61001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61001[];
+static VTBL_ENTRY alt_thunk_names271[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610013fooEv,_ZTv0_n12_N7ee610013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610013fooEv,_ZThn12_N7ee610013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61001 = { "ee61001", // class name
+ bases_ee61001, 4,
+ &(vtc_ee61001[0]), // expected_vtbl_contents
+ &(vtt_ee61001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names271,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71001 : virtual dd1001 {
+ int e;
+ virtual void foo(); // _ZN7ee710013fooEv
+ virtual void bar(); // _ZN7ee710013barEv
+ ~ee71001(); // tgen
+ ee71001(); // tgen
+};
+//SIG(1 ee71001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71001 ::foo(){vfunc_called(this, "_ZN7ee710013fooEv");}
+void ee71001 ::bar(){vfunc_called(this, "_ZN7ee710013barEv");}
+ee71001 ::~ee71001(){ note_dtor("ee71001", this);} // tgen
+ee71001 ::ee71001(){ note_ctor("ee71001", this);} // tgen
+
+static void Test_ee71001()
+{
+ extern Class_Descriptor cd_ee71001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71001, buf);
+ ee71001 *dp, &lv = *(dp=new (buf) ee71001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee71001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee71001");
+ check_base_class_offset(lv, (cc001*)(dd1001*), ABISELECT(32,16), "ee71001");
+ check_base_class_offset(lv, (dd1001*), ABISELECT(16,8), "ee71001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71001.e");
+ test_class_info(&lv, &cd_ee71001);
+ dp->~ee71001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71001(Test_ee71001, "ee71001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71001C1Ev();
+extern void _ZN7ee71001D1Ev();
+Name_Map name_map_ee71001[] = {
+ NSPAIR(_ZN7ee71001C1Ev),
+ NSPAIR(_ZN7ee71001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd1001;
+extern VTBL_ENTRY _ZTI6dd1001[];
+extern VTBL_ENTRY _ZTV6dd1001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1001[];
+static Base_Class bases_ee71001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1001, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71001[];
+extern void _ZN7ee710013fooEv();
+extern void _ZN7ee710013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee710013fooEv,_ZTv0_n12_N7ee710013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710013fooEv,_ZThn16_N7ee710013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71001[0]),
+ (VTBL_ENTRY)&_ZN7ee710013fooEv,
+ (VTBL_ENTRY)&_ZN7ee710013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71001[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710013fooEv,_ZTv0_n12_N7ee710013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71001[];
+static VTBL_ENTRY _tg__ZTV6dd1001__7ee71001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd1001__7ee71001[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71001[] = {
+ {&(_ZTV7ee71001[4]), 4,13},
+ {&(_ZTV7ee71001[9]), 9,13},
+ {&(_ZTV7ee71001[12]), 12,13},
+ {&(_tg__ZTV6dd1001__7ee71001[3]), 3,3},
+ {&(_tg__ZTV3aa14bb015cc001__6dd1001__7ee71001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71001[];
+extern VTBL_ENTRY _ZTV7ee71001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71001[];
+static VTBL_ENTRY alt_thunk_names272[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710013fooEv,_ZTv0_n12_N7ee710013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710013fooEv,_ZThn16_N7ee710013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71001 = { "ee71001", // class name
+ bases_ee71001, 4,
+ &(vtc_ee71001[0]), // expected_vtbl_contents
+ &(vtt_ee71001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71001),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names272,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2001 : cc001 {
+ int d;
+ virtual void foo(); // _ZN6dd20013fooEv
+ ~dd2001(); // tgen
+ dd2001(); // tgen
+};
+//SIG(-1 dd2001) C1{ BC2{ BC3{ BC4{ v1 Fi} Fi} Fi} v1 Fi}
+
+
+void dd2001 ::foo(){vfunc_called(this, "_ZN6dd20013fooEv");}
+dd2001 ::~dd2001(){ note_dtor("dd2001", this);} // tgen
+dd2001 ::dd2001(){ note_ctor("dd2001", this);} // tgen
+
+static void Test_dd2001()
+{
+ extern Class_Descriptor cd_dd2001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2001, buf);
+ dd2001 *dp, &lv = *(dp=new (buf) dd2001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), 0, "dd2001");
+ check_base_class_offset(lv, (bb01*)(cc001*), 0, "dd2001");
+ check_base_class_offset(lv, (cc001*), 0, "dd2001");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2001.d");
+ test_class_info(&lv, &cd_dd2001);
+ dp->~dd2001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2001(Test_dd2001, "dd2001", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2001C1Ev();
+extern void _ZN6dd2001D1Ev();
+Name_Map name_map_dd2001[] = {
+ NSPAIR(_ZN6dd2001C1Ev),
+ NSPAIR(_ZN6dd2001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+static Base_Class bases_dd2001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern void _ZN6dd20013fooEv();
+static VTBL_ENTRY vtc_dd2001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2001[0]),
+ (VTBL_ENTRY)&_ZN6dd20013fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+Class_Descriptor cd_dd2001 = { "dd2001", // class name
+ bases_dd2001, 3,
+ &(vtc_dd2001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2001),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02001 : dd2001 {
+ int e;
+ ~ee02001(); // tgen
+ ee02001(); // tgen
+};
+//SIG(1 ee02001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee02001 ::~ee02001(){ note_dtor("ee02001", this);} // tgen
+ee02001 ::ee02001(){ note_ctor("ee02001", this);} // tgen
+
+static void Test_ee02001()
+{
+ extern Class_Descriptor cd_ee02001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02001, buf);
+ ee02001 *dp, &lv = *(dp=new (buf) ee02001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd2001*), 0, "ee02001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd2001*), 0, "ee02001");
+ check_base_class_offset(lv, (cc001*)(dd2001*), 0, "ee02001");
+ check_base_class_offset(lv, (dd2001*), 0, "ee02001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02001.e");
+ test_class_info(&lv, &cd_ee02001);
+ dp->~ee02001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02001(Test_ee02001, "ee02001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02001C1Ev();
+extern void _ZN7ee02001D1Ev();
+Name_Map name_map_ee02001[] = {
+ NSPAIR(_ZN7ee02001C1Ev),
+ NSPAIR(_ZN7ee02001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd2001;
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+static Base_Class bases_ee02001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2001, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02001[];
+extern void _ZN6dd20013fooEv();
+static VTBL_ENTRY vtc_ee02001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02001[0]),
+ (VTBL_ENTRY)&_ZN6dd20013fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02001[];
+extern VTBL_ENTRY _ZTV7ee02001[];
+Class_Descriptor cd_ee02001 = { "ee02001", // class name
+ bases_ee02001, 4,
+ &(vtc_ee02001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02001),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12001 : virtual dd2001 {
+ int e;
+ ~ee12001(); // tgen
+ ee12001(); // tgen
+};
+//SIG(1 ee12001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee12001 ::~ee12001(){ note_dtor("ee12001", this);} // tgen
+ee12001 ::ee12001(){ note_ctor("ee12001", this);} // tgen
+
+static void Test_ee12001()
+{
+ extern Class_Descriptor cd_ee12001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12001, buf);
+ ee12001 *dp, &lv = *(dp=new (buf) ee12001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd2001*), ABISELECT(16,8), "ee12001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd2001*), ABISELECT(16,8), "ee12001");
+ check_base_class_offset(lv, (cc001*)(dd2001*), ABISELECT(16,8), "ee12001");
+ check_base_class_offset(lv, (dd2001*), ABISELECT(16,8), "ee12001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12001.e");
+ test_class_info(&lv, &cd_ee12001);
+ dp->~ee12001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12001(Test_ee12001, "ee12001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12001C1Ev();
+extern void _ZN7ee12001D1Ev();
+Name_Map name_map_ee12001[] = {
+ NSPAIR(_ZN7ee12001C1Ev),
+ NSPAIR(_ZN7ee12001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd2001;
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+static Base_Class bases_ee12001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2001, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12001[];
+extern void _ZN6dd20013fooEv();
+static VTBL_ENTRY vtc_ee12001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12001[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12001[0]),
+ (VTBL_ENTRY)&_ZN6dd20013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12001[];
+static VTT_ENTRY vtt_ee12001[] = {
+ {&(_ZTV7ee12001[3]), 3,7},
+ {&(_ZTV7ee12001[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12001[];
+extern VTBL_ENTRY _ZTV7ee12001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12001[];
+Class_Descriptor cd_ee12001 = { "ee12001", // class name
+ bases_ee12001, 4,
+ &(vtc_ee12001[0]), // expected_vtbl_contents
+ &(vtt_ee12001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12001),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22001 : dd2001 {
+ int e;
+ virtual void foo(); // _ZN7ee220013fooEv
+ ~ee22001(); // tgen
+ ee22001(); // tgen
+};
+//SIG(1 ee22001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22001 ::foo(){vfunc_called(this, "_ZN7ee220013fooEv");}
+ee22001 ::~ee22001(){ note_dtor("ee22001", this);} // tgen
+ee22001 ::ee22001(){ note_ctor("ee22001", this);} // tgen
+
+static void Test_ee22001()
+{
+ extern Class_Descriptor cd_ee22001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22001, buf);
+ ee22001 *dp, &lv = *(dp=new (buf) ee22001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd2001*), 0, "ee22001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd2001*), 0, "ee22001");
+ check_base_class_offset(lv, (cc001*)(dd2001*), 0, "ee22001");
+ check_base_class_offset(lv, (dd2001*), 0, "ee22001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22001.e");
+ test_class_info(&lv, &cd_ee22001);
+ dp->~ee22001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22001(Test_ee22001, "ee22001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22001C1Ev();
+extern void _ZN7ee22001D1Ev();
+Name_Map name_map_ee22001[] = {
+ NSPAIR(_ZN7ee22001C1Ev),
+ NSPAIR(_ZN7ee22001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd2001;
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+static Base_Class bases_ee22001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22001[];
+extern void _ZN7ee220013fooEv();
+static VTBL_ENTRY vtc_ee22001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22001[0]),
+ (VTBL_ENTRY)&_ZN7ee220013fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22001[];
+extern VTBL_ENTRY _ZTV7ee22001[];
+Class_Descriptor cd_ee22001 = { "ee22001", // class name
+ bases_ee22001, 4,
+ &(vtc_ee22001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22001),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32001 : virtual dd2001 {
+ int e;
+ virtual void foo(); // _ZN7ee320013fooEv
+ ~ee32001(); // tgen
+ ee32001(); // tgen
+};
+//SIG(1 ee32001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32001 ::foo(){vfunc_called(this, "_ZN7ee320013fooEv");}
+ee32001 ::~ee32001(){ note_dtor("ee32001", this);} // tgen
+ee32001 ::ee32001(){ note_ctor("ee32001", this);} // tgen
+
+static void Test_ee32001()
+{
+ extern Class_Descriptor cd_ee32001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32001, buf);
+ ee32001 *dp, &lv = *(dp=new (buf) ee32001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd2001*), ABISELECT(16,8), "ee32001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd2001*), ABISELECT(16,8), "ee32001");
+ check_base_class_offset(lv, (cc001*)(dd2001*), ABISELECT(16,8), "ee32001");
+ check_base_class_offset(lv, (dd2001*), ABISELECT(16,8), "ee32001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32001.e");
+ test_class_info(&lv, &cd_ee32001);
+ dp->~ee32001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32001(Test_ee32001, "ee32001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32001C1Ev();
+extern void _ZN7ee32001D1Ev();
+Name_Map name_map_ee32001[] = {
+ NSPAIR(_ZN7ee32001C1Ev),
+ NSPAIR(_ZN7ee32001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd2001;
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+static Base_Class bases_ee32001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32001[];
+extern void _ZN7ee320013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320013fooEv,_ZTv0_n12_N7ee320013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320013fooEv,_ZThn8_N7ee320013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32001[0]),
+ (VTBL_ENTRY)&_ZN7ee320013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320013fooEv,_ZTv0_n12_N7ee320013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32001[];
+static VTT_ENTRY vtt_ee32001[] = {
+ {&(_ZTV7ee32001[3]), 3,8},
+ {&(_ZTV7ee32001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32001[];
+extern VTBL_ENTRY _ZTV7ee32001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32001[];
+static VTBL_ENTRY alt_thunk_names273[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320013fooEv,_ZTv0_n12_N7ee320013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320013fooEv,_ZThn8_N7ee320013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32001 = { "ee32001", // class name
+ bases_ee32001, 4,
+ &(vtc_ee32001[0]), // expected_vtbl_contents
+ &(vtt_ee32001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names273,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42001 : dd2001 {
+ int e;
+ virtual void bar(); // _ZN7ee420013barEv
+ ~ee42001(); // tgen
+ ee42001(); // tgen
+};
+//SIG(1 ee42001) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42001 ::bar(){vfunc_called(this, "_ZN7ee420013barEv");}
+ee42001 ::~ee42001(){ note_dtor("ee42001", this);} // tgen
+ee42001 ::ee42001(){ note_ctor("ee42001", this);} // tgen
+
+static void Test_ee42001()
+{
+ extern Class_Descriptor cd_ee42001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42001, buf);
+ ee42001 *dp, &lv = *(dp=new (buf) ee42001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd2001*), 0, "ee42001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd2001*), 0, "ee42001");
+ check_base_class_offset(lv, (cc001*)(dd2001*), 0, "ee42001");
+ check_base_class_offset(lv, (dd2001*), 0, "ee42001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42001.e");
+ test_class_info(&lv, &cd_ee42001);
+ dp->~ee42001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42001(Test_ee42001, "ee42001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42001C1Ev();
+extern void _ZN7ee42001D1Ev();
+Name_Map name_map_ee42001[] = {
+ NSPAIR(_ZN7ee42001C1Ev),
+ NSPAIR(_ZN7ee42001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd2001;
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+static Base_Class bases_ee42001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42001[];
+extern void _ZN6dd20013fooEv();
+extern void _ZN7ee420013barEv();
+static VTBL_ENTRY vtc_ee42001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42001[0]),
+ (VTBL_ENTRY)&_ZN6dd20013fooEv,
+ (VTBL_ENTRY)&_ZN7ee420013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42001[];
+extern VTBL_ENTRY _ZTV7ee42001[];
+Class_Descriptor cd_ee42001 = { "ee42001", // class name
+ bases_ee42001, 4,
+ &(vtc_ee42001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52001 : virtual dd2001 {
+ int e;
+ virtual void bar(); // _ZN7ee520013barEv
+ ~ee52001(); // tgen
+ ee52001(); // tgen
+};
+//SIG(1 ee52001) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52001 ::bar(){vfunc_called(this, "_ZN7ee520013barEv");}
+ee52001 ::~ee52001(){ note_dtor("ee52001", this);} // tgen
+ee52001 ::ee52001(){ note_ctor("ee52001", this);} // tgen
+
+static void Test_ee52001()
+{
+ extern Class_Descriptor cd_ee52001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52001, buf);
+ ee52001 *dp, &lv = *(dp=new (buf) ee52001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd2001*), ABISELECT(16,8), "ee52001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd2001*), ABISELECT(16,8), "ee52001");
+ check_base_class_offset(lv, (cc001*)(dd2001*), ABISELECT(16,8), "ee52001");
+ check_base_class_offset(lv, (dd2001*), ABISELECT(16,8), "ee52001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52001.e");
+ test_class_info(&lv, &cd_ee52001);
+ dp->~ee52001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52001(Test_ee52001, "ee52001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52001C1Ev();
+extern void _ZN7ee52001D1Ev();
+Name_Map name_map_ee52001[] = {
+ NSPAIR(_ZN7ee52001C1Ev),
+ NSPAIR(_ZN7ee52001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd2001;
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+static Base_Class bases_ee52001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52001[];
+extern void _ZN7ee520013barEv();
+extern void _ZN6dd20013fooEv();
+static VTBL_ENTRY vtc_ee52001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52001[0]),
+ (VTBL_ENTRY)&_ZN7ee520013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52001[0]),
+ (VTBL_ENTRY)&_ZN6dd20013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52001[];
+static VTT_ENTRY vtt_ee52001[] = {
+ {&(_ZTV7ee52001[3]), 3,8},
+ {&(_ZTV7ee52001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52001[];
+extern VTBL_ENTRY _ZTV7ee52001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52001[];
+Class_Descriptor cd_ee52001 = { "ee52001", // class name
+ bases_ee52001, 4,
+ &(vtc_ee52001[0]), // expected_vtbl_contents
+ &(vtt_ee52001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62001 : dd2001 {
+ int e;
+ virtual void foo(); // _ZN7ee620013fooEv
+ virtual void bar(); // _ZN7ee620013barEv
+ ~ee62001(); // tgen
+ ee62001(); // tgen
+};
+//SIG(1 ee62001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62001 ::foo(){vfunc_called(this, "_ZN7ee620013fooEv");}
+void ee62001 ::bar(){vfunc_called(this, "_ZN7ee620013barEv");}
+ee62001 ::~ee62001(){ note_dtor("ee62001", this);} // tgen
+ee62001 ::ee62001(){ note_ctor("ee62001", this);} // tgen
+
+static void Test_ee62001()
+{
+ extern Class_Descriptor cd_ee62001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62001, buf);
+ ee62001 *dp, &lv = *(dp=new (buf) ee62001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd2001*), 0, "ee62001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd2001*), 0, "ee62001");
+ check_base_class_offset(lv, (cc001*)(dd2001*), 0, "ee62001");
+ check_base_class_offset(lv, (dd2001*), 0, "ee62001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62001.e");
+ test_class_info(&lv, &cd_ee62001);
+ dp->~ee62001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62001(Test_ee62001, "ee62001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62001C1Ev();
+extern void _ZN7ee62001D1Ev();
+Name_Map name_map_ee62001[] = {
+ NSPAIR(_ZN7ee62001C1Ev),
+ NSPAIR(_ZN7ee62001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd2001;
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+static Base_Class bases_ee62001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62001[];
+extern void _ZN7ee620013fooEv();
+extern void _ZN7ee620013barEv();
+static VTBL_ENTRY vtc_ee62001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62001[0]),
+ (VTBL_ENTRY)&_ZN7ee620013fooEv,
+ (VTBL_ENTRY)&_ZN7ee620013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62001[];
+extern VTBL_ENTRY _ZTV7ee62001[];
+Class_Descriptor cd_ee62001 = { "ee62001", // class name
+ bases_ee62001, 4,
+ &(vtc_ee62001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72001 : virtual dd2001 {
+ int e;
+ virtual void foo(); // _ZN7ee720013fooEv
+ virtual void bar(); // _ZN7ee720013barEv
+ ~ee72001(); // tgen
+ ee72001(); // tgen
+};
+//SIG(1 ee72001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72001 ::foo(){vfunc_called(this, "_ZN7ee720013fooEv");}
+void ee72001 ::bar(){vfunc_called(this, "_ZN7ee720013barEv");}
+ee72001 ::~ee72001(){ note_dtor("ee72001", this);} // tgen
+ee72001 ::ee72001(){ note_ctor("ee72001", this);} // tgen
+
+static void Test_ee72001()
+{
+ extern Class_Descriptor cd_ee72001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72001, buf);
+ ee72001 *dp, &lv = *(dp=new (buf) ee72001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd2001*), ABISELECT(16,8), "ee72001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd2001*), ABISELECT(16,8), "ee72001");
+ check_base_class_offset(lv, (cc001*)(dd2001*), ABISELECT(16,8), "ee72001");
+ check_base_class_offset(lv, (dd2001*), ABISELECT(16,8), "ee72001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72001.e");
+ test_class_info(&lv, &cd_ee72001);
+ dp->~ee72001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72001(Test_ee72001, "ee72001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72001C1Ev();
+extern void _ZN7ee72001D1Ev();
+Name_Map name_map_ee72001[] = {
+ NSPAIR(_ZN7ee72001C1Ev),
+ NSPAIR(_ZN7ee72001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd2001;
+extern VTBL_ENTRY _ZTI6dd2001[];
+extern VTBL_ENTRY _ZTV6dd2001[];
+static Base_Class bases_ee72001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72001[];
+extern void _ZN7ee720013fooEv();
+extern void _ZN7ee720013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720013fooEv,_ZTv0_n12_N7ee720013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720013fooEv,_ZThn8_N7ee720013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72001[0]),
+ (VTBL_ENTRY)&_ZN7ee720013fooEv,
+ (VTBL_ENTRY)&_ZN7ee720013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720013fooEv,_ZTv0_n12_N7ee720013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72001[];
+static VTT_ENTRY vtt_ee72001[] = {
+ {&(_ZTV7ee72001[3]), 3,9},
+ {&(_ZTV7ee72001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72001[];
+extern VTBL_ENTRY _ZTV7ee72001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72001[];
+static VTBL_ENTRY alt_thunk_names274[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720013fooEv,_ZTv0_n12_N7ee720013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720013fooEv,_ZThn8_N7ee720013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72001 = { "ee72001", // class name
+ bases_ee72001, 4,
+ &(vtc_ee72001[0]), // expected_vtbl_contents
+ &(vtt_ee72001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names274,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3001 : virtual cc001 {
+ int d;
+ virtual void foo(); // _ZN6dd30013fooEv
+ ~dd3001(); // tgen
+ dd3001(); // tgen
+};
+//SIG(-1 dd3001) C1{ VBC2{ BC3{ BC4{ v1 Fi} Fi} Fi} v1 Fi}
+
+
+void dd3001 ::foo(){vfunc_called(this, "_ZN6dd30013fooEv");}
+dd3001 ::~dd3001(){ note_dtor("dd3001", this);} // tgen
+dd3001 ::dd3001(){ note_ctor("dd3001", this);} // tgen
+
+static void Test_dd3001()
+{
+ extern Class_Descriptor cd_dd3001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3001, buf);
+ dd3001 *dp, &lv = *(dp=new (buf) dd3001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,8), "dd3001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,8), "dd3001");
+ check_base_class_offset(lv, (cc001*), ABISELECT(16,8), "dd3001");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3001.d");
+ test_class_info(&lv, &cd_dd3001);
+ dp->~dd3001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3001(Test_dd3001, "dd3001", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3001C1Ev();
+extern void _ZN6dd3001D1Ev();
+Name_Map name_map_dd3001[] = {
+ NSPAIR(_ZN6dd3001C1Ev),
+ NSPAIR(_ZN6dd3001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+static Base_Class bases_dd3001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern void _ZN6dd30013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3001[];
+static VTT_ENTRY vtt_dd3001[] = {
+ {&(_ZTV6dd3001[3]), 3,8},
+ {&(_ZTV6dd3001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static VTBL_ENTRY alt_thunk_names275[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3001 = { "dd3001", // class name
+ bases_dd3001, 3,
+ &(vtc_dd3001[0]), // expected_vtbl_contents
+ &(vtt_dd3001[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3001),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names275,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03001 : dd3001 {
+ int e;
+ ~ee03001(); // tgen
+ ee03001(); // tgen
+};
+//SIG(1 ee03001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee03001 ::~ee03001(){ note_dtor("ee03001", this);} // tgen
+ee03001 ::ee03001(){ note_ctor("ee03001", this);} // tgen
+
+static void Test_ee03001()
+{
+ extern Class_Descriptor cd_ee03001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03001, buf);
+ ee03001 *dp, &lv = *(dp=new (buf) ee03001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee03001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee03001");
+ check_base_class_offset(lv, (cc001*)(dd3001*), ABISELECT(16,12), "ee03001");
+ check_base_class_offset(lv, (dd3001*), 0, "ee03001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03001.e");
+ test_class_info(&lv, &cd_ee03001);
+ dp->~ee03001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03001(Test_ee03001, "ee03001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03001C1Ev();
+extern void _ZN7ee03001D1Ev();
+Name_Map name_map_ee03001[] = {
+ NSPAIR(_ZN7ee03001C1Ev),
+ NSPAIR(_ZN7ee03001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd3001;
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static Base_Class bases_ee03001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03001[];
+extern void _ZN6dd30013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03001[];
+extern void _ZN6dd30013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3001__7ee03001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd3001__7ee03001[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+static VTT_ENTRY vtt_ee03001[] = {
+ {&(_ZTV7ee03001[3]), 3,8},
+ {&(_tg__ZTV6dd3001__7ee03001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd3001__7ee03001[3]), 3,4},
+ {&(_ZTV7ee03001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03001[];
+extern VTBL_ENTRY _ZTV7ee03001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03001[];
+static VTBL_ENTRY alt_thunk_names276[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03001 = { "ee03001", // class name
+ bases_ee03001, 4,
+ &(vtc_ee03001[0]), // expected_vtbl_contents
+ &(vtt_ee03001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names276,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13001 : virtual dd3001 {
+ int e;
+ ~ee13001(); // tgen
+ ee13001(); // tgen
+};
+//SIG(1 ee13001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee13001 ::~ee13001(){ note_dtor("ee13001", this);} // tgen
+ee13001 ::ee13001(){ note_ctor("ee13001", this);} // tgen
+
+static void Test_ee13001()
+{
+ extern Class_Descriptor cd_ee13001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13001, buf);
+ ee13001 *dp, &lv = *(dp=new (buf) ee13001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee13001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee13001");
+ check_base_class_offset(lv, (cc001*)(dd3001*), ABISELECT(32,16), "ee13001");
+ check_base_class_offset(lv, (dd3001*), ABISELECT(16,8), "ee13001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13001.e");
+ test_class_info(&lv, &cd_ee13001);
+ dp->~ee13001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13001(Test_ee13001, "ee13001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13001C1Ev();
+extern void _ZN7ee13001D1Ev();
+Name_Map name_map_ee13001[] = {
+ NSPAIR(_ZN7ee13001C1Ev),
+ NSPAIR(_ZN7ee13001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd3001;
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static Base_Class bases_ee13001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13001[];
+extern void _ZN6dd30013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13001[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13001[];
+extern void _ZN6dd30013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3001__7ee13001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd3001__7ee13001[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+static VTT_ENTRY vtt_ee13001[] = {
+ {&(_ZTV7ee13001[4]), 4,13},
+ {&(_ZTV7ee13001[8]), 8,13},
+ {&(_ZTV7ee13001[12]), 12,13},
+ {&(_tg__ZTV6dd3001__7ee13001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd3001__7ee13001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13001[];
+extern VTBL_ENTRY _ZTV7ee13001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13001[];
+static VTBL_ENTRY alt_thunk_names277[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13001 = { "ee13001", // class name
+ bases_ee13001, 4,
+ &(vtc_ee13001[0]), // expected_vtbl_contents
+ &(vtt_ee13001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13001),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names277,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23001 : dd3001 {
+ int e;
+ virtual void foo(); // _ZN7ee230013fooEv
+ ~ee23001(); // tgen
+ ee23001(); // tgen
+};
+//SIG(1 ee23001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23001 ::foo(){vfunc_called(this, "_ZN7ee230013fooEv");}
+ee23001 ::~ee23001(){ note_dtor("ee23001", this);} // tgen
+ee23001 ::ee23001(){ note_ctor("ee23001", this);} // tgen
+
+static void Test_ee23001()
+{
+ extern Class_Descriptor cd_ee23001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23001, buf);
+ ee23001 *dp, &lv = *(dp=new (buf) ee23001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee23001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee23001");
+ check_base_class_offset(lv, (cc001*)(dd3001*), ABISELECT(16,12), "ee23001");
+ check_base_class_offset(lv, (dd3001*), 0, "ee23001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23001.e");
+ test_class_info(&lv, &cd_ee23001);
+ dp->~ee23001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23001(Test_ee23001, "ee23001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23001C1Ev();
+extern void _ZN7ee23001D1Ev();
+Name_Map name_map_ee23001[] = {
+ NSPAIR(_ZN7ee23001C1Ev),
+ NSPAIR(_ZN7ee23001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd3001;
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static Base_Class bases_ee23001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23001[];
+extern void _ZN7ee230013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230013fooEv,_ZTv0_n12_N7ee230013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230013fooEv,_ZThn12_N7ee230013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23001[0]),
+ (VTBL_ENTRY)&_ZN7ee230013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230013fooEv,_ZTv0_n12_N7ee230013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23001[];
+extern void _ZN6dd30013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3001__7ee23001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd3001__7ee23001[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+static VTT_ENTRY vtt_ee23001[] = {
+ {&(_ZTV7ee23001[3]), 3,8},
+ {&(_tg__ZTV6dd3001__7ee23001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd3001__7ee23001[3]), 3,4},
+ {&(_ZTV7ee23001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23001[];
+extern VTBL_ENTRY _ZTV7ee23001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23001[];
+static VTBL_ENTRY alt_thunk_names278[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230013fooEv,_ZTv0_n12_N7ee230013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230013fooEv,_ZThn12_N7ee230013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23001 = { "ee23001", // class name
+ bases_ee23001, 4,
+ &(vtc_ee23001[0]), // expected_vtbl_contents
+ &(vtt_ee23001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names278,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33001 : virtual dd3001 {
+ int e;
+ virtual void foo(); // _ZN7ee330013fooEv
+ ~ee33001(); // tgen
+ ee33001(); // tgen
+};
+//SIG(1 ee33001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33001 ::foo(){vfunc_called(this, "_ZN7ee330013fooEv");}
+ee33001 ::~ee33001(){ note_dtor("ee33001", this);} // tgen
+ee33001 ::ee33001(){ note_ctor("ee33001", this);} // tgen
+
+static void Test_ee33001()
+{
+ extern Class_Descriptor cd_ee33001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33001, buf);
+ ee33001 *dp, &lv = *(dp=new (buf) ee33001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee33001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee33001");
+ check_base_class_offset(lv, (cc001*)(dd3001*), ABISELECT(32,16), "ee33001");
+ check_base_class_offset(lv, (dd3001*), ABISELECT(16,8), "ee33001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33001.e");
+ test_class_info(&lv, &cd_ee33001);
+ dp->~ee33001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33001(Test_ee33001, "ee33001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33001C1Ev();
+extern void _ZN7ee33001D1Ev();
+Name_Map name_map_ee33001[] = {
+ NSPAIR(_ZN7ee33001C1Ev),
+ NSPAIR(_ZN7ee33001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd3001;
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static Base_Class bases_ee33001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33001[];
+extern void _ZN7ee330013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330013fooEv,_ZTv0_n16_N7ee330013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330013fooEv,_ZThn8_N7ee330013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee330013fooEv,_ZTv0_n12_N7ee330013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330013fooEv,_ZThn16_N7ee330013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33001[0]),
+ (VTBL_ENTRY)&_ZN7ee330013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330013fooEv,_ZTv0_n16_N7ee330013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330013fooEv,_ZTv0_n12_N7ee330013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33001[];
+extern void _ZN6dd30013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3001__7ee33001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd3001__7ee33001[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+static VTT_ENTRY vtt_ee33001[] = {
+ {&(_ZTV7ee33001[4]), 4,14},
+ {&(_ZTV7ee33001[9]), 9,14},
+ {&(_ZTV7ee33001[13]), 13,14},
+ {&(_tg__ZTV6dd3001__7ee33001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd3001__7ee33001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33001[];
+extern VTBL_ENTRY _ZTV7ee33001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33001[];
+static VTBL_ENTRY alt_thunk_names279[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330013fooEv,_ZTv0_n12_N7ee330013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330013fooEv,_ZThn16_N7ee330013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330013fooEv,_ZTv0_n16_N7ee330013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330013fooEv,_ZThn8_N7ee330013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33001 = { "ee33001", // class name
+ bases_ee33001, 4,
+ &(vtc_ee33001[0]), // expected_vtbl_contents
+ &(vtt_ee33001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33001),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names279,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43001 : dd3001 {
+ int e;
+ virtual void bar(); // _ZN7ee430013barEv
+ ~ee43001(); // tgen
+ ee43001(); // tgen
+};
+//SIG(1 ee43001) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43001 ::bar(){vfunc_called(this, "_ZN7ee430013barEv");}
+ee43001 ::~ee43001(){ note_dtor("ee43001", this);} // tgen
+ee43001 ::ee43001(){ note_ctor("ee43001", this);} // tgen
+
+static void Test_ee43001()
+{
+ extern Class_Descriptor cd_ee43001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43001, buf);
+ ee43001 *dp, &lv = *(dp=new (buf) ee43001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee43001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee43001");
+ check_base_class_offset(lv, (cc001*)(dd3001*), ABISELECT(16,12), "ee43001");
+ check_base_class_offset(lv, (dd3001*), 0, "ee43001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43001.e");
+ test_class_info(&lv, &cd_ee43001);
+ dp->~ee43001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43001(Test_ee43001, "ee43001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43001C1Ev();
+extern void _ZN7ee43001D1Ev();
+Name_Map name_map_ee43001[] = {
+ NSPAIR(_ZN7ee43001C1Ev),
+ NSPAIR(_ZN7ee43001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd3001;
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static Base_Class bases_ee43001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43001[];
+extern void _ZN6dd30013fooEv();
+extern void _ZN7ee430013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+ (VTBL_ENTRY)&_ZN7ee430013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43001[];
+extern void _ZN6dd30013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3001__7ee43001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd3001__7ee43001[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+static VTT_ENTRY vtt_ee43001[] = {
+ {&(_ZTV7ee43001[3]), 3,9},
+ {&(_tg__ZTV6dd3001__7ee43001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd3001__7ee43001[3]), 3,4},
+ {&(_ZTV7ee43001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43001[];
+extern VTBL_ENTRY _ZTV7ee43001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43001[];
+static VTBL_ENTRY alt_thunk_names280[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43001 = { "ee43001", // class name
+ bases_ee43001, 4,
+ &(vtc_ee43001[0]), // expected_vtbl_contents
+ &(vtt_ee43001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names280,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53001 : virtual dd3001 {
+ int e;
+ virtual void bar(); // _ZN7ee530013barEv
+ ~ee53001(); // tgen
+ ee53001(); // tgen
+};
+//SIG(1 ee53001) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53001 ::bar(){vfunc_called(this, "_ZN7ee530013barEv");}
+ee53001 ::~ee53001(){ note_dtor("ee53001", this);} // tgen
+ee53001 ::ee53001(){ note_ctor("ee53001", this);} // tgen
+
+static void Test_ee53001()
+{
+ extern Class_Descriptor cd_ee53001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53001, buf);
+ ee53001 *dp, &lv = *(dp=new (buf) ee53001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee53001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee53001");
+ check_base_class_offset(lv, (cc001*)(dd3001*), ABISELECT(32,16), "ee53001");
+ check_base_class_offset(lv, (dd3001*), ABISELECT(16,8), "ee53001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53001.e");
+ test_class_info(&lv, &cd_ee53001);
+ dp->~ee53001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53001(Test_ee53001, "ee53001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53001C1Ev();
+extern void _ZN7ee53001D1Ev();
+Name_Map name_map_ee53001[] = {
+ NSPAIR(_ZN7ee53001C1Ev),
+ NSPAIR(_ZN7ee53001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd3001;
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static Base_Class bases_ee53001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53001[];
+extern void _ZN7ee530013barEv();
+extern void _ZN6dd30013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53001[0]),
+ (VTBL_ENTRY)&_ZN7ee530013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53001[];
+extern void _ZN6dd30013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3001__7ee53001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd3001__7ee53001[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+static VTT_ENTRY vtt_ee53001[] = {
+ {&(_ZTV7ee53001[4]), 4,14},
+ {&(_ZTV7ee53001[9]), 9,14},
+ {&(_ZTV7ee53001[13]), 13,14},
+ {&(_tg__ZTV6dd3001__7ee53001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd3001__7ee53001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53001[];
+extern VTBL_ENTRY _ZTV7ee53001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53001[];
+static VTBL_ENTRY alt_thunk_names281[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53001 = { "ee53001", // class name
+ bases_ee53001, 4,
+ &(vtc_ee53001[0]), // expected_vtbl_contents
+ &(vtt_ee53001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53001),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names281,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63001 : dd3001 {
+ int e;
+ virtual void foo(); // _ZN7ee630013fooEv
+ virtual void bar(); // _ZN7ee630013barEv
+ ~ee63001(); // tgen
+ ee63001(); // tgen
+};
+//SIG(1 ee63001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63001 ::foo(){vfunc_called(this, "_ZN7ee630013fooEv");}
+void ee63001 ::bar(){vfunc_called(this, "_ZN7ee630013barEv");}
+ee63001 ::~ee63001(){ note_dtor("ee63001", this);} // tgen
+ee63001 ::ee63001(){ note_ctor("ee63001", this);} // tgen
+
+static void Test_ee63001()
+{
+ extern Class_Descriptor cd_ee63001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63001, buf);
+ ee63001 *dp, &lv = *(dp=new (buf) ee63001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee63001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee63001");
+ check_base_class_offset(lv, (cc001*)(dd3001*), ABISELECT(16,12), "ee63001");
+ check_base_class_offset(lv, (dd3001*), 0, "ee63001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63001.e");
+ test_class_info(&lv, &cd_ee63001);
+ dp->~ee63001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63001(Test_ee63001, "ee63001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63001C1Ev();
+extern void _ZN7ee63001D1Ev();
+Name_Map name_map_ee63001[] = {
+ NSPAIR(_ZN7ee63001C1Ev),
+ NSPAIR(_ZN7ee63001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd3001;
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static Base_Class bases_ee63001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63001[];
+extern void _ZN7ee630013fooEv();
+extern void _ZN7ee630013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee630013fooEv,_ZTv0_n12_N7ee630013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630013fooEv,_ZThn12_N7ee630013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63001[0]),
+ (VTBL_ENTRY)&_ZN7ee630013fooEv,
+ (VTBL_ENTRY)&_ZN7ee630013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630013fooEv,_ZTv0_n12_N7ee630013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63001[];
+extern void _ZN6dd30013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3001__7ee63001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd3001__7ee63001[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+static VTT_ENTRY vtt_ee63001[] = {
+ {&(_ZTV7ee63001[3]), 3,9},
+ {&(_tg__ZTV6dd3001__7ee63001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd3001__7ee63001[3]), 3,4},
+ {&(_ZTV7ee63001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63001[];
+extern VTBL_ENTRY _ZTV7ee63001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63001[];
+static VTBL_ENTRY alt_thunk_names282[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn12_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630013fooEv,_ZTv0_n12_N7ee630013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630013fooEv,_ZThn12_N7ee630013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63001 = { "ee63001", // class name
+ bases_ee63001, 4,
+ &(vtc_ee63001[0]), // expected_vtbl_contents
+ &(vtt_ee63001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names282,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73001 : virtual dd3001 {
+ int e;
+ virtual void foo(); // _ZN7ee730013fooEv
+ virtual void bar(); // _ZN7ee730013barEv
+ ~ee73001(); // tgen
+ ee73001(); // tgen
+};
+//SIG(1 ee73001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73001 ::foo(){vfunc_called(this, "_ZN7ee730013fooEv");}
+void ee73001 ::bar(){vfunc_called(this, "_ZN7ee730013barEv");}
+ee73001 ::~ee73001(){ note_dtor("ee73001", this);} // tgen
+ee73001 ::ee73001(){ note_ctor("ee73001", this);} // tgen
+
+static void Test_ee73001()
+{
+ extern Class_Descriptor cd_ee73001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73001, buf);
+ ee73001 *dp, &lv = *(dp=new (buf) ee73001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee73001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee73001");
+ check_base_class_offset(lv, (cc001*)(dd3001*), ABISELECT(32,16), "ee73001");
+ check_base_class_offset(lv, (dd3001*), ABISELECT(16,8), "ee73001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73001.e");
+ test_class_info(&lv, &cd_ee73001);
+ dp->~ee73001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73001(Test_ee73001, "ee73001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73001C1Ev();
+extern void _ZN7ee73001D1Ev();
+Name_Map name_map_ee73001[] = {
+ NSPAIR(_ZN7ee73001C1Ev),
+ NSPAIR(_ZN7ee73001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd3001;
+extern VTBL_ENTRY _ZTI6dd3001[];
+extern VTBL_ENTRY _ZTV6dd3001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3001[];
+static Base_Class bases_ee73001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3001, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73001[];
+extern void _ZN7ee730013fooEv();
+extern void _ZN7ee730013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730013fooEv,_ZTv0_n16_N7ee730013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730013fooEv,_ZThn8_N7ee730013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730013fooEv,_ZTv0_n12_N7ee730013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730013fooEv,_ZThn16_N7ee730013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73001[0]),
+ (VTBL_ENTRY)&_ZN7ee730013fooEv,
+ (VTBL_ENTRY)&_ZN7ee730013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730013fooEv,_ZTv0_n16_N7ee730013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730013fooEv,_ZTv0_n12_N7ee730013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73001[];
+extern void _ZN6dd30013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3001__7ee73001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&_ZN6dd30013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd3001__7ee73001[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv),
+};
+static VTT_ENTRY vtt_ee73001[] = {
+ {&(_ZTV7ee73001[4]), 4,15},
+ {&(_ZTV7ee73001[10]), 10,15},
+ {&(_ZTV7ee73001[14]), 14,15},
+ {&(_tg__ZTV6dd3001__7ee73001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd3001__7ee73001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73001[];
+extern VTBL_ENTRY _ZTV7ee73001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73001[];
+static VTBL_ENTRY alt_thunk_names283[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30013fooEv,_ZTv0_n12_N6dd30013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30013fooEv,_ZThn8_N6dd30013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730013fooEv,_ZTv0_n12_N7ee730013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730013fooEv,_ZThn16_N7ee730013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730013fooEv,_ZTv0_n16_N7ee730013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730013fooEv,_ZThn8_N7ee730013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73001 = { "ee73001", // class name
+ bases_ee73001, 4,
+ &(vtc_ee73001[0]), // expected_vtbl_contents
+ &(vtt_ee73001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73001),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names283,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4001 : cc001 {
+ int d;
+ virtual void bar(); // _ZN6dd40013barEv
+ ~dd4001(); // tgen
+ dd4001(); // tgen
+};
+//SIG(-1 dd4001) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} Fi} v1 Fi}
+
+
+void dd4001 ::bar(){vfunc_called(this, "_ZN6dd40013barEv");}
+dd4001 ::~dd4001(){ note_dtor("dd4001", this);} // tgen
+dd4001 ::dd4001(){ note_ctor("dd4001", this);} // tgen
+
+static void Test_dd4001()
+{
+ extern Class_Descriptor cd_dd4001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4001, buf);
+ dd4001 *dp, &lv = *(dp=new (buf) dd4001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), 0, "dd4001");
+ check_base_class_offset(lv, (bb01*)(cc001*), 0, "dd4001");
+ check_base_class_offset(lv, (cc001*), 0, "dd4001");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4001.d");
+ test_class_info(&lv, &cd_dd4001);
+ dp->~dd4001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4001(Test_dd4001, "dd4001", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4001C1Ev();
+extern void _ZN6dd4001D1Ev();
+Name_Map name_map_dd4001[] = {
+ NSPAIR(_ZN6dd4001C1Ev),
+ NSPAIR(_ZN6dd4001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+static Base_Class bases_dd4001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern void _ZN3aa13fooEv();
+extern void _ZN6dd40013barEv();
+static VTBL_ENTRY vtc_dd4001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN6dd40013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+Class_Descriptor cd_dd4001 = { "dd4001", // class name
+ bases_dd4001, 3,
+ &(vtc_dd4001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04001 : dd4001 {
+ int e;
+ ~ee04001(); // tgen
+ ee04001(); // tgen
+};
+//SIG(1 ee04001) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee04001 ::~ee04001(){ note_dtor("ee04001", this);} // tgen
+ee04001 ::ee04001(){ note_ctor("ee04001", this);} // tgen
+
+static void Test_ee04001()
+{
+ extern Class_Descriptor cd_ee04001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04001, buf);
+ ee04001 *dp, &lv = *(dp=new (buf) ee04001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd4001*), 0, "ee04001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd4001*), 0, "ee04001");
+ check_base_class_offset(lv, (cc001*)(dd4001*), 0, "ee04001");
+ check_base_class_offset(lv, (dd4001*), 0, "ee04001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04001.e");
+ test_class_info(&lv, &cd_ee04001);
+ dp->~ee04001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04001(Test_ee04001, "ee04001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04001C1Ev();
+extern void _ZN7ee04001D1Ev();
+Name_Map name_map_ee04001[] = {
+ NSPAIR(_ZN7ee04001C1Ev),
+ NSPAIR(_ZN7ee04001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd4001;
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+static Base_Class bases_ee04001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4001, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04001[];
+extern void _ZN3aa13fooEv();
+extern void _ZN6dd40013barEv();
+static VTBL_ENTRY vtc_ee04001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN6dd40013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04001[];
+extern VTBL_ENTRY _ZTV7ee04001[];
+Class_Descriptor cd_ee04001 = { "ee04001", // class name
+ bases_ee04001, 4,
+ &(vtc_ee04001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14001 : virtual dd4001 {
+ int e;
+ ~ee14001(); // tgen
+ ee14001(); // tgen
+};
+//SIG(1 ee14001) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee14001 ::~ee14001(){ note_dtor("ee14001", this);} // tgen
+ee14001 ::ee14001(){ note_ctor("ee14001", this);} // tgen
+
+static void Test_ee14001()
+{
+ extern Class_Descriptor cd_ee14001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14001, buf);
+ ee14001 *dp, &lv = *(dp=new (buf) ee14001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd4001*), ABISELECT(16,8), "ee14001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd4001*), ABISELECT(16,8), "ee14001");
+ check_base_class_offset(lv, (cc001*)(dd4001*), ABISELECT(16,8), "ee14001");
+ check_base_class_offset(lv, (dd4001*), ABISELECT(16,8), "ee14001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14001.e");
+ test_class_info(&lv, &cd_ee14001);
+ dp->~ee14001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14001(Test_ee14001, "ee14001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14001C1Ev();
+extern void _ZN7ee14001D1Ev();
+Name_Map name_map_ee14001[] = {
+ NSPAIR(_ZN7ee14001C1Ev),
+ NSPAIR(_ZN7ee14001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd4001;
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+static Base_Class bases_ee14001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4001, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14001[];
+extern void _ZN3aa13fooEv();
+extern void _ZN6dd40013barEv();
+static VTBL_ENTRY vtc_ee14001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14001[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN6dd40013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14001[];
+static VTT_ENTRY vtt_ee14001[] = {
+ {&(_ZTV7ee14001[3]), 3,9},
+ {&(_ZTV7ee14001[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14001[];
+extern VTBL_ENTRY _ZTV7ee14001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14001[];
+Class_Descriptor cd_ee14001 = { "ee14001", // class name
+ bases_ee14001, 4,
+ &(vtc_ee14001[0]), // expected_vtbl_contents
+ &(vtt_ee14001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24001 : dd4001 {
+ int e;
+ virtual void foo(); // _ZN7ee240013fooEv
+ ~ee24001(); // tgen
+ ee24001(); // tgen
+};
+//SIG(1 ee24001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24001 ::foo(){vfunc_called(this, "_ZN7ee240013fooEv");}
+ee24001 ::~ee24001(){ note_dtor("ee24001", this);} // tgen
+ee24001 ::ee24001(){ note_ctor("ee24001", this);} // tgen
+
+static void Test_ee24001()
+{
+ extern Class_Descriptor cd_ee24001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24001, buf);
+ ee24001 *dp, &lv = *(dp=new (buf) ee24001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd4001*), 0, "ee24001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd4001*), 0, "ee24001");
+ check_base_class_offset(lv, (cc001*)(dd4001*), 0, "ee24001");
+ check_base_class_offset(lv, (dd4001*), 0, "ee24001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24001.e");
+ test_class_info(&lv, &cd_ee24001);
+ dp->~ee24001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24001(Test_ee24001, "ee24001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24001C1Ev();
+extern void _ZN7ee24001D1Ev();
+Name_Map name_map_ee24001[] = {
+ NSPAIR(_ZN7ee24001C1Ev),
+ NSPAIR(_ZN7ee24001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd4001;
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+static Base_Class bases_ee24001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24001[];
+extern void _ZN7ee240013fooEv();
+extern void _ZN6dd40013barEv();
+static VTBL_ENTRY vtc_ee24001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24001[0]),
+ (VTBL_ENTRY)&_ZN7ee240013fooEv,
+ (VTBL_ENTRY)&_ZN6dd40013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24001[];
+extern VTBL_ENTRY _ZTV7ee24001[];
+Class_Descriptor cd_ee24001 = { "ee24001", // class name
+ bases_ee24001, 4,
+ &(vtc_ee24001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34001 : virtual dd4001 {
+ int e;
+ virtual void foo(); // _ZN7ee340013fooEv
+ ~ee34001(); // tgen
+ ee34001(); // tgen
+};
+//SIG(1 ee34001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34001 ::foo(){vfunc_called(this, "_ZN7ee340013fooEv");}
+ee34001 ::~ee34001(){ note_dtor("ee34001", this);} // tgen
+ee34001 ::ee34001(){ note_ctor("ee34001", this);} // tgen
+
+static void Test_ee34001()
+{
+ extern Class_Descriptor cd_ee34001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34001, buf);
+ ee34001 *dp, &lv = *(dp=new (buf) ee34001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd4001*), ABISELECT(16,8), "ee34001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd4001*), ABISELECT(16,8), "ee34001");
+ check_base_class_offset(lv, (cc001*)(dd4001*), ABISELECT(16,8), "ee34001");
+ check_base_class_offset(lv, (dd4001*), ABISELECT(16,8), "ee34001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34001.e");
+ test_class_info(&lv, &cd_ee34001);
+ dp->~ee34001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34001(Test_ee34001, "ee34001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34001C1Ev();
+extern void _ZN7ee34001D1Ev();
+Name_Map name_map_ee34001[] = {
+ NSPAIR(_ZN7ee34001C1Ev),
+ NSPAIR(_ZN7ee34001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd4001;
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+static Base_Class bases_ee34001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34001[];
+extern void _ZN7ee340013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340013fooEv,_ZTv0_n12_N7ee340013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340013fooEv,_ZThn8_N7ee340013fooEv)() __attribute__((weak));
+extern void _ZN6dd40013barEv();
+static VTBL_ENTRY vtc_ee34001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34001[0]),
+ (VTBL_ENTRY)&_ZN7ee340013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340013fooEv,_ZTv0_n12_N7ee340013fooEv),
+ (VTBL_ENTRY)&_ZN6dd40013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34001[];
+static VTT_ENTRY vtt_ee34001[] = {
+ {&(_ZTV7ee34001[3]), 3,10},
+ {&(_ZTV7ee34001[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34001[];
+extern VTBL_ENTRY _ZTV7ee34001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34001[];
+static VTBL_ENTRY alt_thunk_names284[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340013fooEv,_ZTv0_n12_N7ee340013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340013fooEv,_ZThn8_N7ee340013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34001 = { "ee34001", // class name
+ bases_ee34001, 4,
+ &(vtc_ee34001[0]), // expected_vtbl_contents
+ &(vtt_ee34001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34001),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names284,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44001 : dd4001 {
+ int e;
+ virtual void bar(); // _ZN7ee440013barEv
+ ~ee44001(); // tgen
+ ee44001(); // tgen
+};
+//SIG(1 ee44001) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44001 ::bar(){vfunc_called(this, "_ZN7ee440013barEv");}
+ee44001 ::~ee44001(){ note_dtor("ee44001", this);} // tgen
+ee44001 ::ee44001(){ note_ctor("ee44001", this);} // tgen
+
+static void Test_ee44001()
+{
+ extern Class_Descriptor cd_ee44001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44001, buf);
+ ee44001 *dp, &lv = *(dp=new (buf) ee44001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd4001*), 0, "ee44001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd4001*), 0, "ee44001");
+ check_base_class_offset(lv, (cc001*)(dd4001*), 0, "ee44001");
+ check_base_class_offset(lv, (dd4001*), 0, "ee44001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44001.e");
+ test_class_info(&lv, &cd_ee44001);
+ dp->~ee44001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44001(Test_ee44001, "ee44001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44001C1Ev();
+extern void _ZN7ee44001D1Ev();
+Name_Map name_map_ee44001[] = {
+ NSPAIR(_ZN7ee44001C1Ev),
+ NSPAIR(_ZN7ee44001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd4001;
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+static Base_Class bases_ee44001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44001[];
+extern void _ZN3aa13fooEv();
+extern void _ZN7ee440013barEv();
+static VTBL_ENTRY vtc_ee44001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN7ee440013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44001[];
+extern VTBL_ENTRY _ZTV7ee44001[];
+Class_Descriptor cd_ee44001 = { "ee44001", // class name
+ bases_ee44001, 4,
+ &(vtc_ee44001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54001 : virtual dd4001 {
+ int e;
+ virtual void bar(); // _ZN7ee540013barEv
+ ~ee54001(); // tgen
+ ee54001(); // tgen
+};
+//SIG(1 ee54001) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54001 ::bar(){vfunc_called(this, "_ZN7ee540013barEv");}
+ee54001 ::~ee54001(){ note_dtor("ee54001", this);} // tgen
+ee54001 ::ee54001(){ note_ctor("ee54001", this);} // tgen
+
+static void Test_ee54001()
+{
+ extern Class_Descriptor cd_ee54001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54001, buf);
+ ee54001 *dp, &lv = *(dp=new (buf) ee54001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd4001*), ABISELECT(16,8), "ee54001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd4001*), ABISELECT(16,8), "ee54001");
+ check_base_class_offset(lv, (cc001*)(dd4001*), ABISELECT(16,8), "ee54001");
+ check_base_class_offset(lv, (dd4001*), ABISELECT(16,8), "ee54001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54001.e");
+ test_class_info(&lv, &cd_ee54001);
+ dp->~ee54001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54001(Test_ee54001, "ee54001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54001C1Ev();
+extern void _ZN7ee54001D1Ev();
+Name_Map name_map_ee54001[] = {
+ NSPAIR(_ZN7ee54001C1Ev),
+ NSPAIR(_ZN7ee54001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd4001;
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+static Base_Class bases_ee54001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54001[];
+extern void _ZN7ee540013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540013barEv,_ZTv0_n16_N7ee540013barEv)();
+extern void ABISELECT(_ZThn16_N7ee540013barEv,_ZThn8_N7ee540013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54001[0]),
+ (VTBL_ENTRY)&_ZN7ee540013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540013barEv,_ZTv0_n16_N7ee540013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54001[];
+static VTT_ENTRY vtt_ee54001[] = {
+ {&(_ZTV7ee54001[3]), 3,10},
+ {&(_ZTV7ee54001[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54001[];
+extern VTBL_ENTRY _ZTV7ee54001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54001[];
+static VTBL_ENTRY alt_thunk_names285[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540013barEv,_ZTv0_n16_N7ee540013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540013barEv,_ZThn8_N7ee540013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54001 = { "ee54001", // class name
+ bases_ee54001, 4,
+ &(vtc_ee54001[0]), // expected_vtbl_contents
+ &(vtt_ee54001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54001),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names285,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64001 : dd4001 {
+ int e;
+ virtual void foo(); // _ZN7ee640013fooEv
+ virtual void bar(); // _ZN7ee640013barEv
+ ~ee64001(); // tgen
+ ee64001(); // tgen
+};
+//SIG(1 ee64001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64001 ::foo(){vfunc_called(this, "_ZN7ee640013fooEv");}
+void ee64001 ::bar(){vfunc_called(this, "_ZN7ee640013barEv");}
+ee64001 ::~ee64001(){ note_dtor("ee64001", this);} // tgen
+ee64001 ::ee64001(){ note_ctor("ee64001", this);} // tgen
+
+static void Test_ee64001()
+{
+ extern Class_Descriptor cd_ee64001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64001, buf);
+ ee64001 *dp, &lv = *(dp=new (buf) ee64001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd4001*), 0, "ee64001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd4001*), 0, "ee64001");
+ check_base_class_offset(lv, (cc001*)(dd4001*), 0, "ee64001");
+ check_base_class_offset(lv, (dd4001*), 0, "ee64001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64001.e");
+ test_class_info(&lv, &cd_ee64001);
+ dp->~ee64001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64001(Test_ee64001, "ee64001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64001C1Ev();
+extern void _ZN7ee64001D1Ev();
+Name_Map name_map_ee64001[] = {
+ NSPAIR(_ZN7ee64001C1Ev),
+ NSPAIR(_ZN7ee64001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd4001;
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+static Base_Class bases_ee64001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64001[];
+extern void _ZN7ee640013fooEv();
+extern void _ZN7ee640013barEv();
+static VTBL_ENTRY vtc_ee64001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64001[0]),
+ (VTBL_ENTRY)&_ZN7ee640013fooEv,
+ (VTBL_ENTRY)&_ZN7ee640013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64001[];
+extern VTBL_ENTRY _ZTV7ee64001[];
+Class_Descriptor cd_ee64001 = { "ee64001", // class name
+ bases_ee64001, 4,
+ &(vtc_ee64001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74001 : virtual dd4001 {
+ int e;
+ virtual void foo(); // _ZN7ee740013fooEv
+ virtual void bar(); // _ZN7ee740013barEv
+ ~ee74001(); // tgen
+ ee74001(); // tgen
+};
+//SIG(1 ee74001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74001 ::foo(){vfunc_called(this, "_ZN7ee740013fooEv");}
+void ee74001 ::bar(){vfunc_called(this, "_ZN7ee740013barEv");}
+ee74001 ::~ee74001(){ note_dtor("ee74001", this);} // tgen
+ee74001 ::ee74001(){ note_ctor("ee74001", this);} // tgen
+
+static void Test_ee74001()
+{
+ extern Class_Descriptor cd_ee74001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74001, buf);
+ ee74001 *dp, &lv = *(dp=new (buf) ee74001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd4001*), ABISELECT(16,8), "ee74001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd4001*), ABISELECT(16,8), "ee74001");
+ check_base_class_offset(lv, (cc001*)(dd4001*), ABISELECT(16,8), "ee74001");
+ check_base_class_offset(lv, (dd4001*), ABISELECT(16,8), "ee74001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74001.e");
+ test_class_info(&lv, &cd_ee74001);
+ dp->~ee74001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74001(Test_ee74001, "ee74001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74001C1Ev();
+extern void _ZN7ee74001D1Ev();
+Name_Map name_map_ee74001[] = {
+ NSPAIR(_ZN7ee74001C1Ev),
+ NSPAIR(_ZN7ee74001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd4001;
+extern VTBL_ENTRY _ZTI6dd4001[];
+extern VTBL_ENTRY _ZTV6dd4001[];
+static Base_Class bases_ee74001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74001[];
+extern void _ZN7ee740013fooEv();
+extern void _ZN7ee740013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740013fooEv,_ZTv0_n12_N7ee740013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740013fooEv,_ZThn8_N7ee740013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740013barEv,_ZTv0_n16_N7ee740013barEv)();
+extern void ABISELECT(_ZThn16_N7ee740013barEv,_ZThn8_N7ee740013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74001[0]),
+ (VTBL_ENTRY)&_ZN7ee740013fooEv,
+ (VTBL_ENTRY)&_ZN7ee740013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740013fooEv,_ZTv0_n12_N7ee740013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740013barEv,_ZTv0_n16_N7ee740013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74001[];
+static VTT_ENTRY vtt_ee74001[] = {
+ {&(_ZTV7ee74001[3]), 3,11},
+ {&(_ZTV7ee74001[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74001[];
+extern VTBL_ENTRY _ZTV7ee74001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74001[];
+static VTBL_ENTRY alt_thunk_names286[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740013barEv,_ZTv0_n16_N7ee740013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740013barEv,_ZThn8_N7ee740013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740013fooEv,_ZTv0_n12_N7ee740013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740013fooEv,_ZThn8_N7ee740013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74001 = { "ee74001", // class name
+ bases_ee74001, 4,
+ &(vtc_ee74001[0]), // expected_vtbl_contents
+ &(vtt_ee74001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74001),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names286,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5001 : virtual cc001 {
+ int d;
+ virtual void bar(); // _ZN6dd50013barEv
+ ~dd5001(); // tgen
+ dd5001(); // tgen
+};
+//SIG(-1 dd5001) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} Fi} v1 Fi}
+
+
+void dd5001 ::bar(){vfunc_called(this, "_ZN6dd50013barEv");}
+dd5001 ::~dd5001(){ note_dtor("dd5001", this);} // tgen
+dd5001 ::dd5001(){ note_ctor("dd5001", this);} // tgen
+
+static void Test_dd5001()
+{
+ extern Class_Descriptor cd_dd5001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5001, buf);
+ dd5001 *dp, &lv = *(dp=new (buf) dd5001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,8), "dd5001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,8), "dd5001");
+ check_base_class_offset(lv, (cc001*), ABISELECT(16,8), "dd5001");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5001.d");
+ test_class_info(&lv, &cd_dd5001);
+ dp->~dd5001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5001(Test_dd5001, "dd5001", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5001C1Ev();
+extern void _ZN6dd5001D1Ev();
+Name_Map name_map_dd5001[] = {
+ NSPAIR(_ZN6dd5001C1Ev),
+ NSPAIR(_ZN6dd5001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+static Base_Class bases_dd5001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern void _ZN6dd50013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd5001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5001[];
+static VTT_ENTRY vtt_dd5001[] = {
+ {&(_ZTV6dd5001[3]), 3,8},
+ {&(_ZTV6dd5001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+Class_Descriptor cd_dd5001 = { "dd5001", // class name
+ bases_dd5001, 3,
+ &(vtc_dd5001[0]), // expected_vtbl_contents
+ &(vtt_dd5001[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5001),2, //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 ee05001 : dd5001 {
+ int e;
+ ~ee05001(); // tgen
+ ee05001(); // tgen
+};
+//SIG(1 ee05001) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee05001 ::~ee05001(){ note_dtor("ee05001", this);} // tgen
+ee05001 ::ee05001(){ note_ctor("ee05001", this);} // tgen
+
+static void Test_ee05001()
+{
+ extern Class_Descriptor cd_ee05001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05001, buf);
+ ee05001 *dp, &lv = *(dp=new (buf) ee05001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee05001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee05001");
+ check_base_class_offset(lv, (cc001*)(dd5001*), ABISELECT(16,12), "ee05001");
+ check_base_class_offset(lv, (dd5001*), 0, "ee05001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05001.e");
+ test_class_info(&lv, &cd_ee05001);
+ dp->~ee05001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05001(Test_ee05001, "ee05001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05001C1Ev();
+extern void _ZN7ee05001D1Ev();
+Name_Map name_map_ee05001[] = {
+ NSPAIR(_ZN7ee05001C1Ev),
+ NSPAIR(_ZN7ee05001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd5001;
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+static Base_Class bases_ee05001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05001[];
+extern void _ZN6dd50013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee05001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05001[];
+extern void _ZN6dd50013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5001__7ee05001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd5001__7ee05001[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05001[] = {
+ {&(_ZTV7ee05001[3]), 3,8},
+ {&(_tg__ZTV6dd5001__7ee05001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd5001__7ee05001[3]), 3,4},
+ {&(_ZTV7ee05001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05001[];
+extern VTBL_ENTRY _ZTV7ee05001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05001[];
+Class_Descriptor cd_ee05001 = { "ee05001", // class name
+ bases_ee05001, 4,
+ &(vtc_ee05001[0]), // expected_vtbl_contents
+ &(vtt_ee05001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15001 : virtual dd5001 {
+ int e;
+ ~ee15001(); // tgen
+ ee15001(); // tgen
+};
+//SIG(1 ee15001) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee15001 ::~ee15001(){ note_dtor("ee15001", this);} // tgen
+ee15001 ::ee15001(){ note_ctor("ee15001", this);} // tgen
+
+static void Test_ee15001()
+{
+ extern Class_Descriptor cd_ee15001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15001, buf);
+ ee15001 *dp, &lv = *(dp=new (buf) ee15001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee15001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee15001");
+ check_base_class_offset(lv, (cc001*)(dd5001*), ABISELECT(32,16), "ee15001");
+ check_base_class_offset(lv, (dd5001*), ABISELECT(16,8), "ee15001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15001.e");
+ test_class_info(&lv, &cd_ee15001);
+ dp->~ee15001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15001(Test_ee15001, "ee15001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15001C1Ev();
+extern void _ZN7ee15001D1Ev();
+Name_Map name_map_ee15001[] = {
+ NSPAIR(_ZN7ee15001C1Ev),
+ NSPAIR(_ZN7ee15001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd5001;
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+static Base_Class bases_ee15001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15001[];
+extern void _ZN6dd50013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee15001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15001[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15001[];
+extern void _ZN6dd50013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5001__7ee15001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd5001__7ee15001[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15001[] = {
+ {&(_ZTV7ee15001[4]), 4,13},
+ {&(_ZTV7ee15001[8]), 8,13},
+ {&(_ZTV7ee15001[12]), 12,13},
+ {&(_tg__ZTV6dd5001__7ee15001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd5001__7ee15001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15001[];
+extern VTBL_ENTRY _ZTV7ee15001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15001[];
+Class_Descriptor cd_ee15001 = { "ee15001", // class name
+ bases_ee15001, 4,
+ &(vtc_ee15001[0]), // expected_vtbl_contents
+ &(vtt_ee15001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15001),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25001 : dd5001 {
+ int e;
+ virtual void foo(); // _ZN7ee250013fooEv
+ ~ee25001(); // tgen
+ ee25001(); // tgen
+};
+//SIG(1 ee25001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25001 ::foo(){vfunc_called(this, "_ZN7ee250013fooEv");}
+ee25001 ::~ee25001(){ note_dtor("ee25001", this);} // tgen
+ee25001 ::ee25001(){ note_ctor("ee25001", this);} // tgen
+
+static void Test_ee25001()
+{
+ extern Class_Descriptor cd_ee25001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25001, buf);
+ ee25001 *dp, &lv = *(dp=new (buf) ee25001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee25001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee25001");
+ check_base_class_offset(lv, (cc001*)(dd5001*), ABISELECT(16,12), "ee25001");
+ check_base_class_offset(lv, (dd5001*), 0, "ee25001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25001.e");
+ test_class_info(&lv, &cd_ee25001);
+ dp->~ee25001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25001(Test_ee25001, "ee25001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25001C1Ev();
+extern void _ZN7ee25001D1Ev();
+Name_Map name_map_ee25001[] = {
+ NSPAIR(_ZN7ee25001C1Ev),
+ NSPAIR(_ZN7ee25001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd5001;
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+static Base_Class bases_ee25001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25001[];
+extern void _ZN6dd50013barEv();
+extern void _ZN7ee250013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee250013fooEv,_ZTv0_n12_N7ee250013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250013fooEv,_ZThn12_N7ee250013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+ (VTBL_ENTRY)&_ZN7ee250013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250013fooEv,_ZTv0_n12_N7ee250013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25001[];
+extern void _ZN6dd50013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5001__7ee25001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd5001__7ee25001[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25001[] = {
+ {&(_ZTV7ee25001[3]), 3,9},
+ {&(_tg__ZTV6dd5001__7ee25001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd5001__7ee25001[3]), 3,4},
+ {&(_ZTV7ee25001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25001[];
+extern VTBL_ENTRY _ZTV7ee25001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25001[];
+static VTBL_ENTRY alt_thunk_names287[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250013fooEv,_ZTv0_n12_N7ee250013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250013fooEv,_ZThn12_N7ee250013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25001 = { "ee25001", // class name
+ bases_ee25001, 4,
+ &(vtc_ee25001[0]), // expected_vtbl_contents
+ &(vtt_ee25001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names287,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35001 : virtual dd5001 {
+ int e;
+ virtual void foo(); // _ZN7ee350013fooEv
+ ~ee35001(); // tgen
+ ee35001(); // tgen
+};
+//SIG(1 ee35001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35001 ::foo(){vfunc_called(this, "_ZN7ee350013fooEv");}
+ee35001 ::~ee35001(){ note_dtor("ee35001", this);} // tgen
+ee35001 ::ee35001(){ note_ctor("ee35001", this);} // tgen
+
+static void Test_ee35001()
+{
+ extern Class_Descriptor cd_ee35001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35001, buf);
+ ee35001 *dp, &lv = *(dp=new (buf) ee35001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee35001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee35001");
+ check_base_class_offset(lv, (cc001*)(dd5001*), ABISELECT(32,16), "ee35001");
+ check_base_class_offset(lv, (dd5001*), ABISELECT(16,8), "ee35001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35001.e");
+ test_class_info(&lv, &cd_ee35001);
+ dp->~ee35001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35001(Test_ee35001, "ee35001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35001C1Ev();
+extern void _ZN7ee35001D1Ev();
+Name_Map name_map_ee35001[] = {
+ NSPAIR(_ZN7ee35001C1Ev),
+ NSPAIR(_ZN7ee35001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd5001;
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+static Base_Class bases_ee35001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35001[];
+extern void _ZN7ee350013fooEv();
+extern void _ZN6dd50013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee350013fooEv,_ZTv0_n12_N7ee350013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350013fooEv,_ZThn16_N7ee350013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35001[0]),
+ (VTBL_ENTRY)&_ZN7ee350013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350013fooEv,_ZTv0_n12_N7ee350013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35001[];
+extern void _ZN6dd50013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5001__7ee35001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd5001__7ee35001[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35001[] = {
+ {&(_ZTV7ee35001[4]), 4,14},
+ {&(_ZTV7ee35001[9]), 9,14},
+ {&(_ZTV7ee35001[13]), 13,14},
+ {&(_tg__ZTV6dd5001__7ee35001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd5001__7ee35001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35001[];
+extern VTBL_ENTRY _ZTV7ee35001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35001[];
+static VTBL_ENTRY alt_thunk_names288[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350013fooEv,_ZTv0_n12_N7ee350013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350013fooEv,_ZThn16_N7ee350013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35001 = { "ee35001", // class name
+ bases_ee35001, 4,
+ &(vtc_ee35001[0]), // expected_vtbl_contents
+ &(vtt_ee35001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35001),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names288,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45001 : dd5001 {
+ int e;
+ virtual void bar(); // _ZN7ee450013barEv
+ ~ee45001(); // tgen
+ ee45001(); // tgen
+};
+//SIG(1 ee45001) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45001 ::bar(){vfunc_called(this, "_ZN7ee450013barEv");}
+ee45001 ::~ee45001(){ note_dtor("ee45001", this);} // tgen
+ee45001 ::ee45001(){ note_ctor("ee45001", this);} // tgen
+
+static void Test_ee45001()
+{
+ extern Class_Descriptor cd_ee45001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45001, buf);
+ ee45001 *dp, &lv = *(dp=new (buf) ee45001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee45001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee45001");
+ check_base_class_offset(lv, (cc001*)(dd5001*), ABISELECT(16,12), "ee45001");
+ check_base_class_offset(lv, (dd5001*), 0, "ee45001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45001.e");
+ test_class_info(&lv, &cd_ee45001);
+ dp->~ee45001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45001(Test_ee45001, "ee45001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45001C1Ev();
+extern void _ZN7ee45001D1Ev();
+Name_Map name_map_ee45001[] = {
+ NSPAIR(_ZN7ee45001C1Ev),
+ NSPAIR(_ZN7ee45001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd5001;
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+static Base_Class bases_ee45001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45001[];
+extern void _ZN7ee450013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee45001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45001[0]),
+ (VTBL_ENTRY)&_ZN7ee450013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45001[];
+extern void _ZN6dd50013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5001__7ee45001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd5001__7ee45001[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45001[] = {
+ {&(_ZTV7ee45001[3]), 3,8},
+ {&(_tg__ZTV6dd5001__7ee45001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd5001__7ee45001[3]), 3,4},
+ {&(_ZTV7ee45001[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45001[];
+extern VTBL_ENTRY _ZTV7ee45001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45001[];
+Class_Descriptor cd_ee45001 = { "ee45001", // class name
+ bases_ee45001, 4,
+ &(vtc_ee45001[0]), // expected_vtbl_contents
+ &(vtt_ee45001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45001),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55001 : virtual dd5001 {
+ int e;
+ virtual void bar(); // _ZN7ee550013barEv
+ ~ee55001(); // tgen
+ ee55001(); // tgen
+};
+//SIG(1 ee55001) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55001 ::bar(){vfunc_called(this, "_ZN7ee550013barEv");}
+ee55001 ::~ee55001(){ note_dtor("ee55001", this);} // tgen
+ee55001 ::ee55001(){ note_ctor("ee55001", this);} // tgen
+
+static void Test_ee55001()
+{
+ extern Class_Descriptor cd_ee55001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55001, buf);
+ ee55001 *dp, &lv = *(dp=new (buf) ee55001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee55001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee55001");
+ check_base_class_offset(lv, (cc001*)(dd5001*), ABISELECT(32,16), "ee55001");
+ check_base_class_offset(lv, (dd5001*), ABISELECT(16,8), "ee55001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55001.e");
+ test_class_info(&lv, &cd_ee55001);
+ dp->~ee55001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55001(Test_ee55001, "ee55001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55001C1Ev();
+extern void _ZN7ee55001D1Ev();
+Name_Map name_map_ee55001[] = {
+ NSPAIR(_ZN7ee55001C1Ev),
+ NSPAIR(_ZN7ee55001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd5001;
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+static Base_Class bases_ee55001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55001[];
+extern void _ZN7ee550013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550013barEv,_ZTv0_n16_N7ee550013barEv)();
+extern void ABISELECT(_ZThn16_N7ee550013barEv,_ZThn8_N7ee550013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee55001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55001[0]),
+ (VTBL_ENTRY)&_ZN7ee550013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550013barEv,_ZTv0_n16_N7ee550013barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55001[];
+extern void _ZN6dd50013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5001__7ee55001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd5001__7ee55001[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55001[] = {
+ {&(_ZTV7ee55001[4]), 4,14},
+ {&(_ZTV7ee55001[9]), 9,14},
+ {&(_ZTV7ee55001[13]), 13,14},
+ {&(_tg__ZTV6dd5001__7ee55001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd5001__7ee55001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55001[];
+extern VTBL_ENTRY _ZTV7ee55001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55001[];
+static VTBL_ENTRY alt_thunk_names289[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550013barEv,_ZTv0_n16_N7ee550013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550013barEv,_ZThn8_N7ee550013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55001 = { "ee55001", // class name
+ bases_ee55001, 4,
+ &(vtc_ee55001[0]), // expected_vtbl_contents
+ &(vtt_ee55001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55001),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names289,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65001 : dd5001 {
+ int e;
+ virtual void foo(); // _ZN7ee650013fooEv
+ virtual void bar(); // _ZN7ee650013barEv
+ ~ee65001(); // tgen
+ ee65001(); // tgen
+};
+//SIG(1 ee65001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65001 ::foo(){vfunc_called(this, "_ZN7ee650013fooEv");}
+void ee65001 ::bar(){vfunc_called(this, "_ZN7ee650013barEv");}
+ee65001 ::~ee65001(){ note_dtor("ee65001", this);} // tgen
+ee65001 ::ee65001(){ note_ctor("ee65001", this);} // tgen
+
+static void Test_ee65001()
+{
+ extern Class_Descriptor cd_ee65001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65001, buf);
+ ee65001 *dp, &lv = *(dp=new (buf) ee65001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee65001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee65001");
+ check_base_class_offset(lv, (cc001*)(dd5001*), ABISELECT(16,12), "ee65001");
+ check_base_class_offset(lv, (dd5001*), 0, "ee65001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65001.e");
+ test_class_info(&lv, &cd_ee65001);
+ dp->~ee65001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65001(Test_ee65001, "ee65001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65001C1Ev();
+extern void _ZN7ee65001D1Ev();
+Name_Map name_map_ee65001[] = {
+ NSPAIR(_ZN7ee65001C1Ev),
+ NSPAIR(_ZN7ee65001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd5001;
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+static Base_Class bases_ee65001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65001[];
+extern void _ZN7ee650013barEv();
+extern void _ZN7ee650013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee650013fooEv,_ZTv0_n12_N7ee650013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650013fooEv,_ZThn12_N7ee650013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65001[0]),
+ (VTBL_ENTRY)&_ZN7ee650013barEv,
+ (VTBL_ENTRY)&_ZN7ee650013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650013fooEv,_ZTv0_n12_N7ee650013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65001[];
+extern void _ZN6dd50013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5001__7ee65001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd5001__7ee65001[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65001[] = {
+ {&(_ZTV7ee65001[3]), 3,9},
+ {&(_tg__ZTV6dd5001__7ee65001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd5001__7ee65001[3]), 3,4},
+ {&(_ZTV7ee65001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65001[];
+extern VTBL_ENTRY _ZTV7ee65001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65001[];
+static VTBL_ENTRY alt_thunk_names290[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650013fooEv,_ZTv0_n12_N7ee650013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650013fooEv,_ZThn12_N7ee650013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65001 = { "ee65001", // class name
+ bases_ee65001, 4,
+ &(vtc_ee65001[0]), // expected_vtbl_contents
+ &(vtt_ee65001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names290,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75001 : virtual dd5001 {
+ int e;
+ virtual void foo(); // _ZN7ee750013fooEv
+ virtual void bar(); // _ZN7ee750013barEv
+ ~ee75001(); // tgen
+ ee75001(); // tgen
+};
+//SIG(1 ee75001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75001 ::foo(){vfunc_called(this, "_ZN7ee750013fooEv");}
+void ee75001 ::bar(){vfunc_called(this, "_ZN7ee750013barEv");}
+ee75001 ::~ee75001(){ note_dtor("ee75001", this);} // tgen
+ee75001 ::ee75001(){ note_ctor("ee75001", this);} // tgen
+
+static void Test_ee75001()
+{
+ extern Class_Descriptor cd_ee75001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75001, buf);
+ ee75001 *dp, &lv = *(dp=new (buf) ee75001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee75001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee75001");
+ check_base_class_offset(lv, (cc001*)(dd5001*), ABISELECT(32,16), "ee75001");
+ check_base_class_offset(lv, (dd5001*), ABISELECT(16,8), "ee75001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75001.e");
+ test_class_info(&lv, &cd_ee75001);
+ dp->~ee75001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75001(Test_ee75001, "ee75001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75001C1Ev();
+extern void _ZN7ee75001D1Ev();
+Name_Map name_map_ee75001[] = {
+ NSPAIR(_ZN7ee75001C1Ev),
+ NSPAIR(_ZN7ee75001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd5001;
+extern VTBL_ENTRY _ZTI6dd5001[];
+extern VTBL_ENTRY _ZTV6dd5001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5001[];
+static Base_Class bases_ee75001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5001, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75001[];
+extern void _ZN7ee750013fooEv();
+extern void _ZN7ee750013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750013barEv,_ZTv0_n16_N7ee750013barEv)();
+extern void ABISELECT(_ZThn16_N7ee750013barEv,_ZThn8_N7ee750013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750013fooEv,_ZTv0_n12_N7ee750013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750013fooEv,_ZThn16_N7ee750013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75001[0]),
+ (VTBL_ENTRY)&_ZN7ee750013fooEv,
+ (VTBL_ENTRY)&_ZN7ee750013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750013barEv,_ZTv0_n16_N7ee750013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750013fooEv,_ZTv0_n12_N7ee750013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75001[];
+extern void _ZN6dd50013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5001__7ee75001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN6dd50013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd5001__7ee75001[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5001[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75001[] = {
+ {&(_ZTV7ee75001[4]), 4,15},
+ {&(_ZTV7ee75001[10]), 10,15},
+ {&(_ZTV7ee75001[14]), 14,15},
+ {&(_tg__ZTV6dd5001__7ee75001[3]), 3,4},
+ {&(_tg__ZTV3aa14bb015cc001__6dd5001__7ee75001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75001[];
+extern VTBL_ENTRY _ZTV7ee75001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75001[];
+static VTBL_ENTRY alt_thunk_names291[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750013fooEv,_ZTv0_n12_N7ee750013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750013fooEv,_ZThn16_N7ee750013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750013barEv,_ZTv0_n16_N7ee750013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750013barEv,_ZThn8_N7ee750013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75001 = { "ee75001", // class name
+ bases_ee75001, 4,
+ &(vtc_ee75001[0]), // expected_vtbl_contents
+ &(vtt_ee75001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75001),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names291,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6001 : cc001 {
+ int d;
+ virtual void bar(); // _ZN6dd60013barEv
+ virtual void foo(); // _ZN6dd60013fooEv
+ ~dd6001(); // tgen
+ dd6001(); // tgen
+};
+//SIG(-1 dd6001) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd6001 ::bar(){vfunc_called(this, "_ZN6dd60013barEv");}
+void dd6001 ::foo(){vfunc_called(this, "_ZN6dd60013fooEv");}
+dd6001 ::~dd6001(){ note_dtor("dd6001", this);} // tgen
+dd6001 ::dd6001(){ note_ctor("dd6001", this);} // tgen
+
+static void Test_dd6001()
+{
+ extern Class_Descriptor cd_dd6001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6001, buf);
+ dd6001 *dp, &lv = *(dp=new (buf) dd6001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), 0, "dd6001");
+ check_base_class_offset(lv, (bb01*)(cc001*), 0, "dd6001");
+ check_base_class_offset(lv, (cc001*), 0, "dd6001");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6001.d");
+ test_class_info(&lv, &cd_dd6001);
+ dp->~dd6001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6001(Test_dd6001, "dd6001", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6001C1Ev();
+extern void _ZN6dd6001D1Ev();
+Name_Map name_map_dd6001[] = {
+ NSPAIR(_ZN6dd6001C1Ev),
+ NSPAIR(_ZN6dd6001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+static Base_Class bases_dd6001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern void _ZN6dd60013fooEv();
+extern void _ZN6dd60013barEv();
+static VTBL_ENTRY vtc_dd6001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6001[0]),
+ (VTBL_ENTRY)&_ZN6dd60013fooEv,
+ (VTBL_ENTRY)&_ZN6dd60013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+Class_Descriptor cd_dd6001 = { "dd6001", // class name
+ bases_dd6001, 3,
+ &(vtc_dd6001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06001 : dd6001 {
+ int e;
+ ~ee06001(); // tgen
+ ee06001(); // tgen
+};
+//SIG(1 ee06001) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06001 ::~ee06001(){ note_dtor("ee06001", this);} // tgen
+ee06001 ::ee06001(){ note_ctor("ee06001", this);} // tgen
+
+static void Test_ee06001()
+{
+ extern Class_Descriptor cd_ee06001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06001, buf);
+ ee06001 *dp, &lv = *(dp=new (buf) ee06001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd6001*), 0, "ee06001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd6001*), 0, "ee06001");
+ check_base_class_offset(lv, (cc001*)(dd6001*), 0, "ee06001");
+ check_base_class_offset(lv, (dd6001*), 0, "ee06001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06001.e");
+ test_class_info(&lv, &cd_ee06001);
+ dp->~ee06001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06001(Test_ee06001, "ee06001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06001C1Ev();
+extern void _ZN7ee06001D1Ev();
+Name_Map name_map_ee06001[] = {
+ NSPAIR(_ZN7ee06001C1Ev),
+ NSPAIR(_ZN7ee06001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd6001;
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+static Base_Class bases_ee06001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6001, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06001[];
+extern void _ZN6dd60013fooEv();
+extern void _ZN6dd60013barEv();
+static VTBL_ENTRY vtc_ee06001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06001[0]),
+ (VTBL_ENTRY)&_ZN6dd60013fooEv,
+ (VTBL_ENTRY)&_ZN6dd60013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06001[];
+extern VTBL_ENTRY _ZTV7ee06001[];
+Class_Descriptor cd_ee06001 = { "ee06001", // class name
+ bases_ee06001, 4,
+ &(vtc_ee06001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16001 : virtual dd6001 {
+ int e;
+ ~ee16001(); // tgen
+ ee16001(); // tgen
+};
+//SIG(1 ee16001) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16001 ::~ee16001(){ note_dtor("ee16001", this);} // tgen
+ee16001 ::ee16001(){ note_ctor("ee16001", this);} // tgen
+
+static void Test_ee16001()
+{
+ extern Class_Descriptor cd_ee16001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16001, buf);
+ ee16001 *dp, &lv = *(dp=new (buf) ee16001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd6001*), ABISELECT(16,8), "ee16001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd6001*), ABISELECT(16,8), "ee16001");
+ check_base_class_offset(lv, (cc001*)(dd6001*), ABISELECT(16,8), "ee16001");
+ check_base_class_offset(lv, (dd6001*), ABISELECT(16,8), "ee16001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16001.e");
+ test_class_info(&lv, &cd_ee16001);
+ dp->~ee16001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16001(Test_ee16001, "ee16001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16001C1Ev();
+extern void _ZN7ee16001D1Ev();
+Name_Map name_map_ee16001[] = {
+ NSPAIR(_ZN7ee16001C1Ev),
+ NSPAIR(_ZN7ee16001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd6001;
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+static Base_Class bases_ee16001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6001, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16001[];
+extern void _ZN6dd60013fooEv();
+extern void _ZN6dd60013barEv();
+static VTBL_ENTRY vtc_ee16001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16001[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16001[0]),
+ (VTBL_ENTRY)&_ZN6dd60013fooEv,
+ (VTBL_ENTRY)&_ZN6dd60013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16001[];
+static VTT_ENTRY vtt_ee16001[] = {
+ {&(_ZTV7ee16001[3]), 3,9},
+ {&(_ZTV7ee16001[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16001[];
+extern VTBL_ENTRY _ZTV7ee16001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16001[];
+Class_Descriptor cd_ee16001 = { "ee16001", // class name
+ bases_ee16001, 4,
+ &(vtc_ee16001[0]), // expected_vtbl_contents
+ &(vtt_ee16001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26001 : dd6001 {
+ int e;
+ virtual void foo(); // _ZN7ee260013fooEv
+ ~ee26001(); // tgen
+ ee26001(); // tgen
+};
+//SIG(1 ee26001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26001 ::foo(){vfunc_called(this, "_ZN7ee260013fooEv");}
+ee26001 ::~ee26001(){ note_dtor("ee26001", this);} // tgen
+ee26001 ::ee26001(){ note_ctor("ee26001", this);} // tgen
+
+static void Test_ee26001()
+{
+ extern Class_Descriptor cd_ee26001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26001, buf);
+ ee26001 *dp, &lv = *(dp=new (buf) ee26001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd6001*), 0, "ee26001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd6001*), 0, "ee26001");
+ check_base_class_offset(lv, (cc001*)(dd6001*), 0, "ee26001");
+ check_base_class_offset(lv, (dd6001*), 0, "ee26001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26001.e");
+ test_class_info(&lv, &cd_ee26001);
+ dp->~ee26001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26001(Test_ee26001, "ee26001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26001C1Ev();
+extern void _ZN7ee26001D1Ev();
+Name_Map name_map_ee26001[] = {
+ NSPAIR(_ZN7ee26001C1Ev),
+ NSPAIR(_ZN7ee26001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd6001;
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+static Base_Class bases_ee26001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26001[];
+extern void _ZN7ee260013fooEv();
+extern void _ZN6dd60013barEv();
+static VTBL_ENTRY vtc_ee26001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26001[0]),
+ (VTBL_ENTRY)&_ZN7ee260013fooEv,
+ (VTBL_ENTRY)&_ZN6dd60013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26001[];
+extern VTBL_ENTRY _ZTV7ee26001[];
+Class_Descriptor cd_ee26001 = { "ee26001", // class name
+ bases_ee26001, 4,
+ &(vtc_ee26001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36001 : virtual dd6001 {
+ int e;
+ virtual void foo(); // _ZN7ee360013fooEv
+ ~ee36001(); // tgen
+ ee36001(); // tgen
+};
+//SIG(1 ee36001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36001 ::foo(){vfunc_called(this, "_ZN7ee360013fooEv");}
+ee36001 ::~ee36001(){ note_dtor("ee36001", this);} // tgen
+ee36001 ::ee36001(){ note_ctor("ee36001", this);} // tgen
+
+static void Test_ee36001()
+{
+ extern Class_Descriptor cd_ee36001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36001, buf);
+ ee36001 *dp, &lv = *(dp=new (buf) ee36001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd6001*), ABISELECT(16,8), "ee36001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd6001*), ABISELECT(16,8), "ee36001");
+ check_base_class_offset(lv, (cc001*)(dd6001*), ABISELECT(16,8), "ee36001");
+ check_base_class_offset(lv, (dd6001*), ABISELECT(16,8), "ee36001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36001.e");
+ test_class_info(&lv, &cd_ee36001);
+ dp->~ee36001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36001(Test_ee36001, "ee36001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36001C1Ev();
+extern void _ZN7ee36001D1Ev();
+Name_Map name_map_ee36001[] = {
+ NSPAIR(_ZN7ee36001C1Ev),
+ NSPAIR(_ZN7ee36001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd6001;
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+static Base_Class bases_ee36001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36001[];
+extern void _ZN7ee360013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee360013fooEv,_ZTv0_n12_N7ee360013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360013fooEv,_ZThn8_N7ee360013fooEv)() __attribute__((weak));
+extern void _ZN6dd60013barEv();
+static VTBL_ENTRY vtc_ee36001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36001[0]),
+ (VTBL_ENTRY)&_ZN7ee360013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360013fooEv,_ZTv0_n12_N7ee360013fooEv),
+ (VTBL_ENTRY)&_ZN6dd60013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36001[];
+static VTT_ENTRY vtt_ee36001[] = {
+ {&(_ZTV7ee36001[3]), 3,10},
+ {&(_ZTV7ee36001[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36001[];
+extern VTBL_ENTRY _ZTV7ee36001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36001[];
+static VTBL_ENTRY alt_thunk_names292[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360013fooEv,_ZTv0_n12_N7ee360013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360013fooEv,_ZThn8_N7ee360013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36001 = { "ee36001", // class name
+ bases_ee36001, 4,
+ &(vtc_ee36001[0]), // expected_vtbl_contents
+ &(vtt_ee36001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36001),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names292,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46001 : dd6001 {
+ int e;
+ virtual void bar(); // _ZN7ee460013barEv
+ ~ee46001(); // tgen
+ ee46001(); // tgen
+};
+//SIG(1 ee46001) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46001 ::bar(){vfunc_called(this, "_ZN7ee460013barEv");}
+ee46001 ::~ee46001(){ note_dtor("ee46001", this);} // tgen
+ee46001 ::ee46001(){ note_ctor("ee46001", this);} // tgen
+
+static void Test_ee46001()
+{
+ extern Class_Descriptor cd_ee46001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46001, buf);
+ ee46001 *dp, &lv = *(dp=new (buf) ee46001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd6001*), 0, "ee46001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd6001*), 0, "ee46001");
+ check_base_class_offset(lv, (cc001*)(dd6001*), 0, "ee46001");
+ check_base_class_offset(lv, (dd6001*), 0, "ee46001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46001.e");
+ test_class_info(&lv, &cd_ee46001);
+ dp->~ee46001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46001(Test_ee46001, "ee46001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46001C1Ev();
+extern void _ZN7ee46001D1Ev();
+Name_Map name_map_ee46001[] = {
+ NSPAIR(_ZN7ee46001C1Ev),
+ NSPAIR(_ZN7ee46001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd6001;
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+static Base_Class bases_ee46001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46001[];
+extern void _ZN6dd60013fooEv();
+extern void _ZN7ee460013barEv();
+static VTBL_ENTRY vtc_ee46001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46001[0]),
+ (VTBL_ENTRY)&_ZN6dd60013fooEv,
+ (VTBL_ENTRY)&_ZN7ee460013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46001[];
+extern VTBL_ENTRY _ZTV7ee46001[];
+Class_Descriptor cd_ee46001 = { "ee46001", // class name
+ bases_ee46001, 4,
+ &(vtc_ee46001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56001 : virtual dd6001 {
+ int e;
+ virtual void bar(); // _ZN7ee560013barEv
+ ~ee56001(); // tgen
+ ee56001(); // tgen
+};
+//SIG(1 ee56001) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56001 ::bar(){vfunc_called(this, "_ZN7ee560013barEv");}
+ee56001 ::~ee56001(){ note_dtor("ee56001", this);} // tgen
+ee56001 ::ee56001(){ note_ctor("ee56001", this);} // tgen
+
+static void Test_ee56001()
+{
+ extern Class_Descriptor cd_ee56001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56001, buf);
+ ee56001 *dp, &lv = *(dp=new (buf) ee56001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd6001*), ABISELECT(16,8), "ee56001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd6001*), ABISELECT(16,8), "ee56001");
+ check_base_class_offset(lv, (cc001*)(dd6001*), ABISELECT(16,8), "ee56001");
+ check_base_class_offset(lv, (dd6001*), ABISELECT(16,8), "ee56001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56001.e");
+ test_class_info(&lv, &cd_ee56001);
+ dp->~ee56001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56001(Test_ee56001, "ee56001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56001C1Ev();
+extern void _ZN7ee56001D1Ev();
+Name_Map name_map_ee56001[] = {
+ NSPAIR(_ZN7ee56001C1Ev),
+ NSPAIR(_ZN7ee56001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd6001;
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+static Base_Class bases_ee56001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56001[];
+extern void _ZN7ee560013barEv();
+extern void _ZN6dd60013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560013barEv,_ZTv0_n16_N7ee560013barEv)();
+extern void ABISELECT(_ZThn16_N7ee560013barEv,_ZThn8_N7ee560013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56001[0]),
+ (VTBL_ENTRY)&_ZN7ee560013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56001[0]),
+ (VTBL_ENTRY)&_ZN6dd60013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560013barEv,_ZTv0_n16_N7ee560013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56001[];
+static VTT_ENTRY vtt_ee56001[] = {
+ {&(_ZTV7ee56001[3]), 3,10},
+ {&(_ZTV7ee56001[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56001[];
+extern VTBL_ENTRY _ZTV7ee56001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56001[];
+static VTBL_ENTRY alt_thunk_names293[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560013barEv,_ZTv0_n16_N7ee560013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560013barEv,_ZThn8_N7ee560013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56001 = { "ee56001", // class name
+ bases_ee56001, 4,
+ &(vtc_ee56001[0]), // expected_vtbl_contents
+ &(vtt_ee56001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56001),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names293,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66001 : dd6001 {
+ int e;
+ virtual void foo(); // _ZN7ee660013fooEv
+ virtual void bar(); // _ZN7ee660013barEv
+ ~ee66001(); // tgen
+ ee66001(); // tgen
+};
+//SIG(1 ee66001) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66001 ::foo(){vfunc_called(this, "_ZN7ee660013fooEv");}
+void ee66001 ::bar(){vfunc_called(this, "_ZN7ee660013barEv");}
+ee66001 ::~ee66001(){ note_dtor("ee66001", this);} // tgen
+ee66001 ::ee66001(){ note_ctor("ee66001", this);} // tgen
+
+static void Test_ee66001()
+{
+ extern Class_Descriptor cd_ee66001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66001, buf);
+ ee66001 *dp, &lv = *(dp=new (buf) ee66001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd6001*), 0, "ee66001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd6001*), 0, "ee66001");
+ check_base_class_offset(lv, (cc001*)(dd6001*), 0, "ee66001");
+ check_base_class_offset(lv, (dd6001*), 0, "ee66001");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66001.e");
+ test_class_info(&lv, &cd_ee66001);
+ dp->~ee66001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66001(Test_ee66001, "ee66001", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66001C1Ev();
+extern void _ZN7ee66001D1Ev();
+Name_Map name_map_ee66001[] = {
+ NSPAIR(_ZN7ee66001C1Ev),
+ NSPAIR(_ZN7ee66001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd6001;
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+static Base_Class bases_ee66001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66001[];
+extern void _ZN7ee660013fooEv();
+extern void _ZN7ee660013barEv();
+static VTBL_ENTRY vtc_ee66001[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66001[0]),
+ (VTBL_ENTRY)&_ZN7ee660013fooEv,
+ (VTBL_ENTRY)&_ZN7ee660013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66001[];
+extern VTBL_ENTRY _ZTV7ee66001[];
+Class_Descriptor cd_ee66001 = { "ee66001", // class name
+ bases_ee66001, 4,
+ &(vtc_ee66001[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66001),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76001 : virtual dd6001 {
+ int e;
+ virtual void foo(); // _ZN7ee760013fooEv
+ virtual void bar(); // _ZN7ee760013barEv
+ ~ee76001(); // tgen
+ ee76001(); // tgen
+};
+//SIG(1 ee76001) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76001 ::foo(){vfunc_called(this, "_ZN7ee760013fooEv");}
+void ee76001 ::bar(){vfunc_called(this, "_ZN7ee760013barEv");}
+ee76001 ::~ee76001(){ note_dtor("ee76001", this);} // tgen
+ee76001 ::ee76001(){ note_ctor("ee76001", this);} // tgen
+
+static void Test_ee76001()
+{
+ extern Class_Descriptor cd_ee76001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76001, buf);
+ ee76001 *dp, &lv = *(dp=new (buf) ee76001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*)(dd6001*), ABISELECT(16,8), "ee76001");
+ check_base_class_offset(lv, (bb01*)(cc001*)(dd6001*), ABISELECT(16,8), "ee76001");
+ check_base_class_offset(lv, (cc001*)(dd6001*), ABISELECT(16,8), "ee76001");
+ check_base_class_offset(lv, (dd6001*), ABISELECT(16,8), "ee76001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76001.e");
+ test_class_info(&lv, &cd_ee76001);
+ dp->~ee76001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76001(Test_ee76001, "ee76001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76001C1Ev();
+extern void _ZN7ee76001D1Ev();
+Name_Map name_map_ee76001[] = {
+ NSPAIR(_ZN7ee76001C1Ev),
+ NSPAIR(_ZN7ee76001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd6001;
+extern VTBL_ENTRY _ZTI6dd6001[];
+extern VTBL_ENTRY _ZTV6dd6001[];
+static Base_Class bases_ee76001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76001[];
+extern void _ZN7ee760013fooEv();
+extern void _ZN7ee760013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760013fooEv,_ZTv0_n12_N7ee760013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760013fooEv,_ZThn8_N7ee760013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760013barEv,_ZTv0_n16_N7ee760013barEv)();
+extern void ABISELECT(_ZThn16_N7ee760013barEv,_ZThn8_N7ee760013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76001[0]),
+ (VTBL_ENTRY)&_ZN7ee760013fooEv,
+ (VTBL_ENTRY)&_ZN7ee760013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760013fooEv,_ZTv0_n12_N7ee760013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760013barEv,_ZTv0_n16_N7ee760013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76001[];
+static VTT_ENTRY vtt_ee76001[] = {
+ {&(_ZTV7ee76001[3]), 3,11},
+ {&(_ZTV7ee76001[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76001[];
+extern VTBL_ENTRY _ZTV7ee76001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76001[];
+static VTBL_ENTRY alt_thunk_names294[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760013barEv,_ZTv0_n16_N7ee760013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760013barEv,_ZThn8_N7ee760013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760013fooEv,_ZTv0_n12_N7ee760013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760013fooEv,_ZThn8_N7ee760013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76001 = { "ee76001", // class name
+ bases_ee76001, 4,
+ &(vtc_ee76001[0]), // expected_vtbl_contents
+ &(vtt_ee76001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76001),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76001),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names294,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7001 : virtual cc001 {
+ int d;
+ virtual void bar(); // _ZN6dd70013barEv
+ virtual void foo(); // _ZN6dd70013fooEv
+ ~dd7001(); // tgen
+ dd7001(); // tgen
+};
+//SIG(-1 dd7001) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd7001 ::bar(){vfunc_called(this, "_ZN6dd70013barEv");}
+void dd7001 ::foo(){vfunc_called(this, "_ZN6dd70013fooEv");}
+dd7001 ::~dd7001(){ note_dtor("dd7001", this);} // tgen
+dd7001 ::dd7001(){ note_ctor("dd7001", this);} // tgen
+
+static void Test_dd7001()
+{
+ extern Class_Descriptor cd_dd7001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7001, buf);
+ dd7001 *dp, &lv = *(dp=new (buf) dd7001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,8), "dd7001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,8), "dd7001");
+ check_base_class_offset(lv, (cc001*), ABISELECT(16,8), "dd7001");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7001.d");
+ test_class_info(&lv, &cd_dd7001);
+ dp->~dd7001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7001(Test_dd7001, "dd7001", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7001C1Ev();
+extern void _ZN6dd7001D1Ev();
+Name_Map name_map_dd7001[] = {
+ NSPAIR(_ZN6dd7001C1Ev),
+ NSPAIR(_ZN6dd7001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+static Base_Class bases_dd7001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7001[];
+static VTT_ENTRY vtt_dd7001[] = {
+ {&(_ZTV6dd7001[3]), 3,9},
+ {&(_ZTV6dd7001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static VTBL_ENTRY alt_thunk_names295[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7001 = { "dd7001", // class name
+ bases_dd7001, 3,
+ &(vtc_dd7001[0]), // expected_vtbl_contents
+ &(vtt_dd7001[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7001),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names295,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07001 : dd7001 {
+ int e;
+ ~ee07001(); // tgen
+ ee07001(); // tgen
+};
+//SIG(1 ee07001) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07001 ::~ee07001(){ note_dtor("ee07001", this);} // tgen
+ee07001 ::ee07001(){ note_ctor("ee07001", this);} // tgen
+
+static void Test_ee07001()
+{
+ extern Class_Descriptor cd_ee07001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07001, buf);
+ ee07001 *dp, &lv = *(dp=new (buf) ee07001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee07001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee07001");
+ check_base_class_offset(lv, (cc001*)(dd7001*), ABISELECT(16,12), "ee07001");
+ check_base_class_offset(lv, (dd7001*), 0, "ee07001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07001.e");
+ test_class_info(&lv, &cd_ee07001);
+ dp->~ee07001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07001(Test_ee07001, "ee07001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07001C1Ev();
+extern void _ZN7ee07001D1Ev();
+Name_Map name_map_ee07001[] = {
+ NSPAIR(_ZN7ee07001C1Ev),
+ NSPAIR(_ZN7ee07001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd7001;
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static Base_Class bases_ee07001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7001__7ee07001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd7001__7ee07001[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+static VTT_ENTRY vtt_ee07001[] = {
+ {&(_ZTV7ee07001[3]), 3,9},
+ {&(_tg__ZTV6dd7001__7ee07001[3]), 3,5},
+ {&(_tg__ZTV3aa14bb015cc001__6dd7001__7ee07001[3]), 3,4},
+ {&(_ZTV7ee07001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee07001[];
+extern VTBL_ENTRY _ZTV7ee07001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07001[];
+static VTBL_ENTRY alt_thunk_names296[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07001 = { "ee07001", // class name
+ bases_ee07001, 4,
+ &(vtc_ee07001[0]), // expected_vtbl_contents
+ &(vtt_ee07001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names296,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17001 : virtual dd7001 {
+ int e;
+ ~ee17001(); // tgen
+ ee17001(); // tgen
+};
+//SIG(1 ee17001) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17001 ::~ee17001(){ note_dtor("ee17001", this);} // tgen
+ee17001 ::ee17001(){ note_ctor("ee17001", this);} // tgen
+
+static void Test_ee17001()
+{
+ extern Class_Descriptor cd_ee17001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17001, buf);
+ ee17001 *dp, &lv = *(dp=new (buf) ee17001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee17001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee17001");
+ check_base_class_offset(lv, (cc001*)(dd7001*), ABISELECT(32,16), "ee17001");
+ check_base_class_offset(lv, (dd7001*), ABISELECT(16,8), "ee17001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17001.e");
+ test_class_info(&lv, &cd_ee17001);
+ dp->~ee17001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17001(Test_ee17001, "ee17001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17001C1Ev();
+extern void _ZN7ee17001D1Ev();
+Name_Map name_map_ee17001[] = {
+ NSPAIR(_ZN7ee17001C1Ev),
+ NSPAIR(_ZN7ee17001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd7001;
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static Base_Class bases_ee17001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7001, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17001[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7001__7ee17001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd7001__7ee17001[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+static VTT_ENTRY vtt_ee17001[] = {
+ {&(_ZTV7ee17001[4]), 4,15},
+ {&(_ZTV7ee17001[9]), 9,15},
+ {&(_ZTV7ee17001[14]), 14,15},
+ {&(_tg__ZTV6dd7001__7ee17001[3]), 3,5},
+ {&(_tg__ZTV3aa14bb015cc001__6dd7001__7ee17001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17001[];
+extern VTBL_ENTRY _ZTV7ee17001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17001[];
+static VTBL_ENTRY alt_thunk_names297[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17001 = { "ee17001", // class name
+ bases_ee17001, 4,
+ &(vtc_ee17001[0]), // expected_vtbl_contents
+ &(vtt_ee17001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17001),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names297,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27001 : dd7001 {
+ int e;
+ virtual void foo(); // _ZN7ee270013fooEv
+ ~ee27001(); // tgen
+ ee27001(); // tgen
+};
+//SIG(1 ee27001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27001 ::foo(){vfunc_called(this, "_ZN7ee270013fooEv");}
+ee27001 ::~ee27001(){ note_dtor("ee27001", this);} // tgen
+ee27001 ::ee27001(){ note_ctor("ee27001", this);} // tgen
+
+static void Test_ee27001()
+{
+ extern Class_Descriptor cd_ee27001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27001, buf);
+ ee27001 *dp, &lv = *(dp=new (buf) ee27001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee27001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee27001");
+ check_base_class_offset(lv, (cc001*)(dd7001*), ABISELECT(16,12), "ee27001");
+ check_base_class_offset(lv, (dd7001*), 0, "ee27001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27001.e");
+ test_class_info(&lv, &cd_ee27001);
+ dp->~ee27001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27001(Test_ee27001, "ee27001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27001C1Ev();
+extern void _ZN7ee27001D1Ev();
+Name_Map name_map_ee27001[] = {
+ NSPAIR(_ZN7ee27001C1Ev),
+ NSPAIR(_ZN7ee27001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd7001;
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static Base_Class bases_ee27001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN7ee270013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee270013fooEv,_ZTv0_n12_N7ee270013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270013fooEv,_ZThn12_N7ee270013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN7ee270013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270013fooEv,_ZTv0_n12_N7ee270013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7001__7ee27001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd7001__7ee27001[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+static VTT_ENTRY vtt_ee27001[] = {
+ {&(_ZTV7ee27001[3]), 3,9},
+ {&(_tg__ZTV6dd7001__7ee27001[3]), 3,5},
+ {&(_tg__ZTV3aa14bb015cc001__6dd7001__7ee27001[3]), 3,4},
+ {&(_ZTV7ee27001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee27001[];
+extern VTBL_ENTRY _ZTV7ee27001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27001[];
+static VTBL_ENTRY alt_thunk_names298[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270013fooEv,_ZTv0_n12_N7ee270013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270013fooEv,_ZThn12_N7ee270013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27001 = { "ee27001", // class name
+ bases_ee27001, 4,
+ &(vtc_ee27001[0]), // expected_vtbl_contents
+ &(vtt_ee27001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names298,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37001 : virtual dd7001 {
+ int e;
+ virtual void foo(); // _ZN7ee370013fooEv
+ ~ee37001(); // tgen
+ ee37001(); // tgen
+};
+//SIG(1 ee37001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37001 ::foo(){vfunc_called(this, "_ZN7ee370013fooEv");}
+ee37001 ::~ee37001(){ note_dtor("ee37001", this);} // tgen
+ee37001 ::ee37001(){ note_ctor("ee37001", this);} // tgen
+
+static void Test_ee37001()
+{
+ extern Class_Descriptor cd_ee37001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37001, buf);
+ ee37001 *dp, &lv = *(dp=new (buf) ee37001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee37001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee37001");
+ check_base_class_offset(lv, (cc001*)(dd7001*), ABISELECT(32,16), "ee37001");
+ check_base_class_offset(lv, (dd7001*), ABISELECT(16,8), "ee37001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37001.e");
+ test_class_info(&lv, &cd_ee37001);
+ dp->~ee37001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37001(Test_ee37001, "ee37001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37001C1Ev();
+extern void _ZN7ee37001D1Ev();
+Name_Map name_map_ee37001[] = {
+ NSPAIR(_ZN7ee37001C1Ev),
+ NSPAIR(_ZN7ee37001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd7001;
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static Base_Class bases_ee37001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37001[];
+extern void _ZN7ee370013fooEv();
+extern void _ZN6dd70013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370013fooEv,_ZTv0_n20_N7ee370013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370013fooEv,_ZThn8_N7ee370013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370013fooEv,_ZTv0_n12_N7ee370013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370013fooEv,_ZThn16_N7ee370013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37001[0]),
+ (VTBL_ENTRY)&_ZN7ee370013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370013fooEv,_ZTv0_n20_N7ee370013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370013fooEv,_ZTv0_n12_N7ee370013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7001__7ee37001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd7001__7ee37001[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+static VTT_ENTRY vtt_ee37001[] = {
+ {&(_ZTV7ee37001[4]), 4,16},
+ {&(_ZTV7ee37001[10]), 10,16},
+ {&(_ZTV7ee37001[15]), 15,16},
+ {&(_tg__ZTV6dd7001__7ee37001[3]), 3,5},
+ {&(_tg__ZTV3aa14bb015cc001__6dd7001__7ee37001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37001[];
+extern VTBL_ENTRY _ZTV7ee37001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37001[];
+static VTBL_ENTRY alt_thunk_names299[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370013fooEv,_ZTv0_n12_N7ee370013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370013fooEv,_ZThn16_N7ee370013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370013fooEv,_ZTv0_n20_N7ee370013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370013fooEv,_ZThn8_N7ee370013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37001 = { "ee37001", // class name
+ bases_ee37001, 4,
+ &(vtc_ee37001[0]), // expected_vtbl_contents
+ &(vtt_ee37001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37001),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names299,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47001 : dd7001 {
+ int e;
+ virtual void bar(); // _ZN7ee470013barEv
+ ~ee47001(); // tgen
+ ee47001(); // tgen
+};
+//SIG(1 ee47001) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47001 ::bar(){vfunc_called(this, "_ZN7ee470013barEv");}
+ee47001 ::~ee47001(){ note_dtor("ee47001", this);} // tgen
+ee47001 ::ee47001(){ note_ctor("ee47001", this);} // tgen
+
+static void Test_ee47001()
+{
+ extern Class_Descriptor cd_ee47001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47001, buf);
+ ee47001 *dp, &lv = *(dp=new (buf) ee47001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee47001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee47001");
+ check_base_class_offset(lv, (cc001*)(dd7001*), ABISELECT(16,12), "ee47001");
+ check_base_class_offset(lv, (dd7001*), 0, "ee47001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47001.e");
+ test_class_info(&lv, &cd_ee47001);
+ dp->~ee47001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47001(Test_ee47001, "ee47001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47001C1Ev();
+extern void _ZN7ee47001D1Ev();
+Name_Map name_map_ee47001[] = {
+ NSPAIR(_ZN7ee47001C1Ev),
+ NSPAIR(_ZN7ee47001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd7001;
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static Base_Class bases_ee47001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47001[];
+extern void _ZN7ee470013barEv();
+extern void _ZN6dd70013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47001[0]),
+ (VTBL_ENTRY)&_ZN7ee470013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7001__7ee47001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd7001__7ee47001[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+static VTT_ENTRY vtt_ee47001[] = {
+ {&(_ZTV7ee47001[3]), 3,9},
+ {&(_tg__ZTV6dd7001__7ee47001[3]), 3,5},
+ {&(_tg__ZTV3aa14bb015cc001__6dd7001__7ee47001[3]), 3,4},
+ {&(_ZTV7ee47001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee47001[];
+extern VTBL_ENTRY _ZTV7ee47001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47001[];
+static VTBL_ENTRY alt_thunk_names300[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47001 = { "ee47001", // class name
+ bases_ee47001, 4,
+ &(vtc_ee47001[0]), // expected_vtbl_contents
+ &(vtt_ee47001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names300,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57001 : virtual dd7001 {
+ int e;
+ virtual void bar(); // _ZN7ee570013barEv
+ ~ee57001(); // tgen
+ ee57001(); // tgen
+};
+//SIG(1 ee57001) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57001 ::bar(){vfunc_called(this, "_ZN7ee570013barEv");}
+ee57001 ::~ee57001(){ note_dtor("ee57001", this);} // tgen
+ee57001 ::ee57001(){ note_ctor("ee57001", this);} // tgen
+
+static void Test_ee57001()
+{
+ extern Class_Descriptor cd_ee57001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57001, buf);
+ ee57001 *dp, &lv = *(dp=new (buf) ee57001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee57001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee57001");
+ check_base_class_offset(lv, (cc001*)(dd7001*), ABISELECT(32,16), "ee57001");
+ check_base_class_offset(lv, (dd7001*), ABISELECT(16,8), "ee57001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57001.e");
+ test_class_info(&lv, &cd_ee57001);
+ dp->~ee57001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57001(Test_ee57001, "ee57001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57001C1Ev();
+extern void _ZN7ee57001D1Ev();
+Name_Map name_map_ee57001[] = {
+ NSPAIR(_ZN7ee57001C1Ev),
+ NSPAIR(_ZN7ee57001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd7001;
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static Base_Class bases_ee57001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7001, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57001[];
+extern void _ZN7ee570013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570013barEv,_ZTv0_n16_N7ee570013barEv)();
+extern void ABISELECT(_ZThn16_N7ee570013barEv,_ZThn8_N7ee570013barEv)() __attribute__((weak));
+extern void _ZN6dd70013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57001[0]),
+ (VTBL_ENTRY)&_ZN7ee570013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570013barEv,_ZTv0_n16_N7ee570013barEv),
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7001__7ee57001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd7001__7ee57001[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+static VTT_ENTRY vtt_ee57001[] = {
+ {&(_ZTV7ee57001[4]), 4,16},
+ {&(_ZTV7ee57001[10]), 10,16},
+ {&(_ZTV7ee57001[15]), 15,16},
+ {&(_tg__ZTV6dd7001__7ee57001[3]), 3,5},
+ {&(_tg__ZTV3aa14bb015cc001__6dd7001__7ee57001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57001[];
+extern VTBL_ENTRY _ZTV7ee57001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57001[];
+static VTBL_ENTRY alt_thunk_names301[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570013barEv,_ZTv0_n16_N7ee570013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570013barEv,_ZThn8_N7ee570013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57001 = { "ee57001", // class name
+ bases_ee57001, 4,
+ &(vtc_ee57001[0]), // expected_vtbl_contents
+ &(vtt_ee57001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57001),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names301,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67001 : dd7001 {
+ int e;
+ virtual void foo(); // _ZN7ee670013fooEv
+ virtual void bar(); // _ZN7ee670013barEv
+ ~ee67001(); // tgen
+ ee67001(); // tgen
+};
+//SIG(1 ee67001) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67001 ::foo(){vfunc_called(this, "_ZN7ee670013fooEv");}
+void ee67001 ::bar(){vfunc_called(this, "_ZN7ee670013barEv");}
+ee67001 ::~ee67001(){ note_dtor("ee67001", this);} // tgen
+ee67001 ::ee67001(){ note_ctor("ee67001", this);} // tgen
+
+static void Test_ee67001()
+{
+ extern Class_Descriptor cd_ee67001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67001, buf);
+ ee67001 *dp, &lv = *(dp=new (buf) ee67001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(16,12), "ee67001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(16,12), "ee67001");
+ check_base_class_offset(lv, (cc001*)(dd7001*), ABISELECT(16,12), "ee67001");
+ check_base_class_offset(lv, (dd7001*), 0, "ee67001");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67001.e");
+ test_class_info(&lv, &cd_ee67001);
+ dp->~ee67001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67001(Test_ee67001, "ee67001", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67001C1Ev();
+extern void _ZN7ee67001D1Ev();
+Name_Map name_map_ee67001[] = {
+ NSPAIR(_ZN7ee67001C1Ev),
+ NSPAIR(_ZN7ee67001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd7001;
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static Base_Class bases_ee67001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7001, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67001[];
+extern void _ZN7ee670013barEv();
+extern void _ZN7ee670013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee670013fooEv,_ZTv0_n12_N7ee670013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670013fooEv,_ZThn12_N7ee670013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67001[0]),
+ (VTBL_ENTRY)&_ZN7ee670013barEv,
+ (VTBL_ENTRY)&_ZN7ee670013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670013fooEv,_ZTv0_n12_N7ee670013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7001__7ee67001[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd7001__7ee67001[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+static VTT_ENTRY vtt_ee67001[] = {
+ {&(_ZTV7ee67001[3]), 3,9},
+ {&(_tg__ZTV6dd7001__7ee67001[3]), 3,5},
+ {&(_tg__ZTV3aa14bb015cc001__6dd7001__7ee67001[3]), 3,4},
+ {&(_ZTV7ee67001[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee67001[];
+extern VTBL_ENTRY _ZTV7ee67001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67001[];
+static VTBL_ENTRY alt_thunk_names302[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn12_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670013fooEv,_ZTv0_n12_N7ee670013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670013fooEv,_ZThn12_N7ee670013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67001 = { "ee67001", // class name
+ bases_ee67001, 4,
+ &(vtc_ee67001[0]), // expected_vtbl_contents
+ &(vtt_ee67001[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67001),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67001),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67001),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names302,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77001 : virtual dd7001 {
+ int e;
+ virtual void foo(); // _ZN7ee770013fooEv
+ virtual void bar(); // _ZN7ee770013barEv
+ ~ee77001(); // tgen
+ ee77001(); // tgen
+};
+//SIG(1 ee77001) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77001 ::foo(){vfunc_called(this, "_ZN7ee770013fooEv");}
+void ee77001 ::bar(){vfunc_called(this, "_ZN7ee770013barEv");}
+ee77001 ::~ee77001(){ note_dtor("ee77001", this);} // tgen
+ee77001 ::ee77001(){ note_ctor("ee77001", this);} // tgen
+
+static void Test_ee77001()
+{
+ extern Class_Descriptor cd_ee77001;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77001, buf);
+ ee77001 *dp, &lv = *(dp=new (buf) ee77001());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77001)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77001)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc001*), ABISELECT(32,16), "ee77001");
+ check_base_class_offset(lv, (bb01*)(cc001*), ABISELECT(32,16), "ee77001");
+ check_base_class_offset(lv, (cc001*)(dd7001*), ABISELECT(32,16), "ee77001");
+ check_base_class_offset(lv, (dd7001*), ABISELECT(16,8), "ee77001");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77001.e");
+ test_class_info(&lv, &cd_ee77001);
+ dp->~ee77001();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77001(Test_ee77001, "ee77001", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77001C1Ev();
+extern void _ZN7ee77001D1Ev();
+Name_Map name_map_ee77001[] = {
+ NSPAIR(_ZN7ee77001C1Ev),
+ NSPAIR(_ZN7ee77001D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc001;
+extern VTBL_ENTRY _ZTI5cc001[];
+extern VTBL_ENTRY _ZTV5cc001[];
+extern Class_Descriptor cd_dd7001;
+extern VTBL_ENTRY _ZTI6dd7001[];
+extern VTBL_ENTRY _ZTV6dd7001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7001[];
+static Base_Class bases_ee77001[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc001, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7001, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77001[];
+extern void _ZN7ee770013fooEv();
+extern void _ZN7ee770013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770013barEv,_ZTv0_n16_N7ee770013barEv)();
+extern void ABISELECT(_ZThn16_N7ee770013barEv,_ZThn8_N7ee770013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770013fooEv,_ZTv0_n20_N7ee770013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770013fooEv,_ZThn8_N7ee770013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770013fooEv,_ZTv0_n12_N7ee770013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770013fooEv,_ZThn16_N7ee770013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77001[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77001[0]),
+ (VTBL_ENTRY)&_ZN7ee770013fooEv,
+ (VTBL_ENTRY)&_ZN7ee770013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770013barEv,_ZTv0_n16_N7ee770013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770013fooEv,_ZTv0_n20_N7ee770013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770013fooEv,_ZTv0_n12_N7ee770013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77001[];
+extern void _ZN6dd70013barEv();
+extern void _ZN6dd70013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7001__7ee77001[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&_ZN6dd70013barEv,
+ (VTBL_ENTRY)&_ZN6dd70013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb015cc001__6dd7001__7ee77001[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7001[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv),
+};
+static VTT_ENTRY vtt_ee77001[] = {
+ {&(_ZTV7ee77001[4]), 4,17},
+ {&(_ZTV7ee77001[11]), 11,17},
+ {&(_ZTV7ee77001[16]), 16,17},
+ {&(_tg__ZTV6dd7001__7ee77001[3]), 3,5},
+ {&(_tg__ZTV3aa14bb015cc001__6dd7001__7ee77001[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77001[];
+extern VTBL_ENTRY _ZTV7ee77001[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77001[];
+static VTBL_ENTRY alt_thunk_names303[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70013fooEv,_ZTv0_n12_N6dd70013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70013fooEv,_ZThn8_N6dd70013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770013fooEv,_ZTv0_n12_N7ee770013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770013fooEv,_ZThn16_N7ee770013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770013fooEv,_ZTv0_n20_N7ee770013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770013fooEv,_ZThn8_N7ee770013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770013barEv,_ZTv0_n16_N7ee770013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770013barEv,_ZThn8_N7ee770013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77001 = { "ee77001", // class name
+ bases_ee77001, 4,
+ &(vtc_ee77001[0]), // expected_vtbl_contents
+ &(vtt_ee77001[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77001),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77001),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77001),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names303,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc101 : virtual bb01 {
+ int c;
+ ~cc101(); // tgen
+ cc101(); // tgen
+};
+//SIG(-1 cc101) C1{ VBC2{ BC3{ v1 Fi} Fi} Fi}
+
+
+cc101 ::~cc101(){ note_dtor("cc101", this);} // tgen
+cc101 ::cc101(){ note_ctor("cc101", this);} // tgen
+
+static void Test_cc101()
+{
+ extern Class_Descriptor cd_cc101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc101, buf);
+ cc101 *dp, &lv = *(dp=new (buf) cc101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,8), "cc101");
+ check_base_class_offset(lv, (bb01*), ABISELECT(16,8), "cc101");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc101.c");
+ test_class_info(&lv, &cd_cc101);
+ dp->~cc101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc101(Test_cc101, "cc101", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc101C1Ev();
+extern void _ZN5cc101D1Ev();
+Name_Map name_map_cc101[] = {
+ NSPAIR(_ZN5cc101C1Ev),
+ NSPAIR(_ZN5cc101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+static Base_Class bases_cc101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc101[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_cc101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc101[];
+static VTT_ENTRY vtt_cc101[] = {
+ {&(_ZTV5cc101[3]), 3,7},
+ {&(_ZTV5cc101[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+Class_Descriptor cd_cc101 = { "cc101", // class name
+ bases_cc101, 2,
+ &(vtc_cc101[0]), // expected_vtbl_contents
+ &(vtt_cc101[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc101),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc101),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0101 : cc101 {
+ int d;
+ ~dd0101(); // tgen
+ dd0101(); // tgen
+};
+//SIG(-1 dd0101) C1{ BC2{ VBC3{ BC4{ v1 Fi} Fi} Fi} Fi}
+
+
+dd0101 ::~dd0101(){ note_dtor("dd0101", this);} // tgen
+dd0101 ::dd0101(){ note_ctor("dd0101", this);} // tgen
+
+static void Test_dd0101()
+{
+ extern Class_Descriptor cd_dd0101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0101, buf);
+ dd0101 *dp, &lv = *(dp=new (buf) dd0101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd0101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(16,12), "dd0101");
+ check_base_class_offset(lv, (cc101*), 0, "dd0101");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0101.d");
+ test_class_info(&lv, &cd_dd0101);
+ dp->~dd0101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0101(Test_dd0101, "dd0101", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0101C1Ev();
+extern void _ZN6dd0101D1Ev();
+Name_Map name_map_dd0101[] = {
+ NSPAIR(_ZN6dd0101C1Ev),
+ NSPAIR(_ZN6dd0101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+static Base_Class bases_dd0101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0101[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd0101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0101[];
+static VTBL_ENTRY _tg__ZTV5cc101__6dd0101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__6dd0101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd0101[] = {
+ {&(_ZTV6dd0101[3]), 3,7},
+ {&(_tg__ZTV5cc101__6dd0101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__6dd0101[3]), 3,4},
+ {&(_ZTV6dd0101[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+Class_Descriptor cd_dd0101 = { "dd0101", // class name
+ bases_dd0101, 3,
+ &(vtc_dd0101[0]), // expected_vtbl_contents
+ &(vtt_dd0101[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0101),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0101),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 ee00101 : dd0101 {
+ int e;
+ ~ee00101(); // tgen
+ ee00101(); // tgen
+};
+//SIG(1 ee00101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} Fi}
+
+
+ee00101 ::~ee00101(){ note_dtor("ee00101", this);} // tgen
+ee00101 ::ee00101(){ note_ctor("ee00101", this);} // tgen
+
+static void Test_ee00101()
+{
+ extern Class_Descriptor cd_ee00101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00101, buf);
+ ee00101 *dp, &lv = *(dp=new (buf) ee00101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee00101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd0101*), ABISELECT(24,16), "ee00101");
+ check_base_class_offset(lv, (cc101*)(dd0101*), 0, "ee00101");
+ check_base_class_offset(lv, (dd0101*), 0, "ee00101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00101.e");
+ test_class_info(&lv, &cd_ee00101);
+ dp->~ee00101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00101(Test_ee00101, "ee00101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00101C1Ev();
+extern void _ZN7ee00101D1Ev();
+Name_Map name_map_ee00101[] = {
+ NSPAIR(_ZN7ee00101C1Ev),
+ NSPAIR(_ZN7ee00101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd0101;
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+static Base_Class bases_ee00101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00101[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee00101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00101[0]),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00101[];
+static VTBL_ENTRY _tg__ZTV6dd0101__7ee00101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd0101__7ee00101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd0101__7ee00101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0101__7ee00101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee00101[] = {
+ {&(_ZTV7ee00101[3]), 3,7},
+ {&(_tg__ZTV6dd0101__7ee00101[3]), 3,3},
+ {&(_tg__ZTV5cc1016dd0101__7ee00101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd0101__7ee00101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0101__7ee00101[3]), 3,4},
+ {&(_ZTV7ee00101[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee00101[];
+extern VTBL_ENTRY _ZTV7ee00101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00101[];
+Class_Descriptor cd_ee00101 = { "ee00101", // class name
+ bases_ee00101, 4,
+ &(vtc_ee00101[0]), // expected_vtbl_contents
+ &(vtt_ee00101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00101),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10101 : virtual dd0101 {
+ int e;
+ ~ee10101(); // tgen
+ ee10101(); // tgen
+};
+//SIG(1 ee10101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} Fi}
+
+
+ee10101 ::~ee10101(){ note_dtor("ee10101", this);} // tgen
+ee10101 ::ee10101(){ note_ctor("ee10101", this);} // tgen
+
+static void Test_ee10101()
+{
+ extern Class_Descriptor cd_ee10101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10101, buf);
+ ee10101 *dp, &lv = *(dp=new (buf) ee10101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee10101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd0101*), ABISELECT(32,20), "ee10101");
+ check_base_class_offset(lv, (cc101*)(dd0101*), ABISELECT(16,8), "ee10101");
+ check_base_class_offset(lv, (dd0101*), ABISELECT(16,8), "ee10101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10101.e");
+ test_class_info(&lv, &cd_ee10101);
+ dp->~ee10101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10101(Test_ee10101, "ee10101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10101C1Ev();
+extern void _ZN7ee10101D1Ev();
+Name_Map name_map_ee10101[] = {
+ NSPAIR(_ZN7ee10101C1Ev),
+ NSPAIR(_ZN7ee10101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd0101;
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+static Base_Class bases_ee10101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0101, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10101[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee10101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10101[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10101[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10101[];
+static VTBL_ENTRY _tg__ZTV6dd0101__7ee10101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd0101__7ee10101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd0101__7ee10101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0101__7ee10101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee10101[] = {
+ {&(_ZTV7ee10101[4]), 4,11},
+ {&(_ZTV7ee10101[7]), 7,11},
+ {&(_ZTV7ee10101[10]), 10,11},
+ {&(_tg__ZTV6dd0101__7ee10101[3]), 3,3},
+ {&(_tg__ZTV5cc1016dd0101__7ee10101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd0101__7ee10101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0101__7ee10101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10101[];
+extern VTBL_ENTRY _ZTV7ee10101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10101[];
+Class_Descriptor cd_ee10101 = { "ee10101", // class name
+ bases_ee10101, 4,
+ &(vtc_ee10101[0]), // expected_vtbl_contents
+ &(vtt_ee10101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10101),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20101 : dd0101 {
+ int e;
+ virtual void foo(); // _ZN7ee201013fooEv
+ ~ee20101(); // tgen
+ ee20101(); // tgen
+};
+//SIG(1 ee20101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee20101 ::foo(){vfunc_called(this, "_ZN7ee201013fooEv");}
+ee20101 ::~ee20101(){ note_dtor("ee20101", this);} // tgen
+ee20101 ::ee20101(){ note_ctor("ee20101", this);} // tgen
+
+static void Test_ee20101()
+{
+ extern Class_Descriptor cd_ee20101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20101, buf);
+ ee20101 *dp, &lv = *(dp=new (buf) ee20101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee20101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd0101*), ABISELECT(24,16), "ee20101");
+ check_base_class_offset(lv, (cc101*)(dd0101*), 0, "ee20101");
+ check_base_class_offset(lv, (dd0101*), 0, "ee20101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20101.e");
+ test_class_info(&lv, &cd_ee20101);
+ dp->~ee20101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20101(Test_ee20101, "ee20101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20101C1Ev();
+extern void _ZN7ee20101D1Ev();
+Name_Map name_map_ee20101[] = {
+ NSPAIR(_ZN7ee20101C1Ev),
+ NSPAIR(_ZN7ee20101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd0101;
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+static Base_Class bases_ee20101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20101[];
+extern void _ZN7ee201013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201013fooEv,_ZTv0_n12_N7ee201013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201013fooEv,_ZThn16_N7ee201013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20101[0]),
+ (VTBL_ENTRY)&_ZN7ee201013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201013fooEv,_ZTv0_n12_N7ee201013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20101[];
+static VTBL_ENTRY _tg__ZTV6dd0101__7ee20101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd0101__7ee20101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd0101__7ee20101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0101__7ee20101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee20101[] = {
+ {&(_ZTV7ee20101[3]), 3,8},
+ {&(_tg__ZTV6dd0101__7ee20101[3]), 3,3},
+ {&(_tg__ZTV5cc1016dd0101__7ee20101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd0101__7ee20101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0101__7ee20101[3]), 3,4},
+ {&(_ZTV7ee20101[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee20101[];
+extern VTBL_ENTRY _ZTV7ee20101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20101[];
+static VTBL_ENTRY alt_thunk_names304[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201013fooEv,_ZTv0_n12_N7ee201013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201013fooEv,_ZThn16_N7ee201013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20101 = { "ee20101", // class name
+ bases_ee20101, 4,
+ &(vtc_ee20101[0]), // expected_vtbl_contents
+ &(vtt_ee20101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20101),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names304,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30101 : virtual dd0101 {
+ int e;
+ virtual void foo(); // _ZN7ee301013fooEv
+ ~ee30101(); // tgen
+ ee30101(); // tgen
+};
+//SIG(1 ee30101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee30101 ::foo(){vfunc_called(this, "_ZN7ee301013fooEv");}
+ee30101 ::~ee30101(){ note_dtor("ee30101", this);} // tgen
+ee30101 ::ee30101(){ note_ctor("ee30101", this);} // tgen
+
+static void Test_ee30101()
+{
+ extern Class_Descriptor cd_ee30101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30101, buf);
+ ee30101 *dp, &lv = *(dp=new (buf) ee30101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee30101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd0101*), ABISELECT(32,20), "ee30101");
+ check_base_class_offset(lv, (cc101*)(dd0101*), ABISELECT(16,8), "ee30101");
+ check_base_class_offset(lv, (dd0101*), ABISELECT(16,8), "ee30101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30101.e");
+ test_class_info(&lv, &cd_ee30101);
+ dp->~ee30101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30101(Test_ee30101, "ee30101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30101C1Ev();
+extern void _ZN7ee30101D1Ev();
+Name_Map name_map_ee30101[] = {
+ NSPAIR(_ZN7ee30101C1Ev),
+ NSPAIR(_ZN7ee30101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd0101;
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+static Base_Class bases_ee30101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30101[];
+extern void _ZN7ee301013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301013fooEv,_ZTv0_n12_N7ee301013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301013fooEv,_ZThn20_N7ee301013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30101[0]),
+ (VTBL_ENTRY)&_ZN7ee301013fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301013fooEv,_ZTv0_n12_N7ee301013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30101[];
+static VTBL_ENTRY _tg__ZTV6dd0101__7ee30101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd0101__7ee30101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd0101__7ee30101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0101__7ee30101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee30101[] = {
+ {&(_ZTV7ee30101[4]), 4,12},
+ {&(_ZTV7ee30101[8]), 8,12},
+ {&(_ZTV7ee30101[11]), 11,12},
+ {&(_tg__ZTV6dd0101__7ee30101[3]), 3,3},
+ {&(_tg__ZTV5cc1016dd0101__7ee30101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd0101__7ee30101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0101__7ee30101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30101[];
+extern VTBL_ENTRY _ZTV7ee30101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30101[];
+static VTBL_ENTRY alt_thunk_names305[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301013fooEv,_ZTv0_n12_N7ee301013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301013fooEv,_ZThn20_N7ee301013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30101 = { "ee30101", // class name
+ bases_ee30101, 4,
+ &(vtc_ee30101[0]), // expected_vtbl_contents
+ &(vtt_ee30101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names305,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40101 : dd0101 {
+ int e;
+ virtual void bar(); // _ZN7ee401013barEv
+ ~ee40101(); // tgen
+ ee40101(); // tgen
+};
+//SIG(1 ee40101) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee40101 ::bar(){vfunc_called(this, "_ZN7ee401013barEv");}
+ee40101 ::~ee40101(){ note_dtor("ee40101", this);} // tgen
+ee40101 ::ee40101(){ note_ctor("ee40101", this);} // tgen
+
+static void Test_ee40101()
+{
+ extern Class_Descriptor cd_ee40101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40101, buf);
+ ee40101 *dp, &lv = *(dp=new (buf) ee40101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee40101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd0101*), ABISELECT(24,16), "ee40101");
+ check_base_class_offset(lv, (cc101*)(dd0101*), 0, "ee40101");
+ check_base_class_offset(lv, (dd0101*), 0, "ee40101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40101.e");
+ test_class_info(&lv, &cd_ee40101);
+ dp->~ee40101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40101(Test_ee40101, "ee40101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40101C1Ev();
+extern void _ZN7ee40101D1Ev();
+Name_Map name_map_ee40101[] = {
+ NSPAIR(_ZN7ee40101C1Ev),
+ NSPAIR(_ZN7ee40101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd0101;
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+static Base_Class bases_ee40101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40101[];
+extern void _ZN7ee401013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee40101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40101[0]),
+ (VTBL_ENTRY)&_ZN7ee401013barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40101[];
+static VTBL_ENTRY _tg__ZTV6dd0101__7ee40101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd0101__7ee40101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd0101__7ee40101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0101__7ee40101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee40101[] = {
+ {&(_ZTV7ee40101[3]), 3,8},
+ {&(_tg__ZTV6dd0101__7ee40101[3]), 3,3},
+ {&(_tg__ZTV5cc1016dd0101__7ee40101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd0101__7ee40101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0101__7ee40101[3]), 3,4},
+ {&(_ZTV7ee40101[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee40101[];
+extern VTBL_ENTRY _ZTV7ee40101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40101[];
+Class_Descriptor cd_ee40101 = { "ee40101", // class name
+ bases_ee40101, 4,
+ &(vtc_ee40101[0]), // expected_vtbl_contents
+ &(vtt_ee40101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40101),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50101 : virtual dd0101 {
+ int e;
+ virtual void bar(); // _ZN7ee501013barEv
+ ~ee50101(); // tgen
+ ee50101(); // tgen
+};
+//SIG(1 ee50101) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee50101 ::bar(){vfunc_called(this, "_ZN7ee501013barEv");}
+ee50101 ::~ee50101(){ note_dtor("ee50101", this);} // tgen
+ee50101 ::ee50101(){ note_ctor("ee50101", this);} // tgen
+
+static void Test_ee50101()
+{
+ extern Class_Descriptor cd_ee50101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50101, buf);
+ ee50101 *dp, &lv = *(dp=new (buf) ee50101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee50101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd0101*), ABISELECT(32,20), "ee50101");
+ check_base_class_offset(lv, (cc101*)(dd0101*), ABISELECT(16,8), "ee50101");
+ check_base_class_offset(lv, (dd0101*), ABISELECT(16,8), "ee50101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50101.e");
+ test_class_info(&lv, &cd_ee50101);
+ dp->~ee50101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50101(Test_ee50101, "ee50101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50101C1Ev();
+extern void _ZN7ee50101D1Ev();
+Name_Map name_map_ee50101[] = {
+ NSPAIR(_ZN7ee50101C1Ev),
+ NSPAIR(_ZN7ee50101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd0101;
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+static Base_Class bases_ee50101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50101[];
+extern void _ZN7ee501013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee50101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50101[0]),
+ (VTBL_ENTRY)&_ZN7ee501013barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50101[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50101[];
+static VTBL_ENTRY _tg__ZTV6dd0101__7ee50101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd0101__7ee50101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd0101__7ee50101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0101__7ee50101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee50101[] = {
+ {&(_ZTV7ee50101[4]), 4,12},
+ {&(_ZTV7ee50101[8]), 8,12},
+ {&(_ZTV7ee50101[11]), 11,12},
+ {&(_tg__ZTV6dd0101__7ee50101[3]), 3,3},
+ {&(_tg__ZTV5cc1016dd0101__7ee50101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd0101__7ee50101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0101__7ee50101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50101[];
+extern VTBL_ENTRY _ZTV7ee50101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50101[];
+Class_Descriptor cd_ee50101 = { "ee50101", // class name
+ bases_ee50101, 4,
+ &(vtc_ee50101[0]), // expected_vtbl_contents
+ &(vtt_ee50101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60101 : dd0101 {
+ int e;
+ virtual void foo(); // _ZN7ee601013fooEv
+ virtual void bar(); // _ZN7ee601013barEv
+ ~ee60101(); // tgen
+ ee60101(); // tgen
+};
+//SIG(1 ee60101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60101 ::foo(){vfunc_called(this, "_ZN7ee601013fooEv");}
+void ee60101 ::bar(){vfunc_called(this, "_ZN7ee601013barEv");}
+ee60101 ::~ee60101(){ note_dtor("ee60101", this);} // tgen
+ee60101 ::ee60101(){ note_ctor("ee60101", this);} // tgen
+
+static void Test_ee60101()
+{
+ extern Class_Descriptor cd_ee60101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60101, buf);
+ ee60101 *dp, &lv = *(dp=new (buf) ee60101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee60101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd0101*), ABISELECT(24,16), "ee60101");
+ check_base_class_offset(lv, (cc101*)(dd0101*), 0, "ee60101");
+ check_base_class_offset(lv, (dd0101*), 0, "ee60101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60101.e");
+ test_class_info(&lv, &cd_ee60101);
+ dp->~ee60101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60101(Test_ee60101, "ee60101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60101C1Ev();
+extern void _ZN7ee60101D1Ev();
+Name_Map name_map_ee60101[] = {
+ NSPAIR(_ZN7ee60101C1Ev),
+ NSPAIR(_ZN7ee60101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd0101;
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+static Base_Class bases_ee60101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60101[];
+extern void _ZN7ee601013fooEv();
+extern void _ZN7ee601013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee601013fooEv,_ZTv0_n12_N7ee601013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601013fooEv,_ZThn16_N7ee601013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60101[0]),
+ (VTBL_ENTRY)&_ZN7ee601013fooEv,
+ (VTBL_ENTRY)&_ZN7ee601013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601013fooEv,_ZTv0_n12_N7ee601013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60101[];
+static VTBL_ENTRY _tg__ZTV6dd0101__7ee60101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd0101__7ee60101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd0101__7ee60101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0101__7ee60101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee60101[] = {
+ {&(_ZTV7ee60101[3]), 3,9},
+ {&(_tg__ZTV6dd0101__7ee60101[3]), 3,3},
+ {&(_tg__ZTV5cc1016dd0101__7ee60101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd0101__7ee60101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0101__7ee60101[3]), 3,4},
+ {&(_ZTV7ee60101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60101[];
+extern VTBL_ENTRY _ZTV7ee60101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60101[];
+static VTBL_ENTRY alt_thunk_names306[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601013fooEv,_ZTv0_n12_N7ee601013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601013fooEv,_ZThn16_N7ee601013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60101 = { "ee60101", // class name
+ bases_ee60101, 4,
+ &(vtc_ee60101[0]), // expected_vtbl_contents
+ &(vtt_ee60101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names306,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70101 : virtual dd0101 {
+ int e;
+ virtual void foo(); // _ZN7ee701013fooEv
+ virtual void bar(); // _ZN7ee701013barEv
+ ~ee70101(); // tgen
+ ee70101(); // tgen
+};
+//SIG(1 ee70101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70101 ::foo(){vfunc_called(this, "_ZN7ee701013fooEv");}
+void ee70101 ::bar(){vfunc_called(this, "_ZN7ee701013barEv");}
+ee70101 ::~ee70101(){ note_dtor("ee70101", this);} // tgen
+ee70101 ::ee70101(){ note_ctor("ee70101", this);} // tgen
+
+static void Test_ee70101()
+{
+ extern Class_Descriptor cd_ee70101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70101, buf);
+ ee70101 *dp, &lv = *(dp=new (buf) ee70101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee70101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd0101*), ABISELECT(32,20), "ee70101");
+ check_base_class_offset(lv, (cc101*)(dd0101*), ABISELECT(16,8), "ee70101");
+ check_base_class_offset(lv, (dd0101*), ABISELECT(16,8), "ee70101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70101.e");
+ test_class_info(&lv, &cd_ee70101);
+ dp->~ee70101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70101(Test_ee70101, "ee70101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70101C1Ev();
+extern void _ZN7ee70101D1Ev();
+Name_Map name_map_ee70101[] = {
+ NSPAIR(_ZN7ee70101C1Ev),
+ NSPAIR(_ZN7ee70101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd0101;
+extern VTBL_ENTRY _ZTI6dd0101[];
+extern VTBL_ENTRY _ZTV6dd0101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0101[];
+static Base_Class bases_ee70101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70101[];
+extern void _ZN7ee701013fooEv();
+extern void _ZN7ee701013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee701013fooEv,_ZTv0_n12_N7ee701013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701013fooEv,_ZThn20_N7ee701013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70101[0]),
+ (VTBL_ENTRY)&_ZN7ee701013fooEv,
+ (VTBL_ENTRY)&_ZN7ee701013barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701013fooEv,_ZTv0_n12_N7ee701013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70101[];
+static VTBL_ENTRY _tg__ZTV6dd0101__7ee70101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd0101__7ee70101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd0101__7ee70101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0101__7ee70101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee70101[] = {
+ {&(_ZTV7ee70101[4]), 4,13},
+ {&(_ZTV7ee70101[9]), 9,13},
+ {&(_ZTV7ee70101[12]), 12,13},
+ {&(_tg__ZTV6dd0101__7ee70101[3]), 3,3},
+ {&(_tg__ZTV5cc1016dd0101__7ee70101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd0101__7ee70101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0101__7ee70101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70101[];
+extern VTBL_ENTRY _ZTV7ee70101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70101[];
+static VTBL_ENTRY alt_thunk_names307[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701013fooEv,_ZTv0_n12_N7ee701013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701013fooEv,_ZThn20_N7ee701013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70101 = { "ee70101", // class name
+ bases_ee70101, 4,
+ &(vtc_ee70101[0]), // expected_vtbl_contents
+ &(vtt_ee70101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names307,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1101 : virtual cc101 {
+ int d;
+ ~dd1101(); // tgen
+ dd1101(); // tgen
+};
+//SIG(-1 dd1101) C1{ VBC2{ VBC3{ BC4{ v1 Fi} Fi} Fi} Fi}
+
+
+dd1101 ::~dd1101(){ note_dtor("dd1101", this);} // tgen
+dd1101 ::dd1101(){ note_ctor("dd1101", this);} // tgen
+
+static void Test_dd1101()
+{
+ extern Class_Descriptor cd_dd1101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1101, buf);
+ dd1101 *dp, &lv = *(dp=new (buf) dd1101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd1101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,16), "dd1101");
+ check_base_class_offset(lv, (cc101*), ABISELECT(16,8), "dd1101");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1101.d");
+ test_class_info(&lv, &cd_dd1101);
+ dp->~dd1101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1101(Test_dd1101, "dd1101", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1101C1Ev();
+extern void _ZN6dd1101D1Ev();
+Name_Map name_map_dd1101[] = {
+ NSPAIR(_ZN6dd1101C1Ev),
+ NSPAIR(_ZN6dd1101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+static Base_Class bases_dd1101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd1101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1101[];
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__6dd1101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd1101[] = {
+ {&(_ZTV6dd1101[4]), 4,11},
+ {&(_ZTV6dd1101[7]), 7,11},
+ {&(_ZTV6dd1101[10]), 10,11},
+ {&(_tg__ZTV5cc101__6dd1101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__6dd1101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+Class_Descriptor cd_dd1101 = { "dd1101", // class name
+ bases_dd1101, 3,
+ &(vtc_dd1101[0]), // expected_vtbl_contents
+ &(vtt_dd1101[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1101),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1101),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 ee01101 : dd1101 {
+ int e;
+ ~ee01101(); // tgen
+ ee01101(); // tgen
+};
+//SIG(1 ee01101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} Fi}
+
+
+ee01101 ::~ee01101(){ note_dtor("ee01101", this);} // tgen
+ee01101 ::ee01101(){ note_ctor("ee01101", this);} // tgen
+
+static void Test_ee01101()
+{
+ extern Class_Descriptor cd_ee01101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01101, buf);
+ ee01101 *dp, &lv = *(dp=new (buf) ee01101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee01101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee01101");
+ check_base_class_offset(lv, (cc101*)(dd1101*), ABISELECT(16,12), "ee01101");
+ check_base_class_offset(lv, (dd1101*), 0, "ee01101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01101.e");
+ test_class_info(&lv, &cd_ee01101);
+ dp->~ee01101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01101(Test_ee01101, "ee01101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01101C1Ev();
+extern void _ZN7ee01101D1Ev();
+Name_Map name_map_ee01101[] = {
+ NSPAIR(_ZN7ee01101C1Ev),
+ NSPAIR(_ZN7ee01101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd1101;
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+static Base_Class bases_ee01101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01101[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee01101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01101[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01101[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01101[];
+static VTBL_ENTRY _tg__ZTV6dd1101__7ee01101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101__7ee01101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1101__7ee01101[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee01101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee01101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01101[] = {
+ {&(_ZTV7ee01101[4]), 4,11},
+ {&(_tg__ZTV6dd1101__7ee01101[4]), 4,4},
+ {&(_tg__ZTV5cc101__6dd1101__7ee01101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd1101__7ee01101[3]), 3,4},
+ {&(_ZTV7ee01101[7]), 7,11},
+ {&(_ZTV7ee01101[10]), 10,11},
+ {&(_tg__ZTV5cc101__7ee01101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee01101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01101[];
+extern VTBL_ENTRY _ZTV7ee01101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01101[];
+Class_Descriptor cd_ee01101 = { "ee01101", // class name
+ bases_ee01101, 4,
+ &(vtc_ee01101[0]), // expected_vtbl_contents
+ &(vtt_ee01101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01101),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11101 : virtual dd1101 {
+ int e;
+ ~ee11101(); // tgen
+ ee11101(); // tgen
+};
+//SIG(1 ee11101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} Fi}
+
+
+ee11101 ::~ee11101(){ note_dtor("ee11101", this);} // tgen
+ee11101 ::ee11101(){ note_ctor("ee11101", this);} // tgen
+
+static void Test_ee11101()
+{
+ extern Class_Descriptor cd_ee11101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11101, buf);
+ ee11101 *dp, &lv = *(dp=new (buf) ee11101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee11101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee11101");
+ check_base_class_offset(lv, (cc101*)(dd1101*), ABISELECT(32,16), "ee11101");
+ check_base_class_offset(lv, (dd1101*), ABISELECT(16,8), "ee11101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11101.e");
+ test_class_info(&lv, &cd_ee11101);
+ dp->~ee11101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11101(Test_ee11101, "ee11101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11101C1Ev();
+extern void _ZN7ee11101D1Ev();
+Name_Map name_map_ee11101[] = {
+ NSPAIR(_ZN7ee11101C1Ev),
+ NSPAIR(_ZN7ee11101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd1101;
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+static Base_Class bases_ee11101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11101[];
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee11101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11101[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11101[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11101[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11101[];
+static VTBL_ENTRY _tg__ZTV6dd1101__7ee11101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101__7ee11101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1101__7ee11101[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee11101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee11101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11101[] = {
+ {&(_ZTV7ee11101[5]), 5,16},
+ {&(_ZTV7ee11101[9]), 9,16},
+ {&(_ZTV7ee11101[12]), 12,16},
+ {&(_ZTV7ee11101[15]), 15,16},
+ {&(_tg__ZTV6dd1101__7ee11101[4]), 4,4},
+ {&(_tg__ZTV5cc101__6dd1101__7ee11101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd1101__7ee11101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee11101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee11101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11101[];
+extern VTBL_ENTRY _ZTV7ee11101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11101[];
+Class_Descriptor cd_ee11101 = { "ee11101", // class name
+ bases_ee11101, 4,
+ &(vtc_ee11101[0]), // expected_vtbl_contents
+ &(vtt_ee11101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11101),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21101 : dd1101 {
+ int e;
+ virtual void foo(); // _ZN7ee211013fooEv
+ ~ee21101(); // tgen
+ ee21101(); // tgen
+};
+//SIG(1 ee21101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee21101 ::foo(){vfunc_called(this, "_ZN7ee211013fooEv");}
+ee21101 ::~ee21101(){ note_dtor("ee21101", this);} // tgen
+ee21101 ::ee21101(){ note_ctor("ee21101", this);} // tgen
+
+static void Test_ee21101()
+{
+ extern Class_Descriptor cd_ee21101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21101, buf);
+ ee21101 *dp, &lv = *(dp=new (buf) ee21101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee21101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee21101");
+ check_base_class_offset(lv, (cc101*)(dd1101*), ABISELECT(16,12), "ee21101");
+ check_base_class_offset(lv, (dd1101*), 0, "ee21101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21101.e");
+ test_class_info(&lv, &cd_ee21101);
+ dp->~ee21101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21101(Test_ee21101, "ee21101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21101C1Ev();
+extern void _ZN7ee21101D1Ev();
+Name_Map name_map_ee21101[] = {
+ NSPAIR(_ZN7ee21101C1Ev),
+ NSPAIR(_ZN7ee21101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd1101;
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+static Base_Class bases_ee21101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21101[];
+extern void _ZN7ee211013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211013fooEv,_ZTv0_n12_N7ee211013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211013fooEv,_ZThn20_N7ee211013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21101[0]),
+ (VTBL_ENTRY)&_ZN7ee211013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211013fooEv,_ZTv0_n12_N7ee211013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21101[];
+static VTBL_ENTRY _tg__ZTV6dd1101__7ee21101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101__7ee21101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1101__7ee21101[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee21101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee21101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21101[] = {
+ {&(_ZTV7ee21101[4]), 4,12},
+ {&(_tg__ZTV6dd1101__7ee21101[4]), 4,4},
+ {&(_tg__ZTV5cc101__6dd1101__7ee21101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd1101__7ee21101[3]), 3,4},
+ {&(_ZTV7ee21101[8]), 8,12},
+ {&(_ZTV7ee21101[11]), 11,12},
+ {&(_tg__ZTV5cc101__7ee21101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee21101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21101[];
+extern VTBL_ENTRY _ZTV7ee21101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21101[];
+static VTBL_ENTRY alt_thunk_names308[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211013fooEv,_ZTv0_n12_N7ee211013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211013fooEv,_ZThn20_N7ee211013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21101 = { "ee21101", // class name
+ bases_ee21101, 4,
+ &(vtc_ee21101[0]), // expected_vtbl_contents
+ &(vtt_ee21101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names308,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31101 : virtual dd1101 {
+ int e;
+ virtual void foo(); // _ZN7ee311013fooEv
+ ~ee31101(); // tgen
+ ee31101(); // tgen
+};
+//SIG(1 ee31101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee31101 ::foo(){vfunc_called(this, "_ZN7ee311013fooEv");}
+ee31101 ::~ee31101(){ note_dtor("ee31101", this);} // tgen
+ee31101 ::ee31101(){ note_ctor("ee31101", this);} // tgen
+
+static void Test_ee31101()
+{
+ extern Class_Descriptor cd_ee31101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31101, buf);
+ ee31101 *dp, &lv = *(dp=new (buf) ee31101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee31101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee31101");
+ check_base_class_offset(lv, (cc101*)(dd1101*), ABISELECT(32,16), "ee31101");
+ check_base_class_offset(lv, (dd1101*), ABISELECT(16,8), "ee31101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31101.e");
+ test_class_info(&lv, &cd_ee31101);
+ dp->~ee31101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31101(Test_ee31101, "ee31101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31101C1Ev();
+extern void _ZN7ee31101D1Ev();
+Name_Map name_map_ee31101[] = {
+ NSPAIR(_ZN7ee31101C1Ev),
+ NSPAIR(_ZN7ee31101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd1101;
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+static Base_Class bases_ee31101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31101[];
+extern void _ZN7ee311013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311013fooEv,_ZTv0_n12_N7ee311013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311013fooEv,_ZThn24_N7ee311013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31101[0]),
+ (VTBL_ENTRY)&_ZN7ee311013fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31101[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31101[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311013fooEv,_ZTv0_n12_N7ee311013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31101[];
+static VTBL_ENTRY _tg__ZTV6dd1101__7ee31101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101__7ee31101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1101__7ee31101[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee31101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee31101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31101[] = {
+ {&(_ZTV7ee31101[5]), 5,17},
+ {&(_ZTV7ee31101[10]), 10,17},
+ {&(_ZTV7ee31101[13]), 13,17},
+ {&(_ZTV7ee31101[16]), 16,17},
+ {&(_tg__ZTV6dd1101__7ee31101[4]), 4,4},
+ {&(_tg__ZTV5cc101__6dd1101__7ee31101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd1101__7ee31101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee31101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee31101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31101[];
+extern VTBL_ENTRY _ZTV7ee31101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31101[];
+static VTBL_ENTRY alt_thunk_names309[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311013fooEv,_ZTv0_n12_N7ee311013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311013fooEv,_ZThn24_N7ee311013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31101 = { "ee31101", // class name
+ bases_ee31101, 4,
+ &(vtc_ee31101[0]), // expected_vtbl_contents
+ &(vtt_ee31101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31101),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names309,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41101 : dd1101 {
+ int e;
+ virtual void bar(); // _ZN7ee411013barEv
+ ~ee41101(); // tgen
+ ee41101(); // tgen
+};
+//SIG(1 ee41101) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee41101 ::bar(){vfunc_called(this, "_ZN7ee411013barEv");}
+ee41101 ::~ee41101(){ note_dtor("ee41101", this);} // tgen
+ee41101 ::ee41101(){ note_ctor("ee41101", this);} // tgen
+
+static void Test_ee41101()
+{
+ extern Class_Descriptor cd_ee41101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41101, buf);
+ ee41101 *dp, &lv = *(dp=new (buf) ee41101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee41101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee41101");
+ check_base_class_offset(lv, (cc101*)(dd1101*), ABISELECT(16,12), "ee41101");
+ check_base_class_offset(lv, (dd1101*), 0, "ee41101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41101.e");
+ test_class_info(&lv, &cd_ee41101);
+ dp->~ee41101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41101(Test_ee41101, "ee41101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41101C1Ev();
+extern void _ZN7ee41101D1Ev();
+Name_Map name_map_ee41101[] = {
+ NSPAIR(_ZN7ee41101C1Ev),
+ NSPAIR(_ZN7ee41101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd1101;
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+static Base_Class bases_ee41101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41101[];
+extern void _ZN7ee411013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee41101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41101[0]),
+ (VTBL_ENTRY)&_ZN7ee411013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41101[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41101[];
+static VTBL_ENTRY _tg__ZTV6dd1101__7ee41101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101__7ee41101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1101__7ee41101[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee41101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee41101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41101[] = {
+ {&(_ZTV7ee41101[4]), 4,12},
+ {&(_tg__ZTV6dd1101__7ee41101[4]), 4,4},
+ {&(_tg__ZTV5cc101__6dd1101__7ee41101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd1101__7ee41101[3]), 3,4},
+ {&(_ZTV7ee41101[8]), 8,12},
+ {&(_ZTV7ee41101[11]), 11,12},
+ {&(_tg__ZTV5cc101__7ee41101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee41101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41101[];
+extern VTBL_ENTRY _ZTV7ee41101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41101[];
+Class_Descriptor cd_ee41101 = { "ee41101", // class name
+ bases_ee41101, 4,
+ &(vtc_ee41101[0]), // expected_vtbl_contents
+ &(vtt_ee41101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51101 : virtual dd1101 {
+ int e;
+ virtual void bar(); // _ZN7ee511013barEv
+ ~ee51101(); // tgen
+ ee51101(); // tgen
+};
+//SIG(1 ee51101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee51101 ::bar(){vfunc_called(this, "_ZN7ee511013barEv");}
+ee51101 ::~ee51101(){ note_dtor("ee51101", this);} // tgen
+ee51101 ::ee51101(){ note_ctor("ee51101", this);} // tgen
+
+static void Test_ee51101()
+{
+ extern Class_Descriptor cd_ee51101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51101, buf);
+ ee51101 *dp, &lv = *(dp=new (buf) ee51101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee51101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee51101");
+ check_base_class_offset(lv, (cc101*)(dd1101*), ABISELECT(32,16), "ee51101");
+ check_base_class_offset(lv, (dd1101*), ABISELECT(16,8), "ee51101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51101.e");
+ test_class_info(&lv, &cd_ee51101);
+ dp->~ee51101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51101(Test_ee51101, "ee51101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51101C1Ev();
+extern void _ZN7ee51101D1Ev();
+Name_Map name_map_ee51101[] = {
+ NSPAIR(_ZN7ee51101C1Ev),
+ NSPAIR(_ZN7ee51101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd1101;
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+static Base_Class bases_ee51101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51101[];
+extern void _ZN7ee511013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee51101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51101[0]),
+ (VTBL_ENTRY)&_ZN7ee511013barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51101[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51101[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51101[];
+static VTBL_ENTRY _tg__ZTV6dd1101__7ee51101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101__7ee51101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1101__7ee51101[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee51101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee51101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51101[] = {
+ {&(_ZTV7ee51101[5]), 5,17},
+ {&(_ZTV7ee51101[10]), 10,17},
+ {&(_ZTV7ee51101[13]), 13,17},
+ {&(_ZTV7ee51101[16]), 16,17},
+ {&(_tg__ZTV6dd1101__7ee51101[4]), 4,4},
+ {&(_tg__ZTV5cc101__6dd1101__7ee51101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd1101__7ee51101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee51101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee51101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51101[];
+extern VTBL_ENTRY _ZTV7ee51101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51101[];
+Class_Descriptor cd_ee51101 = { "ee51101", // class name
+ bases_ee51101, 4,
+ &(vtc_ee51101[0]), // expected_vtbl_contents
+ &(vtt_ee51101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51101),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61101 : dd1101 {
+ int e;
+ virtual void foo(); // _ZN7ee611013fooEv
+ virtual void bar(); // _ZN7ee611013barEv
+ ~ee61101(); // tgen
+ ee61101(); // tgen
+};
+//SIG(1 ee61101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61101 ::foo(){vfunc_called(this, "_ZN7ee611013fooEv");}
+void ee61101 ::bar(){vfunc_called(this, "_ZN7ee611013barEv");}
+ee61101 ::~ee61101(){ note_dtor("ee61101", this);} // tgen
+ee61101 ::ee61101(){ note_ctor("ee61101", this);} // tgen
+
+static void Test_ee61101()
+{
+ extern Class_Descriptor cd_ee61101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61101, buf);
+ ee61101 *dp, &lv = *(dp=new (buf) ee61101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee61101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee61101");
+ check_base_class_offset(lv, (cc101*)(dd1101*), ABISELECT(16,12), "ee61101");
+ check_base_class_offset(lv, (dd1101*), 0, "ee61101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61101.e");
+ test_class_info(&lv, &cd_ee61101);
+ dp->~ee61101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61101(Test_ee61101, "ee61101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61101C1Ev();
+extern void _ZN7ee61101D1Ev();
+Name_Map name_map_ee61101[] = {
+ NSPAIR(_ZN7ee61101C1Ev),
+ NSPAIR(_ZN7ee61101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd1101;
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+static Base_Class bases_ee61101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61101[];
+extern void _ZN7ee611013fooEv();
+extern void _ZN7ee611013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee611013fooEv,_ZTv0_n12_N7ee611013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611013fooEv,_ZThn20_N7ee611013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61101[0]),
+ (VTBL_ENTRY)&_ZN7ee611013fooEv,
+ (VTBL_ENTRY)&_ZN7ee611013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611013fooEv,_ZTv0_n12_N7ee611013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61101[];
+static VTBL_ENTRY _tg__ZTV6dd1101__7ee61101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101__7ee61101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1101__7ee61101[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee61101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee61101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61101[] = {
+ {&(_ZTV7ee61101[4]), 4,13},
+ {&(_tg__ZTV6dd1101__7ee61101[4]), 4,4},
+ {&(_tg__ZTV5cc101__6dd1101__7ee61101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd1101__7ee61101[3]), 3,4},
+ {&(_ZTV7ee61101[9]), 9,13},
+ {&(_ZTV7ee61101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee61101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee61101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61101[];
+extern VTBL_ENTRY _ZTV7ee61101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61101[];
+static VTBL_ENTRY alt_thunk_names310[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611013fooEv,_ZTv0_n12_N7ee611013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611013fooEv,_ZThn20_N7ee611013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61101 = { "ee61101", // class name
+ bases_ee61101, 4,
+ &(vtc_ee61101[0]), // expected_vtbl_contents
+ &(vtt_ee61101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names310,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71101 : virtual dd1101 {
+ int e;
+ virtual void foo(); // _ZN7ee711013fooEv
+ virtual void bar(); // _ZN7ee711013barEv
+ ~ee71101(); // tgen
+ ee71101(); // tgen
+};
+//SIG(1 ee71101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71101 ::foo(){vfunc_called(this, "_ZN7ee711013fooEv");}
+void ee71101 ::bar(){vfunc_called(this, "_ZN7ee711013barEv");}
+ee71101 ::~ee71101(){ note_dtor("ee71101", this);} // tgen
+ee71101 ::ee71101(){ note_ctor("ee71101", this);} // tgen
+
+static void Test_ee71101()
+{
+ extern Class_Descriptor cd_ee71101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71101, buf);
+ ee71101 *dp, &lv = *(dp=new (buf) ee71101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee71101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee71101");
+ check_base_class_offset(lv, (cc101*)(dd1101*), ABISELECT(32,16), "ee71101");
+ check_base_class_offset(lv, (dd1101*), ABISELECT(16,8), "ee71101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71101.e");
+ test_class_info(&lv, &cd_ee71101);
+ dp->~ee71101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71101(Test_ee71101, "ee71101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71101C1Ev();
+extern void _ZN7ee71101D1Ev();
+Name_Map name_map_ee71101[] = {
+ NSPAIR(_ZN7ee71101C1Ev),
+ NSPAIR(_ZN7ee71101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd1101;
+extern VTBL_ENTRY _ZTI6dd1101[];
+extern VTBL_ENTRY _ZTV6dd1101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1101[];
+static Base_Class bases_ee71101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1101, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71101[];
+extern void _ZN7ee711013fooEv();
+extern void _ZN7ee711013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee711013fooEv,_ZTv0_n12_N7ee711013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711013fooEv,_ZThn24_N7ee711013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71101[0]),
+ (VTBL_ENTRY)&_ZN7ee711013fooEv,
+ (VTBL_ENTRY)&_ZN7ee711013barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71101[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71101[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711013fooEv,_ZTv0_n12_N7ee711013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71101[];
+static VTBL_ENTRY _tg__ZTV6dd1101__7ee71101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd1101__7ee71101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1101__7ee71101[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee71101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee71101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71101[] = {
+ {&(_ZTV7ee71101[5]), 5,18},
+ {&(_ZTV7ee71101[11]), 11,18},
+ {&(_ZTV7ee71101[14]), 14,18},
+ {&(_ZTV7ee71101[17]), 17,18},
+ {&(_tg__ZTV6dd1101__7ee71101[4]), 4,4},
+ {&(_tg__ZTV5cc101__6dd1101__7ee71101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd1101__7ee71101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee71101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee71101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71101[];
+extern VTBL_ENTRY _ZTV7ee71101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71101[];
+static VTBL_ENTRY alt_thunk_names311[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711013fooEv,_ZTv0_n12_N7ee711013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711013fooEv,_ZThn24_N7ee711013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71101 = { "ee71101", // class name
+ bases_ee71101, 4,
+ &(vtc_ee71101[0]), // expected_vtbl_contents
+ &(vtt_ee71101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71101),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names311,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2101 : cc101 {
+ int d;
+ virtual void foo(); // _ZN6dd21013fooEv
+ ~dd2101(); // tgen
+ dd2101(); // tgen
+};
+//SIG(-1 dd2101) C1{ BC2{ VBC3{ BC4{ v1 Fi} Fi} Fi} v1 Fi}
+
+
+void dd2101 ::foo(){vfunc_called(this, "_ZN6dd21013fooEv");}
+dd2101 ::~dd2101(){ note_dtor("dd2101", this);} // tgen
+dd2101 ::dd2101(){ note_ctor("dd2101", this);} // tgen
+
+static void Test_dd2101()
+{
+ extern Class_Descriptor cd_dd2101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2101, buf);
+ dd2101 *dp, &lv = *(dp=new (buf) dd2101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd2101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(16,12), "dd2101");
+ check_base_class_offset(lv, (cc101*), 0, "dd2101");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2101.d");
+ test_class_info(&lv, &cd_dd2101);
+ dp->~dd2101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2101(Test_dd2101, "dd2101", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2101C1Ev();
+extern void _ZN6dd2101D1Ev();
+Name_Map name_map_dd2101[] = {
+ NSPAIR(_ZN6dd2101C1Ev),
+ NSPAIR(_ZN6dd2101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+static Base_Class bases_dd2101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2101[];
+extern void _ZN6dd21013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2101[];
+static VTBL_ENTRY _tg__ZTV5cc101__6dd2101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__6dd2101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd2101[] = {
+ {&(_ZTV6dd2101[3]), 3,8},
+ {&(_tg__ZTV5cc101__6dd2101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__6dd2101[3]), 3,4},
+ {&(_ZTV6dd2101[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static VTBL_ENTRY alt_thunk_names312[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2101 = { "dd2101", // class name
+ bases_dd2101, 3,
+ &(vtc_dd2101[0]), // expected_vtbl_contents
+ &(vtt_dd2101[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2101),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2101),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names312,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02101 : dd2101 {
+ int e;
+ ~ee02101(); // tgen
+ ee02101(); // tgen
+};
+//SIG(1 ee02101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee02101 ::~ee02101(){ note_dtor("ee02101", this);} // tgen
+ee02101 ::ee02101(){ note_ctor("ee02101", this);} // tgen
+
+static void Test_ee02101()
+{
+ extern Class_Descriptor cd_ee02101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02101, buf);
+ ee02101 *dp, &lv = *(dp=new (buf) ee02101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee02101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd2101*), ABISELECT(24,16), "ee02101");
+ check_base_class_offset(lv, (cc101*)(dd2101*), 0, "ee02101");
+ check_base_class_offset(lv, (dd2101*), 0, "ee02101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02101.e");
+ test_class_info(&lv, &cd_ee02101);
+ dp->~ee02101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02101(Test_ee02101, "ee02101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02101C1Ev();
+extern void _ZN7ee02101D1Ev();
+Name_Map name_map_ee02101[] = {
+ NSPAIR(_ZN7ee02101C1Ev),
+ NSPAIR(_ZN7ee02101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd2101;
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static Base_Class bases_ee02101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02101[];
+extern void _ZN6dd21013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02101[];
+extern void _ZN6dd21013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2101__7ee02101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd2101__7ee02101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd2101__7ee02101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2101__7ee02101[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+static VTT_ENTRY vtt_ee02101[] = {
+ {&(_ZTV7ee02101[3]), 3,8},
+ {&(_tg__ZTV6dd2101__7ee02101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd2101__7ee02101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd2101__7ee02101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2101__7ee02101[3]), 3,4},
+ {&(_ZTV7ee02101[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee02101[];
+extern VTBL_ENTRY _ZTV7ee02101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02101[];
+static VTBL_ENTRY alt_thunk_names313[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02101 = { "ee02101", // class name
+ bases_ee02101, 4,
+ &(vtc_ee02101[0]), // expected_vtbl_contents
+ &(vtt_ee02101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02101),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names313,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12101 : virtual dd2101 {
+ int e;
+ ~ee12101(); // tgen
+ ee12101(); // tgen
+};
+//SIG(1 ee12101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee12101 ::~ee12101(){ note_dtor("ee12101", this);} // tgen
+ee12101 ::ee12101(){ note_ctor("ee12101", this);} // tgen
+
+static void Test_ee12101()
+{
+ extern Class_Descriptor cd_ee12101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12101, buf);
+ ee12101 *dp, &lv = *(dp=new (buf) ee12101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee12101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd2101*), ABISELECT(32,20), "ee12101");
+ check_base_class_offset(lv, (cc101*)(dd2101*), ABISELECT(16,8), "ee12101");
+ check_base_class_offset(lv, (dd2101*), ABISELECT(16,8), "ee12101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12101.e");
+ test_class_info(&lv, &cd_ee12101);
+ dp->~ee12101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12101(Test_ee12101, "ee12101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12101C1Ev();
+extern void _ZN7ee12101D1Ev();
+Name_Map name_map_ee12101[] = {
+ NSPAIR(_ZN7ee12101C1Ev),
+ NSPAIR(_ZN7ee12101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd2101;
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static Base_Class bases_ee12101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2101, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12101[];
+extern void _ZN6dd21013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12101[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12101[];
+extern void _ZN6dd21013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2101__7ee12101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd2101__7ee12101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd2101__7ee12101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2101__7ee12101[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+static VTT_ENTRY vtt_ee12101[] = {
+ {&(_ZTV7ee12101[4]), 4,13},
+ {&(_ZTV7ee12101[8]), 8,13},
+ {&(_ZTV7ee12101[12]), 12,13},
+ {&(_tg__ZTV6dd2101__7ee12101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd2101__7ee12101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd2101__7ee12101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2101__7ee12101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12101[];
+extern VTBL_ENTRY _ZTV7ee12101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12101[];
+static VTBL_ENTRY alt_thunk_names314[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12101 = { "ee12101", // class name
+ bases_ee12101, 4,
+ &(vtc_ee12101[0]), // expected_vtbl_contents
+ &(vtt_ee12101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names314,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22101 : dd2101 {
+ int e;
+ virtual void foo(); // _ZN7ee221013fooEv
+ ~ee22101(); // tgen
+ ee22101(); // tgen
+};
+//SIG(1 ee22101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22101 ::foo(){vfunc_called(this, "_ZN7ee221013fooEv");}
+ee22101 ::~ee22101(){ note_dtor("ee22101", this);} // tgen
+ee22101 ::ee22101(){ note_ctor("ee22101", this);} // tgen
+
+static void Test_ee22101()
+{
+ extern Class_Descriptor cd_ee22101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22101, buf);
+ ee22101 *dp, &lv = *(dp=new (buf) ee22101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee22101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd2101*), ABISELECT(24,16), "ee22101");
+ check_base_class_offset(lv, (cc101*)(dd2101*), 0, "ee22101");
+ check_base_class_offset(lv, (dd2101*), 0, "ee22101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22101.e");
+ test_class_info(&lv, &cd_ee22101);
+ dp->~ee22101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22101(Test_ee22101, "ee22101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22101C1Ev();
+extern void _ZN7ee22101D1Ev();
+Name_Map name_map_ee22101[] = {
+ NSPAIR(_ZN7ee22101C1Ev),
+ NSPAIR(_ZN7ee22101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd2101;
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static Base_Class bases_ee22101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22101[];
+extern void _ZN7ee221013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221013fooEv,_ZTv0_n12_N7ee221013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221013fooEv,_ZThn16_N7ee221013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22101[0]),
+ (VTBL_ENTRY)&_ZN7ee221013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221013fooEv,_ZTv0_n12_N7ee221013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22101[];
+extern void _ZN6dd21013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2101__7ee22101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd2101__7ee22101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd2101__7ee22101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2101__7ee22101[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+static VTT_ENTRY vtt_ee22101[] = {
+ {&(_ZTV7ee22101[3]), 3,8},
+ {&(_tg__ZTV6dd2101__7ee22101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd2101__7ee22101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd2101__7ee22101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2101__7ee22101[3]), 3,4},
+ {&(_ZTV7ee22101[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee22101[];
+extern VTBL_ENTRY _ZTV7ee22101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22101[];
+static VTBL_ENTRY alt_thunk_names315[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221013fooEv,_ZTv0_n12_N7ee221013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221013fooEv,_ZThn16_N7ee221013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22101 = { "ee22101", // class name
+ bases_ee22101, 4,
+ &(vtc_ee22101[0]), // expected_vtbl_contents
+ &(vtt_ee22101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22101),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names315,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32101 : virtual dd2101 {
+ int e;
+ virtual void foo(); // _ZN7ee321013fooEv
+ ~ee32101(); // tgen
+ ee32101(); // tgen
+};
+//SIG(1 ee32101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32101 ::foo(){vfunc_called(this, "_ZN7ee321013fooEv");}
+ee32101 ::~ee32101(){ note_dtor("ee32101", this);} // tgen
+ee32101 ::ee32101(){ note_ctor("ee32101", this);} // tgen
+
+static void Test_ee32101()
+{
+ extern Class_Descriptor cd_ee32101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32101, buf);
+ ee32101 *dp, &lv = *(dp=new (buf) ee32101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee32101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd2101*), ABISELECT(32,20), "ee32101");
+ check_base_class_offset(lv, (cc101*)(dd2101*), ABISELECT(16,8), "ee32101");
+ check_base_class_offset(lv, (dd2101*), ABISELECT(16,8), "ee32101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32101.e");
+ test_class_info(&lv, &cd_ee32101);
+ dp->~ee32101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32101(Test_ee32101, "ee32101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32101C1Ev();
+extern void _ZN7ee32101D1Ev();
+Name_Map name_map_ee32101[] = {
+ NSPAIR(_ZN7ee32101C1Ev),
+ NSPAIR(_ZN7ee32101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd2101;
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static Base_Class bases_ee32101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32101[];
+extern void _ZN7ee321013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321013fooEv,_ZTv0_n16_N7ee321013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321013fooEv,_ZThn8_N7ee321013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee321013fooEv,_ZTv0_n12_N7ee321013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321013fooEv,_ZThn20_N7ee321013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32101[0]),
+ (VTBL_ENTRY)&_ZN7ee321013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321013fooEv,_ZTv0_n16_N7ee321013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321013fooEv,_ZTv0_n12_N7ee321013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32101[];
+extern void _ZN6dd21013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2101__7ee32101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd2101__7ee32101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd2101__7ee32101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2101__7ee32101[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+static VTT_ENTRY vtt_ee32101[] = {
+ {&(_ZTV7ee32101[4]), 4,14},
+ {&(_ZTV7ee32101[9]), 9,14},
+ {&(_ZTV7ee32101[13]), 13,14},
+ {&(_tg__ZTV6dd2101__7ee32101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd2101__7ee32101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd2101__7ee32101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2101__7ee32101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32101[];
+extern VTBL_ENTRY _ZTV7ee32101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32101[];
+static VTBL_ENTRY alt_thunk_names316[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321013fooEv,_ZTv0_n12_N7ee321013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321013fooEv,_ZThn20_N7ee321013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321013fooEv,_ZTv0_n16_N7ee321013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321013fooEv,_ZThn8_N7ee321013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32101 = { "ee32101", // class name
+ bases_ee32101, 4,
+ &(vtc_ee32101[0]), // expected_vtbl_contents
+ &(vtt_ee32101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32101),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names316,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42101 : dd2101 {
+ int e;
+ virtual void bar(); // _ZN7ee421013barEv
+ ~ee42101(); // tgen
+ ee42101(); // tgen
+};
+//SIG(1 ee42101) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42101 ::bar(){vfunc_called(this, "_ZN7ee421013barEv");}
+ee42101 ::~ee42101(){ note_dtor("ee42101", this);} // tgen
+ee42101 ::ee42101(){ note_ctor("ee42101", this);} // tgen
+
+static void Test_ee42101()
+{
+ extern Class_Descriptor cd_ee42101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42101, buf);
+ ee42101 *dp, &lv = *(dp=new (buf) ee42101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee42101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd2101*), ABISELECT(24,16), "ee42101");
+ check_base_class_offset(lv, (cc101*)(dd2101*), 0, "ee42101");
+ check_base_class_offset(lv, (dd2101*), 0, "ee42101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42101.e");
+ test_class_info(&lv, &cd_ee42101);
+ dp->~ee42101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42101(Test_ee42101, "ee42101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42101C1Ev();
+extern void _ZN7ee42101D1Ev();
+Name_Map name_map_ee42101[] = {
+ NSPAIR(_ZN7ee42101C1Ev),
+ NSPAIR(_ZN7ee42101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd2101;
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static Base_Class bases_ee42101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42101[];
+extern void _ZN6dd21013fooEv();
+extern void _ZN7ee421013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+ (VTBL_ENTRY)&_ZN7ee421013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42101[];
+extern void _ZN6dd21013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2101__7ee42101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd2101__7ee42101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd2101__7ee42101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2101__7ee42101[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+static VTT_ENTRY vtt_ee42101[] = {
+ {&(_ZTV7ee42101[3]), 3,9},
+ {&(_tg__ZTV6dd2101__7ee42101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd2101__7ee42101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd2101__7ee42101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2101__7ee42101[3]), 3,4},
+ {&(_ZTV7ee42101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42101[];
+extern VTBL_ENTRY _ZTV7ee42101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42101[];
+static VTBL_ENTRY alt_thunk_names317[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42101 = { "ee42101", // class name
+ bases_ee42101, 4,
+ &(vtc_ee42101[0]), // expected_vtbl_contents
+ &(vtt_ee42101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names317,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52101 : virtual dd2101 {
+ int e;
+ virtual void bar(); // _ZN7ee521013barEv
+ ~ee52101(); // tgen
+ ee52101(); // tgen
+};
+//SIG(1 ee52101) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52101 ::bar(){vfunc_called(this, "_ZN7ee521013barEv");}
+ee52101 ::~ee52101(){ note_dtor("ee52101", this);} // tgen
+ee52101 ::ee52101(){ note_ctor("ee52101", this);} // tgen
+
+static void Test_ee52101()
+{
+ extern Class_Descriptor cd_ee52101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52101, buf);
+ ee52101 *dp, &lv = *(dp=new (buf) ee52101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee52101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd2101*), ABISELECT(32,20), "ee52101");
+ check_base_class_offset(lv, (cc101*)(dd2101*), ABISELECT(16,8), "ee52101");
+ check_base_class_offset(lv, (dd2101*), ABISELECT(16,8), "ee52101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52101.e");
+ test_class_info(&lv, &cd_ee52101);
+ dp->~ee52101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52101(Test_ee52101, "ee52101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52101C1Ev();
+extern void _ZN7ee52101D1Ev();
+Name_Map name_map_ee52101[] = {
+ NSPAIR(_ZN7ee52101C1Ev),
+ NSPAIR(_ZN7ee52101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd2101;
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static Base_Class bases_ee52101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52101[];
+extern void _ZN7ee521013barEv();
+extern void _ZN6dd21013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52101[0]),
+ (VTBL_ENTRY)&_ZN7ee521013barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52101[];
+extern void _ZN6dd21013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2101__7ee52101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd2101__7ee52101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd2101__7ee52101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2101__7ee52101[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+static VTT_ENTRY vtt_ee52101[] = {
+ {&(_ZTV7ee52101[4]), 4,14},
+ {&(_ZTV7ee52101[9]), 9,14},
+ {&(_ZTV7ee52101[13]), 13,14},
+ {&(_tg__ZTV6dd2101__7ee52101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd2101__7ee52101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd2101__7ee52101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2101__7ee52101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52101[];
+extern VTBL_ENTRY _ZTV7ee52101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52101[];
+static VTBL_ENTRY alt_thunk_names318[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52101 = { "ee52101", // class name
+ bases_ee52101, 4,
+ &(vtc_ee52101[0]), // expected_vtbl_contents
+ &(vtt_ee52101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52101),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names318,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62101 : dd2101 {
+ int e;
+ virtual void foo(); // _ZN7ee621013fooEv
+ virtual void bar(); // _ZN7ee621013barEv
+ ~ee62101(); // tgen
+ ee62101(); // tgen
+};
+//SIG(1 ee62101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62101 ::foo(){vfunc_called(this, "_ZN7ee621013fooEv");}
+void ee62101 ::bar(){vfunc_called(this, "_ZN7ee621013barEv");}
+ee62101 ::~ee62101(){ note_dtor("ee62101", this);} // tgen
+ee62101 ::ee62101(){ note_ctor("ee62101", this);} // tgen
+
+static void Test_ee62101()
+{
+ extern Class_Descriptor cd_ee62101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62101, buf);
+ ee62101 *dp, &lv = *(dp=new (buf) ee62101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee62101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd2101*), ABISELECT(24,16), "ee62101");
+ check_base_class_offset(lv, (cc101*)(dd2101*), 0, "ee62101");
+ check_base_class_offset(lv, (dd2101*), 0, "ee62101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62101.e");
+ test_class_info(&lv, &cd_ee62101);
+ dp->~ee62101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62101(Test_ee62101, "ee62101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62101C1Ev();
+extern void _ZN7ee62101D1Ev();
+Name_Map name_map_ee62101[] = {
+ NSPAIR(_ZN7ee62101C1Ev),
+ NSPAIR(_ZN7ee62101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd2101;
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static Base_Class bases_ee62101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62101[];
+extern void _ZN7ee621013fooEv();
+extern void _ZN7ee621013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee621013fooEv,_ZTv0_n12_N7ee621013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621013fooEv,_ZThn16_N7ee621013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62101[0]),
+ (VTBL_ENTRY)&_ZN7ee621013fooEv,
+ (VTBL_ENTRY)&_ZN7ee621013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621013fooEv,_ZTv0_n12_N7ee621013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62101[];
+extern void _ZN6dd21013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2101__7ee62101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd2101__7ee62101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd2101__7ee62101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2101__7ee62101[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+static VTT_ENTRY vtt_ee62101[] = {
+ {&(_ZTV7ee62101[3]), 3,9},
+ {&(_tg__ZTV6dd2101__7ee62101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd2101__7ee62101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd2101__7ee62101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2101__7ee62101[3]), 3,4},
+ {&(_ZTV7ee62101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62101[];
+extern VTBL_ENTRY _ZTV7ee62101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62101[];
+static VTBL_ENTRY alt_thunk_names319[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21013fooEv,_ZThn16_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621013fooEv,_ZTv0_n12_N7ee621013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621013fooEv,_ZThn16_N7ee621013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62101 = { "ee62101", // class name
+ bases_ee62101, 4,
+ &(vtc_ee62101[0]), // expected_vtbl_contents
+ &(vtt_ee62101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names319,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72101 : virtual dd2101 {
+ int e;
+ virtual void foo(); // _ZN7ee721013fooEv
+ virtual void bar(); // _ZN7ee721013barEv
+ ~ee72101(); // tgen
+ ee72101(); // tgen
+};
+//SIG(1 ee72101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72101 ::foo(){vfunc_called(this, "_ZN7ee721013fooEv");}
+void ee72101 ::bar(){vfunc_called(this, "_ZN7ee721013barEv");}
+ee72101 ::~ee72101(){ note_dtor("ee72101", this);} // tgen
+ee72101 ::ee72101(){ note_ctor("ee72101", this);} // tgen
+
+static void Test_ee72101()
+{
+ extern Class_Descriptor cd_ee72101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72101, buf);
+ ee72101 *dp, &lv = *(dp=new (buf) ee72101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee72101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd2101*), ABISELECT(32,20), "ee72101");
+ check_base_class_offset(lv, (cc101*)(dd2101*), ABISELECT(16,8), "ee72101");
+ check_base_class_offset(lv, (dd2101*), ABISELECT(16,8), "ee72101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72101.e");
+ test_class_info(&lv, &cd_ee72101);
+ dp->~ee72101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72101(Test_ee72101, "ee72101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72101C1Ev();
+extern void _ZN7ee72101D1Ev();
+Name_Map name_map_ee72101[] = {
+ NSPAIR(_ZN7ee72101C1Ev),
+ NSPAIR(_ZN7ee72101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd2101;
+extern VTBL_ENTRY _ZTI6dd2101[];
+extern VTBL_ENTRY _ZTV6dd2101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2101[];
+static Base_Class bases_ee72101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72101[];
+extern void _ZN7ee721013fooEv();
+extern void _ZN7ee721013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721013fooEv,_ZTv0_n16_N7ee721013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721013fooEv,_ZThn8_N7ee721013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721013fooEv,_ZTv0_n12_N7ee721013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721013fooEv,_ZThn20_N7ee721013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72101[0]),
+ (VTBL_ENTRY)&_ZN7ee721013fooEv,
+ (VTBL_ENTRY)&_ZN7ee721013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721013fooEv,_ZTv0_n16_N7ee721013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721013fooEv,_ZTv0_n12_N7ee721013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72101[];
+extern void _ZN6dd21013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2101__7ee72101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&_ZN6dd21013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd2101__7ee72101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd2101__7ee72101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2101__7ee72101[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv),
+};
+static VTT_ENTRY vtt_ee72101[] = {
+ {&(_ZTV7ee72101[4]), 4,15},
+ {&(_ZTV7ee72101[10]), 10,15},
+ {&(_ZTV7ee72101[14]), 14,15},
+ {&(_tg__ZTV6dd2101__7ee72101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd2101__7ee72101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd2101__7ee72101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2101__7ee72101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72101[];
+extern VTBL_ENTRY _ZTV7ee72101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72101[];
+static VTBL_ENTRY alt_thunk_names320[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21013fooEv,_ZTv0_n12_N6dd21013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21013fooEv,_ZThn12_N6dd21013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721013fooEv,_ZTv0_n12_N7ee721013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721013fooEv,_ZThn20_N7ee721013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721013fooEv,_ZTv0_n16_N7ee721013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721013fooEv,_ZThn8_N7ee721013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72101 = { "ee72101", // class name
+ bases_ee72101, 4,
+ &(vtc_ee72101[0]), // expected_vtbl_contents
+ &(vtt_ee72101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72101),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names320,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3101 : virtual cc101 {
+ int d;
+ virtual void foo(); // _ZN6dd31013fooEv
+ ~dd3101(); // tgen
+ dd3101(); // tgen
+};
+//SIG(-1 dd3101) C1{ VBC2{ VBC3{ BC4{ v1 Fi} Fi} Fi} v1 Fi}
+
+
+void dd3101 ::foo(){vfunc_called(this, "_ZN6dd31013fooEv");}
+dd3101 ::~dd3101(){ note_dtor("dd3101", this);} // tgen
+dd3101 ::dd3101(){ note_ctor("dd3101", this);} // tgen
+
+static void Test_dd3101()
+{
+ extern Class_Descriptor cd_dd3101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3101, buf);
+ dd3101 *dp, &lv = *(dp=new (buf) dd3101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd3101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,16), "dd3101");
+ check_base_class_offset(lv, (cc101*), ABISELECT(16,8), "dd3101");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3101.d");
+ test_class_info(&lv, &cd_dd3101);
+ dp->~dd3101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3101(Test_dd3101, "dd3101", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3101C1Ev();
+extern void _ZN6dd3101D1Ev();
+Name_Map name_map_dd3101[] = {
+ NSPAIR(_ZN6dd3101C1Ev),
+ NSPAIR(_ZN6dd3101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+static Base_Class bases_dd3101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern void _ZN6dd31013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3101[];
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__6dd3101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd3101[] = {
+ {&(_ZTV6dd3101[4]), 4,12},
+ {&(_ZTV6dd3101[8]), 8,12},
+ {&(_ZTV6dd3101[11]), 11,12},
+ {&(_tg__ZTV5cc101__6dd3101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__6dd3101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static VTBL_ENTRY alt_thunk_names321[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3101 = { "dd3101", // class name
+ bases_dd3101, 3,
+ &(vtc_dd3101[0]), // expected_vtbl_contents
+ &(vtt_dd3101[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3101),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names321,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03101 : dd3101 {
+ int e;
+ ~ee03101(); // tgen
+ ee03101(); // tgen
+};
+//SIG(1 ee03101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee03101 ::~ee03101(){ note_dtor("ee03101", this);} // tgen
+ee03101 ::ee03101(){ note_ctor("ee03101", this);} // tgen
+
+static void Test_ee03101()
+{
+ extern Class_Descriptor cd_ee03101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03101, buf);
+ ee03101 *dp, &lv = *(dp=new (buf) ee03101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee03101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee03101");
+ check_base_class_offset(lv, (cc101*)(dd3101*), ABISELECT(16,12), "ee03101");
+ check_base_class_offset(lv, (dd3101*), 0, "ee03101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03101.e");
+ test_class_info(&lv, &cd_ee03101);
+ dp->~ee03101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03101(Test_ee03101, "ee03101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03101C1Ev();
+extern void _ZN7ee03101D1Ev();
+Name_Map name_map_ee03101[] = {
+ NSPAIR(_ZN7ee03101C1Ev),
+ NSPAIR(_ZN7ee03101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd3101;
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static Base_Class bases_ee03101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03101[];
+extern void _ZN6dd31013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03101[];
+extern void _ZN6dd31013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3101__7ee03101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101__7ee03101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3101__7ee03101[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee03101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee03101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee03101[] = {
+ {&(_ZTV7ee03101[4]), 4,12},
+ {&(_tg__ZTV6dd3101__7ee03101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd3101__7ee03101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd3101__7ee03101[3]), 3,4},
+ {&(_ZTV7ee03101[8]), 8,12},
+ {&(_ZTV7ee03101[11]), 11,12},
+ {&(_tg__ZTV5cc101__7ee03101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee03101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03101[];
+extern VTBL_ENTRY _ZTV7ee03101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03101[];
+static VTBL_ENTRY alt_thunk_names322[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03101 = { "ee03101", // class name
+ bases_ee03101, 4,
+ &(vtc_ee03101[0]), // expected_vtbl_contents
+ &(vtt_ee03101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names322,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13101 : virtual dd3101 {
+ int e;
+ ~ee13101(); // tgen
+ ee13101(); // tgen
+};
+//SIG(1 ee13101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee13101 ::~ee13101(){ note_dtor("ee13101", this);} // tgen
+ee13101 ::ee13101(){ note_ctor("ee13101", this);} // tgen
+
+static void Test_ee13101()
+{
+ extern Class_Descriptor cd_ee13101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13101, buf);
+ ee13101 *dp, &lv = *(dp=new (buf) ee13101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee13101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee13101");
+ check_base_class_offset(lv, (cc101*)(dd3101*), ABISELECT(32,16), "ee13101");
+ check_base_class_offset(lv, (dd3101*), ABISELECT(16,8), "ee13101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13101.e");
+ test_class_info(&lv, &cd_ee13101);
+ dp->~ee13101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13101(Test_ee13101, "ee13101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13101C1Ev();
+extern void _ZN7ee13101D1Ev();
+Name_Map name_map_ee13101[] = {
+ NSPAIR(_ZN7ee13101C1Ev),
+ NSPAIR(_ZN7ee13101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd3101;
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static Base_Class bases_ee13101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13101[];
+extern void _ZN6dd31013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13101[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13101[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13101[];
+extern void _ZN6dd31013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3101__7ee13101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101__7ee13101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3101__7ee13101[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee13101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee13101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee13101[] = {
+ {&(_ZTV7ee13101[5]), 5,18},
+ {&(_ZTV7ee13101[10]), 10,18},
+ {&(_ZTV7ee13101[14]), 14,18},
+ {&(_ZTV7ee13101[17]), 17,18},
+ {&(_tg__ZTV6dd3101__7ee13101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd3101__7ee13101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd3101__7ee13101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee13101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee13101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13101[];
+extern VTBL_ENTRY _ZTV7ee13101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13101[];
+static VTBL_ENTRY alt_thunk_names323[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13101 = { "ee13101", // class name
+ bases_ee13101, 4,
+ &(vtc_ee13101[0]), // expected_vtbl_contents
+ &(vtt_ee13101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13101),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names323,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23101 : dd3101 {
+ int e;
+ virtual void foo(); // _ZN7ee231013fooEv
+ ~ee23101(); // tgen
+ ee23101(); // tgen
+};
+//SIG(1 ee23101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23101 ::foo(){vfunc_called(this, "_ZN7ee231013fooEv");}
+ee23101 ::~ee23101(){ note_dtor("ee23101", this);} // tgen
+ee23101 ::ee23101(){ note_ctor("ee23101", this);} // tgen
+
+static void Test_ee23101()
+{
+ extern Class_Descriptor cd_ee23101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23101, buf);
+ ee23101 *dp, &lv = *(dp=new (buf) ee23101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee23101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee23101");
+ check_base_class_offset(lv, (cc101*)(dd3101*), ABISELECT(16,12), "ee23101");
+ check_base_class_offset(lv, (dd3101*), 0, "ee23101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23101.e");
+ test_class_info(&lv, &cd_ee23101);
+ dp->~ee23101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23101(Test_ee23101, "ee23101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23101C1Ev();
+extern void _ZN7ee23101D1Ev();
+Name_Map name_map_ee23101[] = {
+ NSPAIR(_ZN7ee23101C1Ev),
+ NSPAIR(_ZN7ee23101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd3101;
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static Base_Class bases_ee23101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23101[];
+extern void _ZN7ee231013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231013fooEv,_ZTv0_n12_N7ee231013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231013fooEv,_ZThn20_N7ee231013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23101[0]),
+ (VTBL_ENTRY)&_ZN7ee231013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231013fooEv,_ZTv0_n12_N7ee231013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23101[];
+extern void _ZN6dd31013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3101__7ee23101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101__7ee23101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3101__7ee23101[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee23101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee23101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee23101[] = {
+ {&(_ZTV7ee23101[4]), 4,12},
+ {&(_tg__ZTV6dd3101__7ee23101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd3101__7ee23101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd3101__7ee23101[3]), 3,4},
+ {&(_ZTV7ee23101[8]), 8,12},
+ {&(_ZTV7ee23101[11]), 11,12},
+ {&(_tg__ZTV5cc101__7ee23101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee23101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23101[];
+extern VTBL_ENTRY _ZTV7ee23101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23101[];
+static VTBL_ENTRY alt_thunk_names324[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231013fooEv,_ZTv0_n12_N7ee231013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231013fooEv,_ZThn20_N7ee231013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23101 = { "ee23101", // class name
+ bases_ee23101, 4,
+ &(vtc_ee23101[0]), // expected_vtbl_contents
+ &(vtt_ee23101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names324,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33101 : virtual dd3101 {
+ int e;
+ virtual void foo(); // _ZN7ee331013fooEv
+ ~ee33101(); // tgen
+ ee33101(); // tgen
+};
+//SIG(1 ee33101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33101 ::foo(){vfunc_called(this, "_ZN7ee331013fooEv");}
+ee33101 ::~ee33101(){ note_dtor("ee33101", this);} // tgen
+ee33101 ::ee33101(){ note_ctor("ee33101", this);} // tgen
+
+static void Test_ee33101()
+{
+ extern Class_Descriptor cd_ee33101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33101, buf);
+ ee33101 *dp, &lv = *(dp=new (buf) ee33101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee33101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee33101");
+ check_base_class_offset(lv, (cc101*)(dd3101*), ABISELECT(32,16), "ee33101");
+ check_base_class_offset(lv, (dd3101*), ABISELECT(16,8), "ee33101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33101.e");
+ test_class_info(&lv, &cd_ee33101);
+ dp->~ee33101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33101(Test_ee33101, "ee33101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33101C1Ev();
+extern void _ZN7ee33101D1Ev();
+Name_Map name_map_ee33101[] = {
+ NSPAIR(_ZN7ee33101C1Ev),
+ NSPAIR(_ZN7ee33101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd3101;
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static Base_Class bases_ee33101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33101[];
+extern void _ZN7ee331013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331013fooEv,_ZTv0_n20_N7ee331013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331013fooEv,_ZThn8_N7ee331013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee331013fooEv,_ZTv0_n12_N7ee331013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331013fooEv,_ZThn24_N7ee331013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33101[0]),
+ (VTBL_ENTRY)&_ZN7ee331013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331013fooEv,_ZTv0_n20_N7ee331013fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33101[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331013fooEv,_ZTv0_n12_N7ee331013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33101[];
+extern void _ZN6dd31013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3101__7ee33101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101__7ee33101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3101__7ee33101[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee33101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee33101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee33101[] = {
+ {&(_ZTV7ee33101[5]), 5,19},
+ {&(_ZTV7ee33101[11]), 11,19},
+ {&(_ZTV7ee33101[15]), 15,19},
+ {&(_ZTV7ee33101[18]), 18,19},
+ {&(_tg__ZTV6dd3101__7ee33101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd3101__7ee33101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd3101__7ee33101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee33101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee33101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33101[];
+extern VTBL_ENTRY _ZTV7ee33101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33101[];
+static VTBL_ENTRY alt_thunk_names325[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331013fooEv,_ZTv0_n12_N7ee331013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331013fooEv,_ZThn24_N7ee331013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331013fooEv,_ZTv0_n20_N7ee331013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331013fooEv,_ZThn8_N7ee331013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33101 = { "ee33101", // class name
+ bases_ee33101, 4,
+ &(vtc_ee33101[0]), // expected_vtbl_contents
+ &(vtt_ee33101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33101),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names325,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43101 : dd3101 {
+ int e;
+ virtual void bar(); // _ZN7ee431013barEv
+ ~ee43101(); // tgen
+ ee43101(); // tgen
+};
+//SIG(1 ee43101) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43101 ::bar(){vfunc_called(this, "_ZN7ee431013barEv");}
+ee43101 ::~ee43101(){ note_dtor("ee43101", this);} // tgen
+ee43101 ::ee43101(){ note_ctor("ee43101", this);} // tgen
+
+static void Test_ee43101()
+{
+ extern Class_Descriptor cd_ee43101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43101, buf);
+ ee43101 *dp, &lv = *(dp=new (buf) ee43101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee43101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee43101");
+ check_base_class_offset(lv, (cc101*)(dd3101*), ABISELECT(16,12), "ee43101");
+ check_base_class_offset(lv, (dd3101*), 0, "ee43101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43101.e");
+ test_class_info(&lv, &cd_ee43101);
+ dp->~ee43101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43101(Test_ee43101, "ee43101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43101C1Ev();
+extern void _ZN7ee43101D1Ev();
+Name_Map name_map_ee43101[] = {
+ NSPAIR(_ZN7ee43101C1Ev),
+ NSPAIR(_ZN7ee43101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd3101;
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static Base_Class bases_ee43101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43101[];
+extern void _ZN6dd31013fooEv();
+extern void _ZN7ee431013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+ (VTBL_ENTRY)&_ZN7ee431013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43101[];
+extern void _ZN6dd31013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3101__7ee43101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101__7ee43101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3101__7ee43101[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee43101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee43101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee43101[] = {
+ {&(_ZTV7ee43101[4]), 4,13},
+ {&(_tg__ZTV6dd3101__7ee43101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd3101__7ee43101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd3101__7ee43101[3]), 3,4},
+ {&(_ZTV7ee43101[9]), 9,13},
+ {&(_ZTV7ee43101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee43101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee43101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43101[];
+extern VTBL_ENTRY _ZTV7ee43101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43101[];
+static VTBL_ENTRY alt_thunk_names326[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43101 = { "ee43101", // class name
+ bases_ee43101, 4,
+ &(vtc_ee43101[0]), // expected_vtbl_contents
+ &(vtt_ee43101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names326,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53101 : virtual dd3101 {
+ int e;
+ virtual void bar(); // _ZN7ee531013barEv
+ ~ee53101(); // tgen
+ ee53101(); // tgen
+};
+//SIG(1 ee53101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53101 ::bar(){vfunc_called(this, "_ZN7ee531013barEv");}
+ee53101 ::~ee53101(){ note_dtor("ee53101", this);} // tgen
+ee53101 ::ee53101(){ note_ctor("ee53101", this);} // tgen
+
+static void Test_ee53101()
+{
+ extern Class_Descriptor cd_ee53101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53101, buf);
+ ee53101 *dp, &lv = *(dp=new (buf) ee53101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee53101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee53101");
+ check_base_class_offset(lv, (cc101*)(dd3101*), ABISELECT(32,16), "ee53101");
+ check_base_class_offset(lv, (dd3101*), ABISELECT(16,8), "ee53101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53101.e");
+ test_class_info(&lv, &cd_ee53101);
+ dp->~ee53101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53101(Test_ee53101, "ee53101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53101C1Ev();
+extern void _ZN7ee53101D1Ev();
+Name_Map name_map_ee53101[] = {
+ NSPAIR(_ZN7ee53101C1Ev),
+ NSPAIR(_ZN7ee53101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd3101;
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static Base_Class bases_ee53101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53101[];
+extern void _ZN7ee531013barEv();
+extern void _ZN6dd31013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53101[0]),
+ (VTBL_ENTRY)&_ZN7ee531013barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53101[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53101[];
+extern void _ZN6dd31013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3101__7ee53101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101__7ee53101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3101__7ee53101[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee53101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee53101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee53101[] = {
+ {&(_ZTV7ee53101[5]), 5,19},
+ {&(_ZTV7ee53101[11]), 11,19},
+ {&(_ZTV7ee53101[15]), 15,19},
+ {&(_ZTV7ee53101[18]), 18,19},
+ {&(_tg__ZTV6dd3101__7ee53101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd3101__7ee53101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd3101__7ee53101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee53101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee53101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53101[];
+extern VTBL_ENTRY _ZTV7ee53101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53101[];
+static VTBL_ENTRY alt_thunk_names327[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53101 = { "ee53101", // class name
+ bases_ee53101, 4,
+ &(vtc_ee53101[0]), // expected_vtbl_contents
+ &(vtt_ee53101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53101),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names327,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63101 : dd3101 {
+ int e;
+ virtual void foo(); // _ZN7ee631013fooEv
+ virtual void bar(); // _ZN7ee631013barEv
+ ~ee63101(); // tgen
+ ee63101(); // tgen
+};
+//SIG(1 ee63101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63101 ::foo(){vfunc_called(this, "_ZN7ee631013fooEv");}
+void ee63101 ::bar(){vfunc_called(this, "_ZN7ee631013barEv");}
+ee63101 ::~ee63101(){ note_dtor("ee63101", this);} // tgen
+ee63101 ::ee63101(){ note_ctor("ee63101", this);} // tgen
+
+static void Test_ee63101()
+{
+ extern Class_Descriptor cd_ee63101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63101, buf);
+ ee63101 *dp, &lv = *(dp=new (buf) ee63101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee63101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee63101");
+ check_base_class_offset(lv, (cc101*)(dd3101*), ABISELECT(16,12), "ee63101");
+ check_base_class_offset(lv, (dd3101*), 0, "ee63101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63101.e");
+ test_class_info(&lv, &cd_ee63101);
+ dp->~ee63101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63101(Test_ee63101, "ee63101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63101C1Ev();
+extern void _ZN7ee63101D1Ev();
+Name_Map name_map_ee63101[] = {
+ NSPAIR(_ZN7ee63101C1Ev),
+ NSPAIR(_ZN7ee63101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd3101;
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static Base_Class bases_ee63101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63101[];
+extern void _ZN7ee631013fooEv();
+extern void _ZN7ee631013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee631013fooEv,_ZTv0_n12_N7ee631013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631013fooEv,_ZThn20_N7ee631013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63101[0]),
+ (VTBL_ENTRY)&_ZN7ee631013fooEv,
+ (VTBL_ENTRY)&_ZN7ee631013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631013fooEv,_ZTv0_n12_N7ee631013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63101[];
+extern void _ZN6dd31013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3101__7ee63101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101__7ee63101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3101__7ee63101[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee63101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee63101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee63101[] = {
+ {&(_ZTV7ee63101[4]), 4,13},
+ {&(_tg__ZTV6dd3101__7ee63101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd3101__7ee63101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd3101__7ee63101[3]), 3,4},
+ {&(_ZTV7ee63101[9]), 9,13},
+ {&(_ZTV7ee63101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee63101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee63101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63101[];
+extern VTBL_ENTRY _ZTV7ee63101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63101[];
+static VTBL_ENTRY alt_thunk_names328[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn20_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631013fooEv,_ZTv0_n12_N7ee631013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631013fooEv,_ZThn20_N7ee631013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63101 = { "ee63101", // class name
+ bases_ee63101, 4,
+ &(vtc_ee63101[0]), // expected_vtbl_contents
+ &(vtt_ee63101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names328,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73101 : virtual dd3101 {
+ int e;
+ virtual void foo(); // _ZN7ee731013fooEv
+ virtual void bar(); // _ZN7ee731013barEv
+ ~ee73101(); // tgen
+ ee73101(); // tgen
+};
+//SIG(1 ee73101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73101 ::foo(){vfunc_called(this, "_ZN7ee731013fooEv");}
+void ee73101 ::bar(){vfunc_called(this, "_ZN7ee731013barEv");}
+ee73101 ::~ee73101(){ note_dtor("ee73101", this);} // tgen
+ee73101 ::ee73101(){ note_ctor("ee73101", this);} // tgen
+
+static void Test_ee73101()
+{
+ extern Class_Descriptor cd_ee73101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73101, buf);
+ ee73101 *dp, &lv = *(dp=new (buf) ee73101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee73101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee73101");
+ check_base_class_offset(lv, (cc101*)(dd3101*), ABISELECT(32,16), "ee73101");
+ check_base_class_offset(lv, (dd3101*), ABISELECT(16,8), "ee73101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73101.e");
+ test_class_info(&lv, &cd_ee73101);
+ dp->~ee73101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73101(Test_ee73101, "ee73101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73101C1Ev();
+extern void _ZN7ee73101D1Ev();
+Name_Map name_map_ee73101[] = {
+ NSPAIR(_ZN7ee73101C1Ev),
+ NSPAIR(_ZN7ee73101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd3101;
+extern VTBL_ENTRY _ZTI6dd3101[];
+extern VTBL_ENTRY _ZTV6dd3101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3101[];
+static Base_Class bases_ee73101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3101, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73101[];
+extern void _ZN7ee731013fooEv();
+extern void _ZN7ee731013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731013fooEv,_ZTv0_n20_N7ee731013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731013fooEv,_ZThn8_N7ee731013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731013fooEv,_ZTv0_n12_N7ee731013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731013fooEv,_ZThn24_N7ee731013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73101[0]),
+ (VTBL_ENTRY)&_ZN7ee731013fooEv,
+ (VTBL_ENTRY)&_ZN7ee731013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731013fooEv,_ZTv0_n20_N7ee731013fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73101[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731013fooEv,_ZTv0_n12_N7ee731013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73101[];
+extern void _ZN6dd31013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3101__7ee73101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&_ZN6dd31013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd3101__7ee73101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3101__7ee73101[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee73101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee73101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee73101[] = {
+ {&(_ZTV7ee73101[5]), 5,20},
+ {&(_ZTV7ee73101[12]), 12,20},
+ {&(_ZTV7ee73101[16]), 16,20},
+ {&(_ZTV7ee73101[19]), 19,20},
+ {&(_tg__ZTV6dd3101__7ee73101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd3101__7ee73101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd3101__7ee73101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee73101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee73101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73101[];
+extern VTBL_ENTRY _ZTV7ee73101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73101[];
+static VTBL_ENTRY alt_thunk_names329[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31013fooEv,_ZTv0_n12_N6dd31013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31013fooEv,_ZThn16_N6dd31013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731013fooEv,_ZTv0_n12_N7ee731013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731013fooEv,_ZThn24_N7ee731013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731013fooEv,_ZTv0_n20_N7ee731013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731013fooEv,_ZThn8_N7ee731013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73101 = { "ee73101", // class name
+ bases_ee73101, 4,
+ &(vtc_ee73101[0]), // expected_vtbl_contents
+ &(vtt_ee73101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73101),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names329,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4101 : cc101 {
+ int d;
+ virtual void bar(); // _ZN6dd41013barEv
+ ~dd4101(); // tgen
+ dd4101(); // tgen
+};
+//SIG(-1 dd4101) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} Fi} v1 Fi}
+
+
+void dd4101 ::bar(){vfunc_called(this, "_ZN6dd41013barEv");}
+dd4101 ::~dd4101(){ note_dtor("dd4101", this);} // tgen
+dd4101 ::dd4101(){ note_ctor("dd4101", this);} // tgen
+
+static void Test_dd4101()
+{
+ extern Class_Descriptor cd_dd4101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4101, buf);
+ dd4101 *dp, &lv = *(dp=new (buf) dd4101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd4101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(16,12), "dd4101");
+ check_base_class_offset(lv, (cc101*), 0, "dd4101");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4101.d");
+ test_class_info(&lv, &cd_dd4101);
+ dp->~dd4101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4101(Test_dd4101, "dd4101", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4101C1Ev();
+extern void _ZN6dd4101D1Ev();
+Name_Map name_map_dd4101[] = {
+ NSPAIR(_ZN6dd4101C1Ev),
+ NSPAIR(_ZN6dd4101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+static Base_Class bases_dd4101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4101[];
+extern void _ZN6dd41013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd4101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4101[];
+static VTBL_ENTRY _tg__ZTV5cc101__6dd4101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__6dd4101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd4101[] = {
+ {&(_ZTV6dd4101[3]), 3,8},
+ {&(_tg__ZTV5cc101__6dd4101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__6dd4101[3]), 3,4},
+ {&(_ZTV6dd4101[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+Class_Descriptor cd_dd4101 = { "dd4101", // class name
+ bases_dd4101, 3,
+ &(vtc_dd4101[0]), // expected_vtbl_contents
+ &(vtt_dd4101[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4101),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4101),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 ee04101 : dd4101 {
+ int e;
+ ~ee04101(); // tgen
+ ee04101(); // tgen
+};
+//SIG(1 ee04101) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee04101 ::~ee04101(){ note_dtor("ee04101", this);} // tgen
+ee04101 ::ee04101(){ note_ctor("ee04101", this);} // tgen
+
+static void Test_ee04101()
+{
+ extern Class_Descriptor cd_ee04101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04101, buf);
+ ee04101 *dp, &lv = *(dp=new (buf) ee04101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee04101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd4101*), ABISELECT(24,16), "ee04101");
+ check_base_class_offset(lv, (cc101*)(dd4101*), 0, "ee04101");
+ check_base_class_offset(lv, (dd4101*), 0, "ee04101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04101.e");
+ test_class_info(&lv, &cd_ee04101);
+ dp->~ee04101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04101(Test_ee04101, "ee04101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04101C1Ev();
+extern void _ZN7ee04101D1Ev();
+Name_Map name_map_ee04101[] = {
+ NSPAIR(_ZN7ee04101C1Ev),
+ NSPAIR(_ZN7ee04101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd4101;
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+static Base_Class bases_ee04101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04101[];
+extern void _ZN6dd41013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee04101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04101[];
+extern void _ZN6dd41013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4101__7ee04101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd4101__7ee04101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd4101__7ee04101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4101__7ee04101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee04101[] = {
+ {&(_ZTV7ee04101[3]), 3,8},
+ {&(_tg__ZTV6dd4101__7ee04101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd4101__7ee04101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd4101__7ee04101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4101__7ee04101[3]), 3,4},
+ {&(_ZTV7ee04101[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee04101[];
+extern VTBL_ENTRY _ZTV7ee04101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04101[];
+Class_Descriptor cd_ee04101 = { "ee04101", // class name
+ bases_ee04101, 4,
+ &(vtc_ee04101[0]), // expected_vtbl_contents
+ &(vtt_ee04101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04101),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14101 : virtual dd4101 {
+ int e;
+ ~ee14101(); // tgen
+ ee14101(); // tgen
+};
+//SIG(1 ee14101) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee14101 ::~ee14101(){ note_dtor("ee14101", this);} // tgen
+ee14101 ::ee14101(){ note_ctor("ee14101", this);} // tgen
+
+static void Test_ee14101()
+{
+ extern Class_Descriptor cd_ee14101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14101, buf);
+ ee14101 *dp, &lv = *(dp=new (buf) ee14101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee14101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd4101*), ABISELECT(32,20), "ee14101");
+ check_base_class_offset(lv, (cc101*)(dd4101*), ABISELECT(16,8), "ee14101");
+ check_base_class_offset(lv, (dd4101*), ABISELECT(16,8), "ee14101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14101.e");
+ test_class_info(&lv, &cd_ee14101);
+ dp->~ee14101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14101(Test_ee14101, "ee14101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14101C1Ev();
+extern void _ZN7ee14101D1Ev();
+Name_Map name_map_ee14101[] = {
+ NSPAIR(_ZN7ee14101C1Ev),
+ NSPAIR(_ZN7ee14101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd4101;
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+static Base_Class bases_ee14101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4101, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14101[];
+extern void _ZN6dd41013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee14101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14101[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14101[];
+extern void _ZN6dd41013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4101__7ee14101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd4101__7ee14101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd4101__7ee14101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4101__7ee14101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee14101[] = {
+ {&(_ZTV7ee14101[4]), 4,13},
+ {&(_ZTV7ee14101[8]), 8,13},
+ {&(_ZTV7ee14101[12]), 12,13},
+ {&(_tg__ZTV6dd4101__7ee14101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd4101__7ee14101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd4101__7ee14101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4101__7ee14101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14101[];
+extern VTBL_ENTRY _ZTV7ee14101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14101[];
+Class_Descriptor cd_ee14101 = { "ee14101", // class name
+ bases_ee14101, 4,
+ &(vtc_ee14101[0]), // expected_vtbl_contents
+ &(vtt_ee14101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24101 : dd4101 {
+ int e;
+ virtual void foo(); // _ZN7ee241013fooEv
+ ~ee24101(); // tgen
+ ee24101(); // tgen
+};
+//SIG(1 ee24101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24101 ::foo(){vfunc_called(this, "_ZN7ee241013fooEv");}
+ee24101 ::~ee24101(){ note_dtor("ee24101", this);} // tgen
+ee24101 ::ee24101(){ note_ctor("ee24101", this);} // tgen
+
+static void Test_ee24101()
+{
+ extern Class_Descriptor cd_ee24101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24101, buf);
+ ee24101 *dp, &lv = *(dp=new (buf) ee24101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee24101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd4101*), ABISELECT(24,16), "ee24101");
+ check_base_class_offset(lv, (cc101*)(dd4101*), 0, "ee24101");
+ check_base_class_offset(lv, (dd4101*), 0, "ee24101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24101.e");
+ test_class_info(&lv, &cd_ee24101);
+ dp->~ee24101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24101(Test_ee24101, "ee24101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24101C1Ev();
+extern void _ZN7ee24101D1Ev();
+Name_Map name_map_ee24101[] = {
+ NSPAIR(_ZN7ee24101C1Ev),
+ NSPAIR(_ZN7ee24101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd4101;
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+static Base_Class bases_ee24101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24101[];
+extern void _ZN6dd41013barEv();
+extern void _ZN7ee241013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee241013fooEv,_ZTv0_n12_N7ee241013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241013fooEv,_ZThn16_N7ee241013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+ (VTBL_ENTRY)&_ZN7ee241013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241013fooEv,_ZTv0_n12_N7ee241013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24101[];
+extern void _ZN6dd41013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4101__7ee24101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd4101__7ee24101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd4101__7ee24101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4101__7ee24101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee24101[] = {
+ {&(_ZTV7ee24101[3]), 3,9},
+ {&(_tg__ZTV6dd4101__7ee24101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd4101__7ee24101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd4101__7ee24101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4101__7ee24101[3]), 3,4},
+ {&(_ZTV7ee24101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24101[];
+extern VTBL_ENTRY _ZTV7ee24101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24101[];
+static VTBL_ENTRY alt_thunk_names330[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241013fooEv,_ZTv0_n12_N7ee241013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241013fooEv,_ZThn16_N7ee241013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24101 = { "ee24101", // class name
+ bases_ee24101, 4,
+ &(vtc_ee24101[0]), // expected_vtbl_contents
+ &(vtt_ee24101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names330,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34101 : virtual dd4101 {
+ int e;
+ virtual void foo(); // _ZN7ee341013fooEv
+ ~ee34101(); // tgen
+ ee34101(); // tgen
+};
+//SIG(1 ee34101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34101 ::foo(){vfunc_called(this, "_ZN7ee341013fooEv");}
+ee34101 ::~ee34101(){ note_dtor("ee34101", this);} // tgen
+ee34101 ::ee34101(){ note_ctor("ee34101", this);} // tgen
+
+static void Test_ee34101()
+{
+ extern Class_Descriptor cd_ee34101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34101, buf);
+ ee34101 *dp, &lv = *(dp=new (buf) ee34101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee34101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd4101*), ABISELECT(32,20), "ee34101");
+ check_base_class_offset(lv, (cc101*)(dd4101*), ABISELECT(16,8), "ee34101");
+ check_base_class_offset(lv, (dd4101*), ABISELECT(16,8), "ee34101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34101.e");
+ test_class_info(&lv, &cd_ee34101);
+ dp->~ee34101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34101(Test_ee34101, "ee34101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34101C1Ev();
+extern void _ZN7ee34101D1Ev();
+Name_Map name_map_ee34101[] = {
+ NSPAIR(_ZN7ee34101C1Ev),
+ NSPAIR(_ZN7ee34101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd4101;
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+static Base_Class bases_ee34101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34101[];
+extern void _ZN7ee341013fooEv();
+extern void _ZN6dd41013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee341013fooEv,_ZTv0_n12_N7ee341013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341013fooEv,_ZThn20_N7ee341013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34101[0]),
+ (VTBL_ENTRY)&_ZN7ee341013fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341013fooEv,_ZTv0_n12_N7ee341013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34101[];
+extern void _ZN6dd41013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4101__7ee34101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd4101__7ee34101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd4101__7ee34101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4101__7ee34101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee34101[] = {
+ {&(_ZTV7ee34101[4]), 4,14},
+ {&(_ZTV7ee34101[9]), 9,14},
+ {&(_ZTV7ee34101[13]), 13,14},
+ {&(_tg__ZTV6dd4101__7ee34101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd4101__7ee34101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd4101__7ee34101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4101__7ee34101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34101[];
+extern VTBL_ENTRY _ZTV7ee34101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34101[];
+static VTBL_ENTRY alt_thunk_names331[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341013fooEv,_ZTv0_n12_N7ee341013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341013fooEv,_ZThn20_N7ee341013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34101 = { "ee34101", // class name
+ bases_ee34101, 4,
+ &(vtc_ee34101[0]), // expected_vtbl_contents
+ &(vtt_ee34101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34101),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names331,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44101 : dd4101 {
+ int e;
+ virtual void bar(); // _ZN7ee441013barEv
+ ~ee44101(); // tgen
+ ee44101(); // tgen
+};
+//SIG(1 ee44101) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44101 ::bar(){vfunc_called(this, "_ZN7ee441013barEv");}
+ee44101 ::~ee44101(){ note_dtor("ee44101", this);} // tgen
+ee44101 ::ee44101(){ note_ctor("ee44101", this);} // tgen
+
+static void Test_ee44101()
+{
+ extern Class_Descriptor cd_ee44101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44101, buf);
+ ee44101 *dp, &lv = *(dp=new (buf) ee44101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee44101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd4101*), ABISELECT(24,16), "ee44101");
+ check_base_class_offset(lv, (cc101*)(dd4101*), 0, "ee44101");
+ check_base_class_offset(lv, (dd4101*), 0, "ee44101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44101.e");
+ test_class_info(&lv, &cd_ee44101);
+ dp->~ee44101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44101(Test_ee44101, "ee44101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44101C1Ev();
+extern void _ZN7ee44101D1Ev();
+Name_Map name_map_ee44101[] = {
+ NSPAIR(_ZN7ee44101C1Ev),
+ NSPAIR(_ZN7ee44101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd4101;
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+static Base_Class bases_ee44101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44101[];
+extern void _ZN7ee441013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee44101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44101[0]),
+ (VTBL_ENTRY)&_ZN7ee441013barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44101[];
+extern void _ZN6dd41013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4101__7ee44101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd4101__7ee44101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd4101__7ee44101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4101__7ee44101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee44101[] = {
+ {&(_ZTV7ee44101[3]), 3,8},
+ {&(_tg__ZTV6dd4101__7ee44101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd4101__7ee44101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd4101__7ee44101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4101__7ee44101[3]), 3,4},
+ {&(_ZTV7ee44101[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee44101[];
+extern VTBL_ENTRY _ZTV7ee44101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44101[];
+Class_Descriptor cd_ee44101 = { "ee44101", // class name
+ bases_ee44101, 4,
+ &(vtc_ee44101[0]), // expected_vtbl_contents
+ &(vtt_ee44101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44101),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54101 : virtual dd4101 {
+ int e;
+ virtual void bar(); // _ZN7ee541013barEv
+ ~ee54101(); // tgen
+ ee54101(); // tgen
+};
+//SIG(1 ee54101) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54101 ::bar(){vfunc_called(this, "_ZN7ee541013barEv");}
+ee54101 ::~ee54101(){ note_dtor("ee54101", this);} // tgen
+ee54101 ::ee54101(){ note_ctor("ee54101", this);} // tgen
+
+static void Test_ee54101()
+{
+ extern Class_Descriptor cd_ee54101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54101, buf);
+ ee54101 *dp, &lv = *(dp=new (buf) ee54101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee54101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd4101*), ABISELECT(32,20), "ee54101");
+ check_base_class_offset(lv, (cc101*)(dd4101*), ABISELECT(16,8), "ee54101");
+ check_base_class_offset(lv, (dd4101*), ABISELECT(16,8), "ee54101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54101.e");
+ test_class_info(&lv, &cd_ee54101);
+ dp->~ee54101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54101(Test_ee54101, "ee54101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54101C1Ev();
+extern void _ZN7ee54101D1Ev();
+Name_Map name_map_ee54101[] = {
+ NSPAIR(_ZN7ee54101C1Ev),
+ NSPAIR(_ZN7ee54101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd4101;
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+static Base_Class bases_ee54101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54101[];
+extern void _ZN7ee541013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541013barEv,_ZTv0_n16_N7ee541013barEv)();
+extern void ABISELECT(_ZThn16_N7ee541013barEv,_ZThn8_N7ee541013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee54101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54101[0]),
+ (VTBL_ENTRY)&_ZN7ee541013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541013barEv,_ZTv0_n16_N7ee541013barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54101[];
+extern void _ZN6dd41013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4101__7ee54101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd4101__7ee54101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd4101__7ee54101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4101__7ee54101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee54101[] = {
+ {&(_ZTV7ee54101[4]), 4,14},
+ {&(_ZTV7ee54101[9]), 9,14},
+ {&(_ZTV7ee54101[13]), 13,14},
+ {&(_tg__ZTV6dd4101__7ee54101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd4101__7ee54101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd4101__7ee54101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4101__7ee54101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54101[];
+extern VTBL_ENTRY _ZTV7ee54101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54101[];
+static VTBL_ENTRY alt_thunk_names332[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541013barEv,_ZTv0_n16_N7ee541013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541013barEv,_ZThn8_N7ee541013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54101 = { "ee54101", // class name
+ bases_ee54101, 4,
+ &(vtc_ee54101[0]), // expected_vtbl_contents
+ &(vtt_ee54101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54101),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names332,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64101 : dd4101 {
+ int e;
+ virtual void foo(); // _ZN7ee641013fooEv
+ virtual void bar(); // _ZN7ee641013barEv
+ ~ee64101(); // tgen
+ ee64101(); // tgen
+};
+//SIG(1 ee64101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64101 ::foo(){vfunc_called(this, "_ZN7ee641013fooEv");}
+void ee64101 ::bar(){vfunc_called(this, "_ZN7ee641013barEv");}
+ee64101 ::~ee64101(){ note_dtor("ee64101", this);} // tgen
+ee64101 ::ee64101(){ note_ctor("ee64101", this);} // tgen
+
+static void Test_ee64101()
+{
+ extern Class_Descriptor cd_ee64101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64101, buf);
+ ee64101 *dp, &lv = *(dp=new (buf) ee64101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee64101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd4101*), ABISELECT(24,16), "ee64101");
+ check_base_class_offset(lv, (cc101*)(dd4101*), 0, "ee64101");
+ check_base_class_offset(lv, (dd4101*), 0, "ee64101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64101.e");
+ test_class_info(&lv, &cd_ee64101);
+ dp->~ee64101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64101(Test_ee64101, "ee64101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64101C1Ev();
+extern void _ZN7ee64101D1Ev();
+Name_Map name_map_ee64101[] = {
+ NSPAIR(_ZN7ee64101C1Ev),
+ NSPAIR(_ZN7ee64101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd4101;
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+static Base_Class bases_ee64101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64101[];
+extern void _ZN7ee641013barEv();
+extern void _ZN7ee641013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee641013fooEv,_ZTv0_n12_N7ee641013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641013fooEv,_ZThn16_N7ee641013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64101[0]),
+ (VTBL_ENTRY)&_ZN7ee641013barEv,
+ (VTBL_ENTRY)&_ZN7ee641013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641013fooEv,_ZTv0_n12_N7ee641013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64101[];
+extern void _ZN6dd41013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4101__7ee64101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd4101__7ee64101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd4101__7ee64101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4101__7ee64101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee64101[] = {
+ {&(_ZTV7ee64101[3]), 3,9},
+ {&(_tg__ZTV6dd4101__7ee64101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd4101__7ee64101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd4101__7ee64101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4101__7ee64101[3]), 3,4},
+ {&(_ZTV7ee64101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64101[];
+extern VTBL_ENTRY _ZTV7ee64101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64101[];
+static VTBL_ENTRY alt_thunk_names333[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641013fooEv,_ZTv0_n12_N7ee641013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641013fooEv,_ZThn16_N7ee641013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64101 = { "ee64101", // class name
+ bases_ee64101, 4,
+ &(vtc_ee64101[0]), // expected_vtbl_contents
+ &(vtt_ee64101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names333,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74101 : virtual dd4101 {
+ int e;
+ virtual void foo(); // _ZN7ee741013fooEv
+ virtual void bar(); // _ZN7ee741013barEv
+ ~ee74101(); // tgen
+ ee74101(); // tgen
+};
+//SIG(1 ee74101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74101 ::foo(){vfunc_called(this, "_ZN7ee741013fooEv");}
+void ee74101 ::bar(){vfunc_called(this, "_ZN7ee741013barEv");}
+ee74101 ::~ee74101(){ note_dtor("ee74101", this);} // tgen
+ee74101 ::ee74101(){ note_ctor("ee74101", this);} // tgen
+
+static void Test_ee74101()
+{
+ extern Class_Descriptor cd_ee74101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74101, buf);
+ ee74101 *dp, &lv = *(dp=new (buf) ee74101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee74101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd4101*), ABISELECT(32,20), "ee74101");
+ check_base_class_offset(lv, (cc101*)(dd4101*), ABISELECT(16,8), "ee74101");
+ check_base_class_offset(lv, (dd4101*), ABISELECT(16,8), "ee74101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74101.e");
+ test_class_info(&lv, &cd_ee74101);
+ dp->~ee74101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74101(Test_ee74101, "ee74101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74101C1Ev();
+extern void _ZN7ee74101D1Ev();
+Name_Map name_map_ee74101[] = {
+ NSPAIR(_ZN7ee74101C1Ev),
+ NSPAIR(_ZN7ee74101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd4101;
+extern VTBL_ENTRY _ZTI6dd4101[];
+extern VTBL_ENTRY _ZTV6dd4101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4101[];
+static Base_Class bases_ee74101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74101[];
+extern void _ZN7ee741013fooEv();
+extern void _ZN7ee741013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741013barEv,_ZTv0_n16_N7ee741013barEv)();
+extern void ABISELECT(_ZThn16_N7ee741013barEv,_ZThn8_N7ee741013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741013fooEv,_ZTv0_n12_N7ee741013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741013fooEv,_ZThn20_N7ee741013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74101[0]),
+ (VTBL_ENTRY)&_ZN7ee741013fooEv,
+ (VTBL_ENTRY)&_ZN7ee741013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741013barEv,_ZTv0_n16_N7ee741013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741013fooEv,_ZTv0_n12_N7ee741013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74101[];
+extern void _ZN6dd41013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4101__7ee74101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN6dd41013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd4101__7ee74101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd4101__7ee74101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4101__7ee74101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee74101[] = {
+ {&(_ZTV7ee74101[4]), 4,15},
+ {&(_ZTV7ee74101[10]), 10,15},
+ {&(_ZTV7ee74101[14]), 14,15},
+ {&(_tg__ZTV6dd4101__7ee74101[3]), 3,4},
+ {&(_tg__ZTV5cc1016dd4101__7ee74101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd4101__7ee74101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4101__7ee74101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74101[];
+extern VTBL_ENTRY _ZTV7ee74101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74101[];
+static VTBL_ENTRY alt_thunk_names334[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741013fooEv,_ZTv0_n12_N7ee741013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741013fooEv,_ZThn20_N7ee741013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741013barEv,_ZTv0_n16_N7ee741013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741013barEv,_ZThn8_N7ee741013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74101 = { "ee74101", // class name
+ bases_ee74101, 4,
+ &(vtc_ee74101[0]), // expected_vtbl_contents
+ &(vtt_ee74101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74101),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names334,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5101 : virtual cc101 {
+ int d;
+ virtual void bar(); // _ZN6dd51013barEv
+ ~dd5101(); // tgen
+ dd5101(); // tgen
+};
+//SIG(-1 dd5101) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} Fi} v1 Fi}
+
+
+void dd5101 ::bar(){vfunc_called(this, "_ZN6dd51013barEv");}
+dd5101 ::~dd5101(){ note_dtor("dd5101", this);} // tgen
+dd5101 ::dd5101(){ note_ctor("dd5101", this);} // tgen
+
+static void Test_dd5101()
+{
+ extern Class_Descriptor cd_dd5101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5101, buf);
+ dd5101 *dp, &lv = *(dp=new (buf) dd5101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd5101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,16), "dd5101");
+ check_base_class_offset(lv, (cc101*), ABISELECT(16,8), "dd5101");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5101.d");
+ test_class_info(&lv, &cd_dd5101);
+ dp->~dd5101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5101(Test_dd5101, "dd5101", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5101C1Ev();
+extern void _ZN6dd5101D1Ev();
+Name_Map name_map_dd5101[] = {
+ NSPAIR(_ZN6dd5101C1Ev),
+ NSPAIR(_ZN6dd5101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+static Base_Class bases_dd5101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern void _ZN6dd51013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd5101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5101[];
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__6dd5101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd5101[] = {
+ {&(_ZTV6dd5101[4]), 4,12},
+ {&(_ZTV6dd5101[8]), 8,12},
+ {&(_ZTV6dd5101[11]), 11,12},
+ {&(_tg__ZTV5cc101__6dd5101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__6dd5101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+Class_Descriptor cd_dd5101 = { "dd5101", // class name
+ bases_dd5101, 3,
+ &(vtc_dd5101[0]), // expected_vtbl_contents
+ &(vtt_dd5101[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5101),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 ee05101 : dd5101 {
+ int e;
+ ~ee05101(); // tgen
+ ee05101(); // tgen
+};
+//SIG(1 ee05101) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee05101 ::~ee05101(){ note_dtor("ee05101", this);} // tgen
+ee05101 ::ee05101(){ note_ctor("ee05101", this);} // tgen
+
+static void Test_ee05101()
+{
+ extern Class_Descriptor cd_ee05101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05101, buf);
+ ee05101 *dp, &lv = *(dp=new (buf) ee05101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee05101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee05101");
+ check_base_class_offset(lv, (cc101*)(dd5101*), ABISELECT(16,12), "ee05101");
+ check_base_class_offset(lv, (dd5101*), 0, "ee05101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05101.e");
+ test_class_info(&lv, &cd_ee05101);
+ dp->~ee05101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05101(Test_ee05101, "ee05101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05101C1Ev();
+extern void _ZN7ee05101D1Ev();
+Name_Map name_map_ee05101[] = {
+ NSPAIR(_ZN7ee05101C1Ev),
+ NSPAIR(_ZN7ee05101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd5101;
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+static Base_Class bases_ee05101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05101[];
+extern void _ZN6dd51013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee05101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05101[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05101[];
+extern void _ZN6dd51013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5101__7ee05101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101__7ee05101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5101__7ee05101[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee05101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee05101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05101[] = {
+ {&(_ZTV7ee05101[4]), 4,12},
+ {&(_tg__ZTV6dd5101__7ee05101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd5101__7ee05101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd5101__7ee05101[3]), 3,4},
+ {&(_ZTV7ee05101[8]), 8,12},
+ {&(_ZTV7ee05101[11]), 11,12},
+ {&(_tg__ZTV5cc101__7ee05101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee05101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05101[];
+extern VTBL_ENTRY _ZTV7ee05101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05101[];
+Class_Descriptor cd_ee05101 = { "ee05101", // class name
+ bases_ee05101, 4,
+ &(vtc_ee05101[0]), // expected_vtbl_contents
+ &(vtt_ee05101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15101 : virtual dd5101 {
+ int e;
+ ~ee15101(); // tgen
+ ee15101(); // tgen
+};
+//SIG(1 ee15101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee15101 ::~ee15101(){ note_dtor("ee15101", this);} // tgen
+ee15101 ::ee15101(){ note_ctor("ee15101", this);} // tgen
+
+static void Test_ee15101()
+{
+ extern Class_Descriptor cd_ee15101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15101, buf);
+ ee15101 *dp, &lv = *(dp=new (buf) ee15101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee15101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee15101");
+ check_base_class_offset(lv, (cc101*)(dd5101*), ABISELECT(32,16), "ee15101");
+ check_base_class_offset(lv, (dd5101*), ABISELECT(16,8), "ee15101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15101.e");
+ test_class_info(&lv, &cd_ee15101);
+ dp->~ee15101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15101(Test_ee15101, "ee15101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15101C1Ev();
+extern void _ZN7ee15101D1Ev();
+Name_Map name_map_ee15101[] = {
+ NSPAIR(_ZN7ee15101C1Ev),
+ NSPAIR(_ZN7ee15101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd5101;
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+static Base_Class bases_ee15101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15101[];
+extern void _ZN6dd51013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee15101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15101[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15101[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15101[];
+extern void _ZN6dd51013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5101__7ee15101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101__7ee15101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5101__7ee15101[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee15101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee15101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15101[] = {
+ {&(_ZTV7ee15101[5]), 5,18},
+ {&(_ZTV7ee15101[10]), 10,18},
+ {&(_ZTV7ee15101[14]), 14,18},
+ {&(_ZTV7ee15101[17]), 17,18},
+ {&(_tg__ZTV6dd5101__7ee15101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd5101__7ee15101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd5101__7ee15101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee15101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee15101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15101[];
+extern VTBL_ENTRY _ZTV7ee15101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15101[];
+Class_Descriptor cd_ee15101 = { "ee15101", // class name
+ bases_ee15101, 4,
+ &(vtc_ee15101[0]), // expected_vtbl_contents
+ &(vtt_ee15101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15101),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25101 : dd5101 {
+ int e;
+ virtual void foo(); // _ZN7ee251013fooEv
+ ~ee25101(); // tgen
+ ee25101(); // tgen
+};
+//SIG(1 ee25101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25101 ::foo(){vfunc_called(this, "_ZN7ee251013fooEv");}
+ee25101 ::~ee25101(){ note_dtor("ee25101", this);} // tgen
+ee25101 ::ee25101(){ note_ctor("ee25101", this);} // tgen
+
+static void Test_ee25101()
+{
+ extern Class_Descriptor cd_ee25101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25101, buf);
+ ee25101 *dp, &lv = *(dp=new (buf) ee25101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee25101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee25101");
+ check_base_class_offset(lv, (cc101*)(dd5101*), ABISELECT(16,12), "ee25101");
+ check_base_class_offset(lv, (dd5101*), 0, "ee25101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25101.e");
+ test_class_info(&lv, &cd_ee25101);
+ dp->~ee25101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25101(Test_ee25101, "ee25101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25101C1Ev();
+extern void _ZN7ee25101D1Ev();
+Name_Map name_map_ee25101[] = {
+ NSPAIR(_ZN7ee25101C1Ev),
+ NSPAIR(_ZN7ee25101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd5101;
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+static Base_Class bases_ee25101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25101[];
+extern void _ZN6dd51013barEv();
+extern void _ZN7ee251013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee251013fooEv,_ZTv0_n12_N7ee251013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251013fooEv,_ZThn20_N7ee251013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+ (VTBL_ENTRY)&_ZN7ee251013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251013fooEv,_ZTv0_n12_N7ee251013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25101[];
+extern void _ZN6dd51013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5101__7ee25101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101__7ee25101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5101__7ee25101[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee25101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee25101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25101[] = {
+ {&(_ZTV7ee25101[4]), 4,13},
+ {&(_tg__ZTV6dd5101__7ee25101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd5101__7ee25101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd5101__7ee25101[3]), 3,4},
+ {&(_ZTV7ee25101[9]), 9,13},
+ {&(_ZTV7ee25101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee25101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee25101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25101[];
+extern VTBL_ENTRY _ZTV7ee25101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25101[];
+static VTBL_ENTRY alt_thunk_names335[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251013fooEv,_ZTv0_n12_N7ee251013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251013fooEv,_ZThn20_N7ee251013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25101 = { "ee25101", // class name
+ bases_ee25101, 4,
+ &(vtc_ee25101[0]), // expected_vtbl_contents
+ &(vtt_ee25101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names335,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35101 : virtual dd5101 {
+ int e;
+ virtual void foo(); // _ZN7ee351013fooEv
+ ~ee35101(); // tgen
+ ee35101(); // tgen
+};
+//SIG(1 ee35101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35101 ::foo(){vfunc_called(this, "_ZN7ee351013fooEv");}
+ee35101 ::~ee35101(){ note_dtor("ee35101", this);} // tgen
+ee35101 ::ee35101(){ note_ctor("ee35101", this);} // tgen
+
+static void Test_ee35101()
+{
+ extern Class_Descriptor cd_ee35101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35101, buf);
+ ee35101 *dp, &lv = *(dp=new (buf) ee35101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee35101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee35101");
+ check_base_class_offset(lv, (cc101*)(dd5101*), ABISELECT(32,16), "ee35101");
+ check_base_class_offset(lv, (dd5101*), ABISELECT(16,8), "ee35101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35101.e");
+ test_class_info(&lv, &cd_ee35101);
+ dp->~ee35101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35101(Test_ee35101, "ee35101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35101C1Ev();
+extern void _ZN7ee35101D1Ev();
+Name_Map name_map_ee35101[] = {
+ NSPAIR(_ZN7ee35101C1Ev),
+ NSPAIR(_ZN7ee35101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd5101;
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+static Base_Class bases_ee35101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35101[];
+extern void _ZN7ee351013fooEv();
+extern void _ZN6dd51013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee351013fooEv,_ZTv0_n12_N7ee351013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351013fooEv,_ZThn24_N7ee351013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35101[0]),
+ (VTBL_ENTRY)&_ZN7ee351013fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35101[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351013fooEv,_ZTv0_n12_N7ee351013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35101[];
+extern void _ZN6dd51013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5101__7ee35101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101__7ee35101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5101__7ee35101[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee35101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee35101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35101[] = {
+ {&(_ZTV7ee35101[5]), 5,19},
+ {&(_ZTV7ee35101[11]), 11,19},
+ {&(_ZTV7ee35101[15]), 15,19},
+ {&(_ZTV7ee35101[18]), 18,19},
+ {&(_tg__ZTV6dd5101__7ee35101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd5101__7ee35101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd5101__7ee35101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee35101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee35101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35101[];
+extern VTBL_ENTRY _ZTV7ee35101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35101[];
+static VTBL_ENTRY alt_thunk_names336[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351013fooEv,_ZTv0_n12_N7ee351013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351013fooEv,_ZThn24_N7ee351013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35101 = { "ee35101", // class name
+ bases_ee35101, 4,
+ &(vtc_ee35101[0]), // expected_vtbl_contents
+ &(vtt_ee35101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35101),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names336,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45101 : dd5101 {
+ int e;
+ virtual void bar(); // _ZN7ee451013barEv
+ ~ee45101(); // tgen
+ ee45101(); // tgen
+};
+//SIG(1 ee45101) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45101 ::bar(){vfunc_called(this, "_ZN7ee451013barEv");}
+ee45101 ::~ee45101(){ note_dtor("ee45101", this);} // tgen
+ee45101 ::ee45101(){ note_ctor("ee45101", this);} // tgen
+
+static void Test_ee45101()
+{
+ extern Class_Descriptor cd_ee45101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45101, buf);
+ ee45101 *dp, &lv = *(dp=new (buf) ee45101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee45101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee45101");
+ check_base_class_offset(lv, (cc101*)(dd5101*), ABISELECT(16,12), "ee45101");
+ check_base_class_offset(lv, (dd5101*), 0, "ee45101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45101.e");
+ test_class_info(&lv, &cd_ee45101);
+ dp->~ee45101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45101(Test_ee45101, "ee45101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45101C1Ev();
+extern void _ZN7ee45101D1Ev();
+Name_Map name_map_ee45101[] = {
+ NSPAIR(_ZN7ee45101C1Ev),
+ NSPAIR(_ZN7ee45101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd5101;
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+static Base_Class bases_ee45101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45101[];
+extern void _ZN7ee451013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee45101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45101[0]),
+ (VTBL_ENTRY)&_ZN7ee451013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45101[0]),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45101[];
+extern void _ZN6dd51013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5101__7ee45101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101__7ee45101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5101__7ee45101[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee45101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee45101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45101[] = {
+ {&(_ZTV7ee45101[4]), 4,12},
+ {&(_tg__ZTV6dd5101__7ee45101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd5101__7ee45101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd5101__7ee45101[3]), 3,4},
+ {&(_ZTV7ee45101[8]), 8,12},
+ {&(_ZTV7ee45101[11]), 11,12},
+ {&(_tg__ZTV5cc101__7ee45101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee45101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45101[];
+extern VTBL_ENTRY _ZTV7ee45101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45101[];
+Class_Descriptor cd_ee45101 = { "ee45101", // class name
+ bases_ee45101, 4,
+ &(vtc_ee45101[0]), // expected_vtbl_contents
+ &(vtt_ee45101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45101),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55101 : virtual dd5101 {
+ int e;
+ virtual void bar(); // _ZN7ee551013barEv
+ ~ee55101(); // tgen
+ ee55101(); // tgen
+};
+//SIG(1 ee55101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55101 ::bar(){vfunc_called(this, "_ZN7ee551013barEv");}
+ee55101 ::~ee55101(){ note_dtor("ee55101", this);} // tgen
+ee55101 ::ee55101(){ note_ctor("ee55101", this);} // tgen
+
+static void Test_ee55101()
+{
+ extern Class_Descriptor cd_ee55101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55101, buf);
+ ee55101 *dp, &lv = *(dp=new (buf) ee55101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee55101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee55101");
+ check_base_class_offset(lv, (cc101*)(dd5101*), ABISELECT(32,16), "ee55101");
+ check_base_class_offset(lv, (dd5101*), ABISELECT(16,8), "ee55101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55101.e");
+ test_class_info(&lv, &cd_ee55101);
+ dp->~ee55101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55101(Test_ee55101, "ee55101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55101C1Ev();
+extern void _ZN7ee55101D1Ev();
+Name_Map name_map_ee55101[] = {
+ NSPAIR(_ZN7ee55101C1Ev),
+ NSPAIR(_ZN7ee55101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd5101;
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+static Base_Class bases_ee55101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55101[];
+extern void _ZN7ee551013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551013barEv,_ZTv0_n20_N7ee551013barEv)();
+extern void ABISELECT(_ZThn16_N7ee551013barEv,_ZThn8_N7ee551013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee55101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55101[0]),
+ (VTBL_ENTRY)&_ZN7ee551013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551013barEv,_ZTv0_n20_N7ee551013barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55101[0]),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55101[];
+extern void _ZN6dd51013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5101__7ee55101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101__7ee55101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5101__7ee55101[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee55101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee55101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55101[] = {
+ {&(_ZTV7ee55101[5]), 5,19},
+ {&(_ZTV7ee55101[11]), 11,19},
+ {&(_ZTV7ee55101[15]), 15,19},
+ {&(_ZTV7ee55101[18]), 18,19},
+ {&(_tg__ZTV6dd5101__7ee55101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd5101__7ee55101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd5101__7ee55101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee55101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee55101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55101[];
+extern VTBL_ENTRY _ZTV7ee55101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55101[];
+static VTBL_ENTRY alt_thunk_names337[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551013barEv,_ZTv0_n20_N7ee551013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551013barEv,_ZThn8_N7ee551013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55101 = { "ee55101", // class name
+ bases_ee55101, 4,
+ &(vtc_ee55101[0]), // expected_vtbl_contents
+ &(vtt_ee55101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55101),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names337,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65101 : dd5101 {
+ int e;
+ virtual void foo(); // _ZN7ee651013fooEv
+ virtual void bar(); // _ZN7ee651013barEv
+ ~ee65101(); // tgen
+ ee65101(); // tgen
+};
+//SIG(1 ee65101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65101 ::foo(){vfunc_called(this, "_ZN7ee651013fooEv");}
+void ee65101 ::bar(){vfunc_called(this, "_ZN7ee651013barEv");}
+ee65101 ::~ee65101(){ note_dtor("ee65101", this);} // tgen
+ee65101 ::ee65101(){ note_ctor("ee65101", this);} // tgen
+
+static void Test_ee65101()
+{
+ extern Class_Descriptor cd_ee65101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65101, buf);
+ ee65101 *dp, &lv = *(dp=new (buf) ee65101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee65101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee65101");
+ check_base_class_offset(lv, (cc101*)(dd5101*), ABISELECT(16,12), "ee65101");
+ check_base_class_offset(lv, (dd5101*), 0, "ee65101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65101.e");
+ test_class_info(&lv, &cd_ee65101);
+ dp->~ee65101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65101(Test_ee65101, "ee65101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65101C1Ev();
+extern void _ZN7ee65101D1Ev();
+Name_Map name_map_ee65101[] = {
+ NSPAIR(_ZN7ee65101C1Ev),
+ NSPAIR(_ZN7ee65101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd5101;
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+static Base_Class bases_ee65101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65101[];
+extern void _ZN7ee651013barEv();
+extern void _ZN7ee651013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee651013fooEv,_ZTv0_n12_N7ee651013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651013fooEv,_ZThn20_N7ee651013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65101[0]),
+ (VTBL_ENTRY)&_ZN7ee651013barEv,
+ (VTBL_ENTRY)&_ZN7ee651013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651013fooEv,_ZTv0_n12_N7ee651013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65101[];
+extern void _ZN6dd51013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5101__7ee65101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101__7ee65101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5101__7ee65101[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee65101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee65101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65101[] = {
+ {&(_ZTV7ee65101[4]), 4,13},
+ {&(_tg__ZTV6dd5101__7ee65101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd5101__7ee65101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd5101__7ee65101[3]), 3,4},
+ {&(_ZTV7ee65101[9]), 9,13},
+ {&(_ZTV7ee65101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee65101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee65101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65101[];
+extern VTBL_ENTRY _ZTV7ee65101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65101[];
+static VTBL_ENTRY alt_thunk_names338[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651013fooEv,_ZTv0_n12_N7ee651013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651013fooEv,_ZThn20_N7ee651013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65101 = { "ee65101", // class name
+ bases_ee65101, 4,
+ &(vtc_ee65101[0]), // expected_vtbl_contents
+ &(vtt_ee65101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names338,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75101 : virtual dd5101 {
+ int e;
+ virtual void foo(); // _ZN7ee751013fooEv
+ virtual void bar(); // _ZN7ee751013barEv
+ ~ee75101(); // tgen
+ ee75101(); // tgen
+};
+//SIG(1 ee75101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75101 ::foo(){vfunc_called(this, "_ZN7ee751013fooEv");}
+void ee75101 ::bar(){vfunc_called(this, "_ZN7ee751013barEv");}
+ee75101 ::~ee75101(){ note_dtor("ee75101", this);} // tgen
+ee75101 ::ee75101(){ note_ctor("ee75101", this);} // tgen
+
+static void Test_ee75101()
+{
+ extern Class_Descriptor cd_ee75101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75101, buf);
+ ee75101 *dp, &lv = *(dp=new (buf) ee75101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee75101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee75101");
+ check_base_class_offset(lv, (cc101*)(dd5101*), ABISELECT(32,16), "ee75101");
+ check_base_class_offset(lv, (dd5101*), ABISELECT(16,8), "ee75101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75101.e");
+ test_class_info(&lv, &cd_ee75101);
+ dp->~ee75101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75101(Test_ee75101, "ee75101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75101C1Ev();
+extern void _ZN7ee75101D1Ev();
+Name_Map name_map_ee75101[] = {
+ NSPAIR(_ZN7ee75101C1Ev),
+ NSPAIR(_ZN7ee75101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd5101;
+extern VTBL_ENTRY _ZTI6dd5101[];
+extern VTBL_ENTRY _ZTV6dd5101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5101[];
+static Base_Class bases_ee75101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5101, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75101[];
+extern void _ZN7ee751013fooEv();
+extern void _ZN7ee751013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751013barEv,_ZTv0_n20_N7ee751013barEv)();
+extern void ABISELECT(_ZThn16_N7ee751013barEv,_ZThn8_N7ee751013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751013fooEv,_ZTv0_n12_N7ee751013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751013fooEv,_ZThn24_N7ee751013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75101[0]),
+ (VTBL_ENTRY)&_ZN7ee751013fooEv,
+ (VTBL_ENTRY)&_ZN7ee751013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751013barEv,_ZTv0_n20_N7ee751013barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75101[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751013fooEv,_ZTv0_n12_N7ee751013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75101[];
+extern void _ZN6dd51013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5101__7ee75101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN6dd51013barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd5101__7ee75101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5101__7ee75101[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee75101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee75101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75101[] = {
+ {&(_ZTV7ee75101[5]), 5,20},
+ {&(_ZTV7ee75101[12]), 12,20},
+ {&(_ZTV7ee75101[16]), 16,20},
+ {&(_ZTV7ee75101[19]), 19,20},
+ {&(_tg__ZTV6dd5101__7ee75101[4]), 4,5},
+ {&(_tg__ZTV5cc101__6dd5101__7ee75101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd5101__7ee75101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee75101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee75101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75101[];
+extern VTBL_ENTRY _ZTV7ee75101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75101[];
+static VTBL_ENTRY alt_thunk_names339[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751013fooEv,_ZTv0_n12_N7ee751013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751013fooEv,_ZThn24_N7ee751013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751013barEv,_ZTv0_n20_N7ee751013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751013barEv,_ZThn8_N7ee751013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75101 = { "ee75101", // class name
+ bases_ee75101, 4,
+ &(vtc_ee75101[0]), // expected_vtbl_contents
+ &(vtt_ee75101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75101),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names339,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6101 : cc101 {
+ int d;
+ virtual void bar(); // _ZN6dd61013barEv
+ virtual void foo(); // _ZN6dd61013fooEv
+ ~dd6101(); // tgen
+ dd6101(); // tgen
+};
+//SIG(-1 dd6101) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd6101 ::bar(){vfunc_called(this, "_ZN6dd61013barEv");}
+void dd6101 ::foo(){vfunc_called(this, "_ZN6dd61013fooEv");}
+dd6101 ::~dd6101(){ note_dtor("dd6101", this);} // tgen
+dd6101 ::dd6101(){ note_ctor("dd6101", this);} // tgen
+
+static void Test_dd6101()
+{
+ extern Class_Descriptor cd_dd6101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6101, buf);
+ dd6101 *dp, &lv = *(dp=new (buf) dd6101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd6101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(16,12), "dd6101");
+ check_base_class_offset(lv, (cc101*), 0, "dd6101");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6101.d");
+ test_class_info(&lv, &cd_dd6101);
+ dp->~dd6101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6101(Test_dd6101, "dd6101", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6101C1Ev();
+extern void _ZN6dd6101D1Ev();
+Name_Map name_map_dd6101[] = {
+ NSPAIR(_ZN6dd6101C1Ev),
+ NSPAIR(_ZN6dd6101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+static Base_Class bases_dd6101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6101[];
+static VTBL_ENTRY _tg__ZTV5cc101__6dd6101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__6dd6101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd6101[] = {
+ {&(_ZTV6dd6101[3]), 3,9},
+ {&(_tg__ZTV5cc101__6dd6101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__6dd6101[3]), 3,4},
+ {&(_ZTV6dd6101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static VTBL_ENTRY alt_thunk_names340[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6101 = { "dd6101", // class name
+ bases_dd6101, 3,
+ &(vtc_dd6101[0]), // expected_vtbl_contents
+ &(vtt_dd6101[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6101),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names340,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06101 : dd6101 {
+ int e;
+ ~ee06101(); // tgen
+ ee06101(); // tgen
+};
+//SIG(1 ee06101) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06101 ::~ee06101(){ note_dtor("ee06101", this);} // tgen
+ee06101 ::ee06101(){ note_ctor("ee06101", this);} // tgen
+
+static void Test_ee06101()
+{
+ extern Class_Descriptor cd_ee06101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06101, buf);
+ ee06101 *dp, &lv = *(dp=new (buf) ee06101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee06101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd6101*), ABISELECT(24,16), "ee06101");
+ check_base_class_offset(lv, (cc101*)(dd6101*), 0, "ee06101");
+ check_base_class_offset(lv, (dd6101*), 0, "ee06101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06101.e");
+ test_class_info(&lv, &cd_ee06101);
+ dp->~ee06101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06101(Test_ee06101, "ee06101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06101C1Ev();
+extern void _ZN7ee06101D1Ev();
+Name_Map name_map_ee06101[] = {
+ NSPAIR(_ZN7ee06101C1Ev),
+ NSPAIR(_ZN7ee06101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd6101;
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static Base_Class bases_ee06101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6101__7ee06101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd6101__7ee06101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd6101__7ee06101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6101__7ee06101[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+static VTT_ENTRY vtt_ee06101[] = {
+ {&(_ZTV7ee06101[3]), 3,9},
+ {&(_tg__ZTV6dd6101__7ee06101[3]), 3,5},
+ {&(_tg__ZTV5cc1016dd6101__7ee06101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd6101__7ee06101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6101__7ee06101[3]), 3,4},
+ {&(_ZTV7ee06101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06101[];
+extern VTBL_ENTRY _ZTV7ee06101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06101[];
+static VTBL_ENTRY alt_thunk_names341[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06101 = { "ee06101", // class name
+ bases_ee06101, 4,
+ &(vtc_ee06101[0]), // expected_vtbl_contents
+ &(vtt_ee06101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names341,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16101 : virtual dd6101 {
+ int e;
+ ~ee16101(); // tgen
+ ee16101(); // tgen
+};
+//SIG(1 ee16101) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16101 ::~ee16101(){ note_dtor("ee16101", this);} // tgen
+ee16101 ::ee16101(){ note_ctor("ee16101", this);} // tgen
+
+static void Test_ee16101()
+{
+ extern Class_Descriptor cd_ee16101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16101, buf);
+ ee16101 *dp, &lv = *(dp=new (buf) ee16101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee16101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd6101*), ABISELECT(32,20), "ee16101");
+ check_base_class_offset(lv, (cc101*)(dd6101*), ABISELECT(16,8), "ee16101");
+ check_base_class_offset(lv, (dd6101*), ABISELECT(16,8), "ee16101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16101.e");
+ test_class_info(&lv, &cd_ee16101);
+ dp->~ee16101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16101(Test_ee16101, "ee16101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16101C1Ev();
+extern void _ZN7ee16101D1Ev();
+Name_Map name_map_ee16101[] = {
+ NSPAIR(_ZN7ee16101C1Ev),
+ NSPAIR(_ZN7ee16101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd6101;
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static Base_Class bases_ee16101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6101, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16101[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6101__7ee16101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd6101__7ee16101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd6101__7ee16101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6101__7ee16101[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+static VTT_ENTRY vtt_ee16101[] = {
+ {&(_ZTV7ee16101[4]), 4,15},
+ {&(_ZTV7ee16101[9]), 9,15},
+ {&(_ZTV7ee16101[14]), 14,15},
+ {&(_tg__ZTV6dd6101__7ee16101[3]), 3,5},
+ {&(_tg__ZTV5cc1016dd6101__7ee16101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd6101__7ee16101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6101__7ee16101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16101[];
+extern VTBL_ENTRY _ZTV7ee16101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16101[];
+static VTBL_ENTRY alt_thunk_names342[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16101 = { "ee16101", // class name
+ bases_ee16101, 4,
+ &(vtc_ee16101[0]), // expected_vtbl_contents
+ &(vtt_ee16101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16101),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names342,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26101 : dd6101 {
+ int e;
+ virtual void foo(); // _ZN7ee261013fooEv
+ ~ee26101(); // tgen
+ ee26101(); // tgen
+};
+//SIG(1 ee26101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26101 ::foo(){vfunc_called(this, "_ZN7ee261013fooEv");}
+ee26101 ::~ee26101(){ note_dtor("ee26101", this);} // tgen
+ee26101 ::ee26101(){ note_ctor("ee26101", this);} // tgen
+
+static void Test_ee26101()
+{
+ extern Class_Descriptor cd_ee26101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26101, buf);
+ ee26101 *dp, &lv = *(dp=new (buf) ee26101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee26101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd6101*), ABISELECT(24,16), "ee26101");
+ check_base_class_offset(lv, (cc101*)(dd6101*), 0, "ee26101");
+ check_base_class_offset(lv, (dd6101*), 0, "ee26101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26101.e");
+ test_class_info(&lv, &cd_ee26101);
+ dp->~ee26101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26101(Test_ee26101, "ee26101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26101C1Ev();
+extern void _ZN7ee26101D1Ev();
+Name_Map name_map_ee26101[] = {
+ NSPAIR(_ZN7ee26101C1Ev),
+ NSPAIR(_ZN7ee26101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd6101;
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static Base_Class bases_ee26101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN7ee261013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee261013fooEv,_ZTv0_n12_N7ee261013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261013fooEv,_ZThn16_N7ee261013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN7ee261013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261013fooEv,_ZTv0_n12_N7ee261013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6101__7ee26101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd6101__7ee26101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd6101__7ee26101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6101__7ee26101[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+static VTT_ENTRY vtt_ee26101[] = {
+ {&(_ZTV7ee26101[3]), 3,9},
+ {&(_tg__ZTV6dd6101__7ee26101[3]), 3,5},
+ {&(_tg__ZTV5cc1016dd6101__7ee26101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd6101__7ee26101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6101__7ee26101[3]), 3,4},
+ {&(_ZTV7ee26101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26101[];
+extern VTBL_ENTRY _ZTV7ee26101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26101[];
+static VTBL_ENTRY alt_thunk_names343[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261013fooEv,_ZTv0_n12_N7ee261013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261013fooEv,_ZThn16_N7ee261013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26101 = { "ee26101", // class name
+ bases_ee26101, 4,
+ &(vtc_ee26101[0]), // expected_vtbl_contents
+ &(vtt_ee26101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names343,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36101 : virtual dd6101 {
+ int e;
+ virtual void foo(); // _ZN7ee361013fooEv
+ ~ee36101(); // tgen
+ ee36101(); // tgen
+};
+//SIG(1 ee36101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36101 ::foo(){vfunc_called(this, "_ZN7ee361013fooEv");}
+ee36101 ::~ee36101(){ note_dtor("ee36101", this);} // tgen
+ee36101 ::ee36101(){ note_ctor("ee36101", this);} // tgen
+
+static void Test_ee36101()
+{
+ extern Class_Descriptor cd_ee36101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36101, buf);
+ ee36101 *dp, &lv = *(dp=new (buf) ee36101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee36101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd6101*), ABISELECT(32,20), "ee36101");
+ check_base_class_offset(lv, (cc101*)(dd6101*), ABISELECT(16,8), "ee36101");
+ check_base_class_offset(lv, (dd6101*), ABISELECT(16,8), "ee36101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36101.e");
+ test_class_info(&lv, &cd_ee36101);
+ dp->~ee36101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36101(Test_ee36101, "ee36101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36101C1Ev();
+extern void _ZN7ee36101D1Ev();
+Name_Map name_map_ee36101[] = {
+ NSPAIR(_ZN7ee36101C1Ev),
+ NSPAIR(_ZN7ee36101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd6101;
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static Base_Class bases_ee36101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36101[];
+extern void _ZN7ee361013fooEv();
+extern void _ZN6dd61013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361013fooEv,_ZTv0_n20_N7ee361013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361013fooEv,_ZThn8_N7ee361013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361013fooEv,_ZTv0_n12_N7ee361013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361013fooEv,_ZThn20_N7ee361013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36101[0]),
+ (VTBL_ENTRY)&_ZN7ee361013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361013fooEv,_ZTv0_n20_N7ee361013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361013fooEv,_ZTv0_n12_N7ee361013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6101__7ee36101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd6101__7ee36101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd6101__7ee36101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6101__7ee36101[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+static VTT_ENTRY vtt_ee36101[] = {
+ {&(_ZTV7ee36101[4]), 4,16},
+ {&(_ZTV7ee36101[10]), 10,16},
+ {&(_ZTV7ee36101[15]), 15,16},
+ {&(_tg__ZTV6dd6101__7ee36101[3]), 3,5},
+ {&(_tg__ZTV5cc1016dd6101__7ee36101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd6101__7ee36101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6101__7ee36101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36101[];
+extern VTBL_ENTRY _ZTV7ee36101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36101[];
+static VTBL_ENTRY alt_thunk_names344[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361013fooEv,_ZTv0_n12_N7ee361013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361013fooEv,_ZThn20_N7ee361013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361013fooEv,_ZTv0_n20_N7ee361013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361013fooEv,_ZThn8_N7ee361013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36101 = { "ee36101", // class name
+ bases_ee36101, 4,
+ &(vtc_ee36101[0]), // expected_vtbl_contents
+ &(vtt_ee36101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36101),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names344,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46101 : dd6101 {
+ int e;
+ virtual void bar(); // _ZN7ee461013barEv
+ ~ee46101(); // tgen
+ ee46101(); // tgen
+};
+//SIG(1 ee46101) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46101 ::bar(){vfunc_called(this, "_ZN7ee461013barEv");}
+ee46101 ::~ee46101(){ note_dtor("ee46101", this);} // tgen
+ee46101 ::ee46101(){ note_ctor("ee46101", this);} // tgen
+
+static void Test_ee46101()
+{
+ extern Class_Descriptor cd_ee46101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46101, buf);
+ ee46101 *dp, &lv = *(dp=new (buf) ee46101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee46101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd6101*), ABISELECT(24,16), "ee46101");
+ check_base_class_offset(lv, (cc101*)(dd6101*), 0, "ee46101");
+ check_base_class_offset(lv, (dd6101*), 0, "ee46101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46101.e");
+ test_class_info(&lv, &cd_ee46101);
+ dp->~ee46101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46101(Test_ee46101, "ee46101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46101C1Ev();
+extern void _ZN7ee46101D1Ev();
+Name_Map name_map_ee46101[] = {
+ NSPAIR(_ZN7ee46101C1Ev),
+ NSPAIR(_ZN7ee46101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd6101;
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static Base_Class bases_ee46101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46101[];
+extern void _ZN7ee461013barEv();
+extern void _ZN6dd61013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46101[0]),
+ (VTBL_ENTRY)&_ZN7ee461013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6101__7ee46101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd6101__7ee46101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd6101__7ee46101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6101__7ee46101[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+static VTT_ENTRY vtt_ee46101[] = {
+ {&(_ZTV7ee46101[3]), 3,9},
+ {&(_tg__ZTV6dd6101__7ee46101[3]), 3,5},
+ {&(_tg__ZTV5cc1016dd6101__7ee46101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd6101__7ee46101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6101__7ee46101[3]), 3,4},
+ {&(_ZTV7ee46101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46101[];
+extern VTBL_ENTRY _ZTV7ee46101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46101[];
+static VTBL_ENTRY alt_thunk_names345[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46101 = { "ee46101", // class name
+ bases_ee46101, 4,
+ &(vtc_ee46101[0]), // expected_vtbl_contents
+ &(vtt_ee46101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names345,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56101 : virtual dd6101 {
+ int e;
+ virtual void bar(); // _ZN7ee561013barEv
+ ~ee56101(); // tgen
+ ee56101(); // tgen
+};
+//SIG(1 ee56101) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56101 ::bar(){vfunc_called(this, "_ZN7ee561013barEv");}
+ee56101 ::~ee56101(){ note_dtor("ee56101", this);} // tgen
+ee56101 ::ee56101(){ note_ctor("ee56101", this);} // tgen
+
+static void Test_ee56101()
+{
+ extern Class_Descriptor cd_ee56101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56101, buf);
+ ee56101 *dp, &lv = *(dp=new (buf) ee56101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee56101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd6101*), ABISELECT(32,20), "ee56101");
+ check_base_class_offset(lv, (cc101*)(dd6101*), ABISELECT(16,8), "ee56101");
+ check_base_class_offset(lv, (dd6101*), ABISELECT(16,8), "ee56101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56101.e");
+ test_class_info(&lv, &cd_ee56101);
+ dp->~ee56101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56101(Test_ee56101, "ee56101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56101C1Ev();
+extern void _ZN7ee56101D1Ev();
+Name_Map name_map_ee56101[] = {
+ NSPAIR(_ZN7ee56101C1Ev),
+ NSPAIR(_ZN7ee56101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd6101;
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static Base_Class bases_ee56101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56101[];
+extern void _ZN7ee561013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561013barEv,_ZTv0_n16_N7ee561013barEv)();
+extern void ABISELECT(_ZThn16_N7ee561013barEv,_ZThn8_N7ee561013barEv)() __attribute__((weak));
+extern void _ZN6dd61013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56101[0]),
+ (VTBL_ENTRY)&_ZN7ee561013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561013barEv,_ZTv0_n16_N7ee561013barEv),
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6101__7ee56101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd6101__7ee56101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd6101__7ee56101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6101__7ee56101[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+static VTT_ENTRY vtt_ee56101[] = {
+ {&(_ZTV7ee56101[4]), 4,16},
+ {&(_ZTV7ee56101[10]), 10,16},
+ {&(_ZTV7ee56101[15]), 15,16},
+ {&(_tg__ZTV6dd6101__7ee56101[3]), 3,5},
+ {&(_tg__ZTV5cc1016dd6101__7ee56101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd6101__7ee56101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6101__7ee56101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56101[];
+extern VTBL_ENTRY _ZTV7ee56101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56101[];
+static VTBL_ENTRY alt_thunk_names346[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561013barEv,_ZTv0_n16_N7ee561013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561013barEv,_ZThn8_N7ee561013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56101 = { "ee56101", // class name
+ bases_ee56101, 4,
+ &(vtc_ee56101[0]), // expected_vtbl_contents
+ &(vtt_ee56101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56101),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names346,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66101 : dd6101 {
+ int e;
+ virtual void foo(); // _ZN7ee661013fooEv
+ virtual void bar(); // _ZN7ee661013barEv
+ ~ee66101(); // tgen
+ ee66101(); // tgen
+};
+//SIG(1 ee66101) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66101 ::foo(){vfunc_called(this, "_ZN7ee661013fooEv");}
+void ee66101 ::bar(){vfunc_called(this, "_ZN7ee661013barEv");}
+ee66101 ::~ee66101(){ note_dtor("ee66101", this);} // tgen
+ee66101 ::ee66101(){ note_ctor("ee66101", this);} // tgen
+
+static void Test_ee66101()
+{
+ extern Class_Descriptor cd_ee66101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66101, buf);
+ ee66101 *dp, &lv = *(dp=new (buf) ee66101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee66101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd6101*), ABISELECT(24,16), "ee66101");
+ check_base_class_offset(lv, (cc101*)(dd6101*), 0, "ee66101");
+ check_base_class_offset(lv, (dd6101*), 0, "ee66101");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66101.e");
+ test_class_info(&lv, &cd_ee66101);
+ dp->~ee66101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66101(Test_ee66101, "ee66101", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66101C1Ev();
+extern void _ZN7ee66101D1Ev();
+Name_Map name_map_ee66101[] = {
+ NSPAIR(_ZN7ee66101C1Ev),
+ NSPAIR(_ZN7ee66101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd6101;
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static Base_Class bases_ee66101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66101[];
+extern void _ZN7ee661013barEv();
+extern void _ZN7ee661013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee661013fooEv,_ZTv0_n12_N7ee661013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661013fooEv,_ZThn16_N7ee661013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66101[0]),
+ (VTBL_ENTRY)&_ZN7ee661013barEv,
+ (VTBL_ENTRY)&_ZN7ee661013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661013fooEv,_ZTv0_n12_N7ee661013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6101__7ee66101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd6101__7ee66101[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd6101__7ee66101[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6101__7ee66101[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+static VTT_ENTRY vtt_ee66101[] = {
+ {&(_ZTV7ee66101[3]), 3,9},
+ {&(_tg__ZTV6dd6101__7ee66101[3]), 3,5},
+ {&(_tg__ZTV5cc1016dd6101__7ee66101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd6101__7ee66101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6101__7ee66101[3]), 3,4},
+ {&(_ZTV7ee66101[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66101[];
+extern VTBL_ENTRY _ZTV7ee66101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66101[];
+static VTBL_ENTRY alt_thunk_names347[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61013fooEv,_ZThn16_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661013fooEv,_ZTv0_n12_N7ee661013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661013fooEv,_ZThn16_N7ee661013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66101 = { "ee66101", // class name
+ bases_ee66101, 4,
+ &(vtc_ee66101[0]), // expected_vtbl_contents
+ &(vtt_ee66101[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66101),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66101),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names347,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76101 : virtual dd6101 {
+ int e;
+ virtual void foo(); // _ZN7ee761013fooEv
+ virtual void bar(); // _ZN7ee761013barEv
+ ~ee76101(); // tgen
+ ee76101(); // tgen
+};
+//SIG(1 ee76101) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76101 ::foo(){vfunc_called(this, "_ZN7ee761013fooEv");}
+void ee76101 ::bar(){vfunc_called(this, "_ZN7ee761013barEv");}
+ee76101 ::~ee76101(){ note_dtor("ee76101", this);} // tgen
+ee76101 ::ee76101(){ note_ctor("ee76101", this);} // tgen
+
+static void Test_ee76101()
+{
+ extern Class_Descriptor cd_ee76101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76101, buf);
+ ee76101 *dp, &lv = *(dp=new (buf) ee76101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee76101");
+ check_base_class_offset(lv, (bb01*)(cc101*)(dd6101*), ABISELECT(32,20), "ee76101");
+ check_base_class_offset(lv, (cc101*)(dd6101*), ABISELECT(16,8), "ee76101");
+ check_base_class_offset(lv, (dd6101*), ABISELECT(16,8), "ee76101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76101.e");
+ test_class_info(&lv, &cd_ee76101);
+ dp->~ee76101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76101(Test_ee76101, "ee76101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76101C1Ev();
+extern void _ZN7ee76101D1Ev();
+Name_Map name_map_ee76101[] = {
+ NSPAIR(_ZN7ee76101C1Ev),
+ NSPAIR(_ZN7ee76101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd6101;
+extern VTBL_ENTRY _ZTI6dd6101[];
+extern VTBL_ENTRY _ZTV6dd6101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6101[];
+static Base_Class bases_ee76101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76101[];
+extern void _ZN7ee761013fooEv();
+extern void _ZN7ee761013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761013barEv,_ZTv0_n16_N7ee761013barEv)();
+extern void ABISELECT(_ZThn16_N7ee761013barEv,_ZThn8_N7ee761013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761013fooEv,_ZTv0_n20_N7ee761013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761013fooEv,_ZThn8_N7ee761013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761013fooEv,_ZTv0_n12_N7ee761013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761013fooEv,_ZThn20_N7ee761013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76101[0]),
+ (VTBL_ENTRY)&_ZN7ee761013fooEv,
+ (VTBL_ENTRY)&_ZN7ee761013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761013barEv,_ZTv0_n16_N7ee761013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761013fooEv,_ZTv0_n20_N7ee761013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761013fooEv,_ZTv0_n12_N7ee761013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76101[];
+extern void _ZN6dd61013barEv();
+extern void _ZN6dd61013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6101__7ee76101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&_ZN6dd61013barEv,
+ (VTBL_ENTRY)&_ZN6dd61013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1016dd6101__7ee76101[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc1016dd6101__7ee76101[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6101__7ee76101[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv),
+};
+static VTT_ENTRY vtt_ee76101[] = {
+ {&(_ZTV7ee76101[4]), 4,17},
+ {&(_ZTV7ee76101[11]), 11,17},
+ {&(_ZTV7ee76101[16]), 16,17},
+ {&(_tg__ZTV6dd6101__7ee76101[3]), 3,5},
+ {&(_tg__ZTV5cc1016dd6101__7ee76101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc1016dd6101__7ee76101[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6101__7ee76101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76101[];
+extern VTBL_ENTRY _ZTV7ee76101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76101[];
+static VTBL_ENTRY alt_thunk_names348[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61013fooEv,_ZTv0_n12_N6dd61013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61013fooEv,_ZThn12_N6dd61013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761013fooEv,_ZTv0_n12_N7ee761013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761013fooEv,_ZThn20_N7ee761013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761013fooEv,_ZTv0_n20_N7ee761013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761013fooEv,_ZThn8_N7ee761013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761013barEv,_ZTv0_n16_N7ee761013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761013barEv,_ZThn8_N7ee761013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76101 = { "ee76101", // class name
+ bases_ee76101, 4,
+ &(vtc_ee76101[0]), // expected_vtbl_contents
+ &(vtt_ee76101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76101),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76101),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names348,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7101 : virtual cc101 {
+ int d;
+ virtual void bar(); // _ZN6dd71013barEv
+ virtual void foo(); // _ZN6dd71013fooEv
+ ~dd7101(); // tgen
+ dd7101(); // tgen
+};
+//SIG(-1 dd7101) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd7101 ::bar(){vfunc_called(this, "_ZN6dd71013barEv");}
+void dd7101 ::foo(){vfunc_called(this, "_ZN6dd71013fooEv");}
+dd7101 ::~dd7101(){ note_dtor("dd7101", this);} // tgen
+dd7101 ::dd7101(){ note_ctor("dd7101", this);} // tgen
+
+static void Test_dd7101()
+{
+ extern Class_Descriptor cd_dd7101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7101, buf);
+ dd7101 *dp, &lv = *(dp=new (buf) dd7101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd7101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,16), "dd7101");
+ check_base_class_offset(lv, (cc101*), ABISELECT(16,8), "dd7101");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7101.d");
+ test_class_info(&lv, &cd_dd7101);
+ dp->~dd7101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7101(Test_dd7101, "dd7101", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7101C1Ev();
+extern void _ZN6dd7101D1Ev();
+Name_Map name_map_dd7101[] = {
+ NSPAIR(_ZN6dd7101C1Ev),
+ NSPAIR(_ZN6dd7101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+static Base_Class bases_dd7101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7101[];
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__6dd7101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd7101[] = {
+ {&(_ZTV6dd7101[4]), 4,13},
+ {&(_ZTV6dd7101[9]), 9,13},
+ {&(_ZTV6dd7101[12]), 12,13},
+ {&(_tg__ZTV5cc101__6dd7101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__6dd7101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static VTBL_ENTRY alt_thunk_names349[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7101 = { "dd7101", // class name
+ bases_dd7101, 3,
+ &(vtc_dd7101[0]), // expected_vtbl_contents
+ &(vtt_dd7101[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7101),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names349,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07101 : dd7101 {
+ int e;
+ ~ee07101(); // tgen
+ ee07101(); // tgen
+};
+//SIG(1 ee07101) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07101 ::~ee07101(){ note_dtor("ee07101", this);} // tgen
+ee07101 ::ee07101(){ note_ctor("ee07101", this);} // tgen
+
+static void Test_ee07101()
+{
+ extern Class_Descriptor cd_ee07101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07101, buf);
+ ee07101 *dp, &lv = *(dp=new (buf) ee07101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee07101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee07101");
+ check_base_class_offset(lv, (cc101*)(dd7101*), ABISELECT(16,12), "ee07101");
+ check_base_class_offset(lv, (dd7101*), 0, "ee07101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07101.e");
+ test_class_info(&lv, &cd_ee07101);
+ dp->~ee07101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07101(Test_ee07101, "ee07101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07101C1Ev();
+extern void _ZN7ee07101D1Ev();
+Name_Map name_map_ee07101[] = {
+ NSPAIR(_ZN7ee07101C1Ev),
+ NSPAIR(_ZN7ee07101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd7101;
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static Base_Class bases_ee07101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7101__7ee07101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101__7ee07101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7101__7ee07101[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee07101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee07101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee07101[] = {
+ {&(_ZTV7ee07101[4]), 4,13},
+ {&(_tg__ZTV6dd7101__7ee07101[4]), 4,6},
+ {&(_tg__ZTV5cc101__6dd7101__7ee07101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd7101__7ee07101[3]), 3,4},
+ {&(_ZTV7ee07101[9]), 9,13},
+ {&(_ZTV7ee07101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee07101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee07101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07101[];
+extern VTBL_ENTRY _ZTV7ee07101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07101[];
+static VTBL_ENTRY alt_thunk_names350[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07101 = { "ee07101", // class name
+ bases_ee07101, 4,
+ &(vtc_ee07101[0]), // expected_vtbl_contents
+ &(vtt_ee07101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names350,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17101 : virtual dd7101 {
+ int e;
+ ~ee17101(); // tgen
+ ee17101(); // tgen
+};
+//SIG(1 ee17101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17101 ::~ee17101(){ note_dtor("ee17101", this);} // tgen
+ee17101 ::ee17101(){ note_ctor("ee17101", this);} // tgen
+
+static void Test_ee17101()
+{
+ extern Class_Descriptor cd_ee17101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17101, buf);
+ ee17101 *dp, &lv = *(dp=new (buf) ee17101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee17101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee17101");
+ check_base_class_offset(lv, (cc101*)(dd7101*), ABISELECT(32,16), "ee17101");
+ check_base_class_offset(lv, (dd7101*), ABISELECT(16,8), "ee17101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17101.e");
+ test_class_info(&lv, &cd_ee17101);
+ dp->~ee17101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17101(Test_ee17101, "ee17101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17101C1Ev();
+extern void _ZN7ee17101D1Ev();
+Name_Map name_map_ee17101[] = {
+ NSPAIR(_ZN7ee17101C1Ev),
+ NSPAIR(_ZN7ee17101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd7101;
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static Base_Class bases_ee17101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7101, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17101[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17101[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7101__7ee17101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101__7ee17101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7101__7ee17101[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee17101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee17101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee17101[] = {
+ {&(_ZTV7ee17101[5]), 5,20},
+ {&(_ZTV7ee17101[11]), 11,20},
+ {&(_ZTV7ee17101[16]), 16,20},
+ {&(_ZTV7ee17101[19]), 19,20},
+ {&(_tg__ZTV6dd7101__7ee17101[4]), 4,6},
+ {&(_tg__ZTV5cc101__6dd7101__7ee17101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd7101__7ee17101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee17101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee17101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17101[];
+extern VTBL_ENTRY _ZTV7ee17101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17101[];
+static VTBL_ENTRY alt_thunk_names351[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17101 = { "ee17101", // class name
+ bases_ee17101, 4,
+ &(vtc_ee17101[0]), // expected_vtbl_contents
+ &(vtt_ee17101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17101),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names351,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27101 : dd7101 {
+ int e;
+ virtual void foo(); // _ZN7ee271013fooEv
+ ~ee27101(); // tgen
+ ee27101(); // tgen
+};
+//SIG(1 ee27101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27101 ::foo(){vfunc_called(this, "_ZN7ee271013fooEv");}
+ee27101 ::~ee27101(){ note_dtor("ee27101", this);} // tgen
+ee27101 ::ee27101(){ note_ctor("ee27101", this);} // tgen
+
+static void Test_ee27101()
+{
+ extern Class_Descriptor cd_ee27101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27101, buf);
+ ee27101 *dp, &lv = *(dp=new (buf) ee27101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee27101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee27101");
+ check_base_class_offset(lv, (cc101*)(dd7101*), ABISELECT(16,12), "ee27101");
+ check_base_class_offset(lv, (dd7101*), 0, "ee27101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27101.e");
+ test_class_info(&lv, &cd_ee27101);
+ dp->~ee27101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27101(Test_ee27101, "ee27101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27101C1Ev();
+extern void _ZN7ee27101D1Ev();
+Name_Map name_map_ee27101[] = {
+ NSPAIR(_ZN7ee27101C1Ev),
+ NSPAIR(_ZN7ee27101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd7101;
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static Base_Class bases_ee27101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN7ee271013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee271013fooEv,_ZTv0_n12_N7ee271013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271013fooEv,_ZThn20_N7ee271013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN7ee271013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271013fooEv,_ZTv0_n12_N7ee271013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7101__7ee27101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101__7ee27101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7101__7ee27101[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee27101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee27101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee27101[] = {
+ {&(_ZTV7ee27101[4]), 4,13},
+ {&(_tg__ZTV6dd7101__7ee27101[4]), 4,6},
+ {&(_tg__ZTV5cc101__6dd7101__7ee27101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd7101__7ee27101[3]), 3,4},
+ {&(_ZTV7ee27101[9]), 9,13},
+ {&(_ZTV7ee27101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee27101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee27101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27101[];
+extern VTBL_ENTRY _ZTV7ee27101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27101[];
+static VTBL_ENTRY alt_thunk_names352[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271013fooEv,_ZTv0_n12_N7ee271013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271013fooEv,_ZThn20_N7ee271013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27101 = { "ee27101", // class name
+ bases_ee27101, 4,
+ &(vtc_ee27101[0]), // expected_vtbl_contents
+ &(vtt_ee27101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names352,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37101 : virtual dd7101 {
+ int e;
+ virtual void foo(); // _ZN7ee371013fooEv
+ ~ee37101(); // tgen
+ ee37101(); // tgen
+};
+//SIG(1 ee37101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37101 ::foo(){vfunc_called(this, "_ZN7ee371013fooEv");}
+ee37101 ::~ee37101(){ note_dtor("ee37101", this);} // tgen
+ee37101 ::ee37101(){ note_ctor("ee37101", this);} // tgen
+
+static void Test_ee37101()
+{
+ extern Class_Descriptor cd_ee37101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37101, buf);
+ ee37101 *dp, &lv = *(dp=new (buf) ee37101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee37101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee37101");
+ check_base_class_offset(lv, (cc101*)(dd7101*), ABISELECT(32,16), "ee37101");
+ check_base_class_offset(lv, (dd7101*), ABISELECT(16,8), "ee37101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37101.e");
+ test_class_info(&lv, &cd_ee37101);
+ dp->~ee37101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37101(Test_ee37101, "ee37101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37101C1Ev();
+extern void _ZN7ee37101D1Ev();
+Name_Map name_map_ee37101[] = {
+ NSPAIR(_ZN7ee37101C1Ev),
+ NSPAIR(_ZN7ee37101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd7101;
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static Base_Class bases_ee37101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37101[];
+extern void _ZN7ee371013fooEv();
+extern void _ZN6dd71013barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371013fooEv,_ZTv0_n24_N7ee371013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371013fooEv,_ZThn8_N7ee371013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371013fooEv,_ZTv0_n12_N7ee371013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371013fooEv,_ZThn24_N7ee371013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37101[0]),
+ (VTBL_ENTRY)&_ZN7ee371013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371013fooEv,_ZTv0_n24_N7ee371013fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37101[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371013fooEv,_ZTv0_n12_N7ee371013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7101__7ee37101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101__7ee37101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7101__7ee37101[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee37101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee37101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee37101[] = {
+ {&(_ZTV7ee37101[5]), 5,21},
+ {&(_ZTV7ee37101[12]), 12,21},
+ {&(_ZTV7ee37101[17]), 17,21},
+ {&(_ZTV7ee37101[20]), 20,21},
+ {&(_tg__ZTV6dd7101__7ee37101[4]), 4,6},
+ {&(_tg__ZTV5cc101__6dd7101__7ee37101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd7101__7ee37101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee37101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee37101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37101[];
+extern VTBL_ENTRY _ZTV7ee37101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37101[];
+static VTBL_ENTRY alt_thunk_names353[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371013fooEv,_ZTv0_n12_N7ee371013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371013fooEv,_ZThn24_N7ee371013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371013fooEv,_ZTv0_n24_N7ee371013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371013fooEv,_ZThn8_N7ee371013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37101 = { "ee37101", // class name
+ bases_ee37101, 4,
+ &(vtc_ee37101[0]), // expected_vtbl_contents
+ &(vtt_ee37101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37101),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names353,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47101 : dd7101 {
+ int e;
+ virtual void bar(); // _ZN7ee471013barEv
+ ~ee47101(); // tgen
+ ee47101(); // tgen
+};
+//SIG(1 ee47101) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47101 ::bar(){vfunc_called(this, "_ZN7ee471013barEv");}
+ee47101 ::~ee47101(){ note_dtor("ee47101", this);} // tgen
+ee47101 ::ee47101(){ note_ctor("ee47101", this);} // tgen
+
+static void Test_ee47101()
+{
+ extern Class_Descriptor cd_ee47101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47101, buf);
+ ee47101 *dp, &lv = *(dp=new (buf) ee47101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee47101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee47101");
+ check_base_class_offset(lv, (cc101*)(dd7101*), ABISELECT(16,12), "ee47101");
+ check_base_class_offset(lv, (dd7101*), 0, "ee47101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47101.e");
+ test_class_info(&lv, &cd_ee47101);
+ dp->~ee47101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47101(Test_ee47101, "ee47101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47101C1Ev();
+extern void _ZN7ee47101D1Ev();
+Name_Map name_map_ee47101[] = {
+ NSPAIR(_ZN7ee47101C1Ev),
+ NSPAIR(_ZN7ee47101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd7101;
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static Base_Class bases_ee47101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47101[];
+extern void _ZN7ee471013barEv();
+extern void _ZN6dd71013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47101[0]),
+ (VTBL_ENTRY)&_ZN7ee471013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7101__7ee47101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101__7ee47101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7101__7ee47101[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee47101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee47101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee47101[] = {
+ {&(_ZTV7ee47101[4]), 4,13},
+ {&(_tg__ZTV6dd7101__7ee47101[4]), 4,6},
+ {&(_tg__ZTV5cc101__6dd7101__7ee47101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd7101__7ee47101[3]), 3,4},
+ {&(_ZTV7ee47101[9]), 9,13},
+ {&(_ZTV7ee47101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee47101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee47101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47101[];
+extern VTBL_ENTRY _ZTV7ee47101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47101[];
+static VTBL_ENTRY alt_thunk_names354[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47101 = { "ee47101", // class name
+ bases_ee47101, 4,
+ &(vtc_ee47101[0]), // expected_vtbl_contents
+ &(vtt_ee47101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names354,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57101 : virtual dd7101 {
+ int e;
+ virtual void bar(); // _ZN7ee571013barEv
+ ~ee57101(); // tgen
+ ee57101(); // tgen
+};
+//SIG(1 ee57101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57101 ::bar(){vfunc_called(this, "_ZN7ee571013barEv");}
+ee57101 ::~ee57101(){ note_dtor("ee57101", this);} // tgen
+ee57101 ::ee57101(){ note_ctor("ee57101", this);} // tgen
+
+static void Test_ee57101()
+{
+ extern Class_Descriptor cd_ee57101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57101, buf);
+ ee57101 *dp, &lv = *(dp=new (buf) ee57101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee57101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee57101");
+ check_base_class_offset(lv, (cc101*)(dd7101*), ABISELECT(32,16), "ee57101");
+ check_base_class_offset(lv, (dd7101*), ABISELECT(16,8), "ee57101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57101.e");
+ test_class_info(&lv, &cd_ee57101);
+ dp->~ee57101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57101(Test_ee57101, "ee57101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57101C1Ev();
+extern void _ZN7ee57101D1Ev();
+Name_Map name_map_ee57101[] = {
+ NSPAIR(_ZN7ee57101C1Ev),
+ NSPAIR(_ZN7ee57101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd7101;
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static Base_Class bases_ee57101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7101, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57101[];
+extern void _ZN7ee571013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571013barEv,_ZTv0_n20_N7ee571013barEv)();
+extern void ABISELECT(_ZThn16_N7ee571013barEv,_ZThn8_N7ee571013barEv)() __attribute__((weak));
+extern void _ZN6dd71013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57101[0]),
+ (VTBL_ENTRY)&_ZN7ee571013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571013barEv,_ZTv0_n20_N7ee571013barEv),
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57101[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7101__7ee57101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101__7ee57101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7101__7ee57101[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee57101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee57101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee57101[] = {
+ {&(_ZTV7ee57101[5]), 5,21},
+ {&(_ZTV7ee57101[12]), 12,21},
+ {&(_ZTV7ee57101[17]), 17,21},
+ {&(_ZTV7ee57101[20]), 20,21},
+ {&(_tg__ZTV6dd7101__7ee57101[4]), 4,6},
+ {&(_tg__ZTV5cc101__6dd7101__7ee57101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd7101__7ee57101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee57101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee57101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57101[];
+extern VTBL_ENTRY _ZTV7ee57101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57101[];
+static VTBL_ENTRY alt_thunk_names355[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571013barEv,_ZTv0_n20_N7ee571013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571013barEv,_ZThn8_N7ee571013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57101 = { "ee57101", // class name
+ bases_ee57101, 4,
+ &(vtc_ee57101[0]), // expected_vtbl_contents
+ &(vtt_ee57101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57101),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names355,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67101 : dd7101 {
+ int e;
+ virtual void foo(); // _ZN7ee671013fooEv
+ virtual void bar(); // _ZN7ee671013barEv
+ ~ee67101(); // tgen
+ ee67101(); // tgen
+};
+//SIG(1 ee67101) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67101 ::foo(){vfunc_called(this, "_ZN7ee671013fooEv");}
+void ee67101 ::bar(){vfunc_called(this, "_ZN7ee671013barEv");}
+ee67101 ::~ee67101(){ note_dtor("ee67101", this);} // tgen
+ee67101 ::ee67101(){ note_ctor("ee67101", this);} // tgen
+
+static void Test_ee67101()
+{
+ extern Class_Descriptor cd_ee67101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67101, buf);
+ ee67101 *dp, &lv = *(dp=new (buf) ee67101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee67101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(32,20), "ee67101");
+ check_base_class_offset(lv, (cc101*)(dd7101*), ABISELECT(16,12), "ee67101");
+ check_base_class_offset(lv, (dd7101*), 0, "ee67101");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67101.e");
+ test_class_info(&lv, &cd_ee67101);
+ dp->~ee67101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67101(Test_ee67101, "ee67101", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67101C1Ev();
+extern void _ZN7ee67101D1Ev();
+Name_Map name_map_ee67101[] = {
+ NSPAIR(_ZN7ee67101C1Ev),
+ NSPAIR(_ZN7ee67101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd7101;
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static Base_Class bases_ee67101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7101, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67101[];
+extern void _ZN7ee671013barEv();
+extern void _ZN7ee671013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee671013fooEv,_ZTv0_n12_N7ee671013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671013fooEv,_ZThn20_N7ee671013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67101[0]),
+ (VTBL_ENTRY)&_ZN7ee671013barEv,
+ (VTBL_ENTRY)&_ZN7ee671013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67101[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671013fooEv,_ZTv0_n12_N7ee671013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7101__7ee67101[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101__7ee67101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7101__7ee67101[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee67101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee67101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee67101[] = {
+ {&(_ZTV7ee67101[4]), 4,13},
+ {&(_tg__ZTV6dd7101__7ee67101[4]), 4,6},
+ {&(_tg__ZTV5cc101__6dd7101__7ee67101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd7101__7ee67101[3]), 3,4},
+ {&(_ZTV7ee67101[9]), 9,13},
+ {&(_ZTV7ee67101[12]), 12,13},
+ {&(_tg__ZTV5cc101__7ee67101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee67101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67101[];
+extern VTBL_ENTRY _ZTV7ee67101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67101[];
+static VTBL_ENTRY alt_thunk_names356[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn20_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671013fooEv,_ZTv0_n12_N7ee671013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671013fooEv,_ZThn20_N7ee671013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67101 = { "ee67101", // class name
+ bases_ee67101, 4,
+ &(vtc_ee67101[0]), // expected_vtbl_contents
+ &(vtt_ee67101[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67101),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67101),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67101),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names356,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77101 : virtual dd7101 {
+ int e;
+ virtual void foo(); // _ZN7ee771013fooEv
+ virtual void bar(); // _ZN7ee771013barEv
+ ~ee77101(); // tgen
+ ee77101(); // tgen
+};
+//SIG(1 ee77101) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77101 ::foo(){vfunc_called(this, "_ZN7ee771013fooEv");}
+void ee77101 ::bar(){vfunc_called(this, "_ZN7ee771013barEv");}
+ee77101 ::~ee77101(){ note_dtor("ee77101", this);} // tgen
+ee77101 ::ee77101(){ note_ctor("ee77101", this);} // tgen
+
+static void Test_ee77101()
+{
+ extern Class_Descriptor cd_ee77101;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77101, buf);
+ ee77101 *dp, &lv = *(dp=new (buf) ee77101());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77101)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77101)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee77101");
+ check_base_class_offset(lv, (bb01*)(cc101*), ABISELECT(48,24), "ee77101");
+ check_base_class_offset(lv, (cc101*)(dd7101*), ABISELECT(32,16), "ee77101");
+ check_base_class_offset(lv, (dd7101*), ABISELECT(16,8), "ee77101");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77101.e");
+ test_class_info(&lv, &cd_ee77101);
+ dp->~ee77101();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77101(Test_ee77101, "ee77101", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77101C1Ev();
+extern void _ZN7ee77101D1Ev();
+Name_Map name_map_ee77101[] = {
+ NSPAIR(_ZN7ee77101C1Ev),
+ NSPAIR(_ZN7ee77101D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc101;
+extern VTBL_ENTRY _ZTI5cc101[];
+extern VTBL_ENTRY _ZTV5cc101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc101[];
+extern Class_Descriptor cd_dd7101;
+extern VTBL_ENTRY _ZTI6dd7101[];
+extern VTBL_ENTRY _ZTV6dd7101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7101[];
+static Base_Class bases_ee77101[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc101, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7101, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77101[];
+extern void _ZN7ee771013fooEv();
+extern void _ZN7ee771013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771013barEv,_ZTv0_n20_N7ee771013barEv)();
+extern void ABISELECT(_ZThn16_N7ee771013barEv,_ZThn8_N7ee771013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771013fooEv,_ZTv0_n24_N7ee771013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771013fooEv,_ZThn8_N7ee771013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771013fooEv,_ZTv0_n12_N7ee771013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771013fooEv,_ZThn24_N7ee771013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77101[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77101[0]),
+ (VTBL_ENTRY)&_ZN7ee771013fooEv,
+ (VTBL_ENTRY)&_ZN7ee771013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771013barEv,_ZTv0_n20_N7ee771013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771013fooEv,_ZTv0_n24_N7ee771013fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77101[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771013fooEv,_ZTv0_n12_N7ee771013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77101[];
+extern void _ZN6dd71013barEv();
+extern void _ZN6dd71013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7101__7ee77101[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&_ZN6dd71013barEv,
+ (VTBL_ENTRY)&_ZN6dd71013fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc101__6dd7101__7ee77101[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7101__7ee77101[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7101[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc101__7ee77101[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc101__7ee77101[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc101[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee77101[] = {
+ {&(_ZTV7ee77101[5]), 5,22},
+ {&(_ZTV7ee77101[13]), 13,22},
+ {&(_ZTV7ee77101[18]), 18,22},
+ {&(_ZTV7ee77101[21]), 21,22},
+ {&(_tg__ZTV6dd7101__7ee77101[4]), 4,6},
+ {&(_tg__ZTV5cc101__6dd7101__7ee77101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__6dd7101__7ee77101[3]), 3,4},
+ {&(_tg__ZTV5cc101__7ee77101[3]), 3,3},
+ {&(_tg__ZTV3aa14bb01__5cc101__7ee77101[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77101[];
+extern VTBL_ENTRY _ZTV7ee77101[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77101[];
+static VTBL_ENTRY alt_thunk_names357[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71013fooEv,_ZTv0_n12_N6dd71013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71013fooEv,_ZThn16_N6dd71013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771013fooEv,_ZTv0_n12_N7ee771013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771013fooEv,_ZThn24_N7ee771013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771013fooEv,_ZTv0_n24_N7ee771013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771013fooEv,_ZThn8_N7ee771013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771013barEv,_ZTv0_n20_N7ee771013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771013barEv,_ZThn8_N7ee771013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77101 = { "ee77101", // class name
+ bases_ee77101, 4,
+ &(vtc_ee77101[0]), // expected_vtbl_contents
+ &(vtt_ee77101[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77101),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77101),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77101),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names357,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc201 : bb01 {
+ int c;
+ virtual void foo(); // _ZN5cc2013fooEv
+ ~cc201(); // tgen
+ cc201(); // tgen
+};
+//SIG(-1 cc201) C1{ BC2{ BC3{ v1 Fi} Fi} v1 Fi}
+
+
+void cc201 ::foo(){vfunc_called(this, "_ZN5cc2013fooEv");}
+cc201 ::~cc201(){ note_dtor("cc201", this);} // tgen
+cc201 ::cc201(){ note_ctor("cc201", this);} // tgen
+
+static void Test_cc201()
+{
+ extern Class_Descriptor cd_cc201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc201, buf);
+ cc201 *dp, &lv = *(dp=new (buf) cc201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc201)");
+ check_base_class_offset(lv, (aa1*)(bb01*), 0, "cc201");
+ check_base_class_offset(lv, (bb01*), 0, "cc201");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc201.c");
+ test_class_info(&lv, &cd_cc201);
+ dp->~cc201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc201(Test_cc201, "cc201", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc201C1Ev();
+extern void _ZN5cc201D1Ev();
+Name_Map name_map_cc201[] = {
+ NSPAIR(_ZN5cc201C1Ev),
+ NSPAIR(_ZN5cc201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+static Base_Class bases_cc201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc201[];
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_cc201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+Class_Descriptor cd_cc201 = { "cc201", // class name
+ bases_cc201, 2,
+ &(vtc_cc201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc201),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0201 : cc201 {
+ int d;
+ ~dd0201(); // tgen
+ dd0201(); // tgen
+};
+//SIG(-1 dd0201) C1{ BC2{ BC3{ BC4{ v1 Fi} Fi} v1 Fi} Fi}
+
+
+dd0201 ::~dd0201(){ note_dtor("dd0201", this);} // tgen
+dd0201 ::dd0201(){ note_ctor("dd0201", this);} // tgen
+
+static void Test_dd0201()
+{
+ extern Class_Descriptor cd_dd0201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0201, buf);
+ dd0201 *dp, &lv = *(dp=new (buf) dd0201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), 0, "dd0201");
+ check_base_class_offset(lv, (bb01*)(cc201*), 0, "dd0201");
+ check_base_class_offset(lv, (cc201*), 0, "dd0201");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0201.d");
+ test_class_info(&lv, &cd_dd0201);
+ dp->~dd0201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0201(Test_dd0201, "dd0201", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0201C1Ev();
+extern void _ZN6dd0201D1Ev();
+Name_Map name_map_dd0201[] = {
+ NSPAIR(_ZN6dd0201C1Ev),
+ NSPAIR(_ZN6dd0201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+static Base_Class bases_dd0201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_dd0201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+Class_Descriptor cd_dd0201 = { "dd0201", // class name
+ bases_dd0201, 3,
+ &(vtc_dd0201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0201),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00201 : dd0201 {
+ int e;
+ ~ee00201(); // tgen
+ ee00201(); // tgen
+};
+//SIG(1 ee00201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00201 ::~ee00201(){ note_dtor("ee00201", this);} // tgen
+ee00201 ::ee00201(){ note_ctor("ee00201", this);} // tgen
+
+static void Test_ee00201()
+{
+ extern Class_Descriptor cd_ee00201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00201, buf);
+ ee00201 *dp, &lv = *(dp=new (buf) ee00201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd0201*), 0, "ee00201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd0201*), 0, "ee00201");
+ check_base_class_offset(lv, (cc201*)(dd0201*), 0, "ee00201");
+ check_base_class_offset(lv, (dd0201*), 0, "ee00201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00201.e");
+ test_class_info(&lv, &cd_ee00201);
+ dp->~ee00201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00201(Test_ee00201, "ee00201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00201C1Ev();
+extern void _ZN7ee00201D1Ev();
+Name_Map name_map_ee00201[] = {
+ NSPAIR(_ZN7ee00201C1Ev),
+ NSPAIR(_ZN7ee00201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd0201;
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+static Base_Class bases_ee00201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00201[];
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee00201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee00201[];
+extern VTBL_ENTRY _ZTV7ee00201[];
+Class_Descriptor cd_ee00201 = { "ee00201", // class name
+ bases_ee00201, 4,
+ &(vtc_ee00201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00201),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10201 : virtual dd0201 {
+ int e;
+ ~ee10201(); // tgen
+ ee10201(); // tgen
+};
+//SIG(1 ee10201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10201 ::~ee10201(){ note_dtor("ee10201", this);} // tgen
+ee10201 ::ee10201(){ note_ctor("ee10201", this);} // tgen
+
+static void Test_ee10201()
+{
+ extern Class_Descriptor cd_ee10201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10201, buf);
+ ee10201 *dp, &lv = *(dp=new (buf) ee10201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd0201*), ABISELECT(16,8), "ee10201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd0201*), ABISELECT(16,8), "ee10201");
+ check_base_class_offset(lv, (cc201*)(dd0201*), ABISELECT(16,8), "ee10201");
+ check_base_class_offset(lv, (dd0201*), ABISELECT(16,8), "ee10201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10201.e");
+ test_class_info(&lv, &cd_ee10201);
+ dp->~ee10201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10201(Test_ee10201, "ee10201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10201C1Ev();
+extern void _ZN7ee10201D1Ev();
+Name_Map name_map_ee10201[] = {
+ NSPAIR(_ZN7ee10201C1Ev),
+ NSPAIR(_ZN7ee10201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd0201;
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+static Base_Class bases_ee10201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10201[];
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee10201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10201[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10201[];
+static VTT_ENTRY vtt_ee10201[] = {
+ {&(_ZTV7ee10201[3]), 3,7},
+ {&(_ZTV7ee10201[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee10201[];
+extern VTBL_ENTRY _ZTV7ee10201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10201[];
+Class_Descriptor cd_ee10201 = { "ee10201", // class name
+ bases_ee10201, 4,
+ &(vtc_ee10201[0]), // expected_vtbl_contents
+ &(vtt_ee10201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10201),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20201 : dd0201 {
+ int e;
+ virtual void foo(); // _ZN7ee202013fooEv
+ ~ee20201(); // tgen
+ ee20201(); // tgen
+};
+//SIG(1 ee20201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20201 ::foo(){vfunc_called(this, "_ZN7ee202013fooEv");}
+ee20201 ::~ee20201(){ note_dtor("ee20201", this);} // tgen
+ee20201 ::ee20201(){ note_ctor("ee20201", this);} // tgen
+
+static void Test_ee20201()
+{
+ extern Class_Descriptor cd_ee20201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20201, buf);
+ ee20201 *dp, &lv = *(dp=new (buf) ee20201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd0201*), 0, "ee20201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd0201*), 0, "ee20201");
+ check_base_class_offset(lv, (cc201*)(dd0201*), 0, "ee20201");
+ check_base_class_offset(lv, (dd0201*), 0, "ee20201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20201.e");
+ test_class_info(&lv, &cd_ee20201);
+ dp->~ee20201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20201(Test_ee20201, "ee20201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20201C1Ev();
+extern void _ZN7ee20201D1Ev();
+Name_Map name_map_ee20201[] = {
+ NSPAIR(_ZN7ee20201C1Ev),
+ NSPAIR(_ZN7ee20201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd0201;
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+static Base_Class bases_ee20201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20201[];
+extern void _ZN7ee202013fooEv();
+static VTBL_ENTRY vtc_ee20201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20201[0]),
+ (VTBL_ENTRY)&_ZN7ee202013fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee20201[];
+extern VTBL_ENTRY _ZTV7ee20201[];
+Class_Descriptor cd_ee20201 = { "ee20201", // class name
+ bases_ee20201, 4,
+ &(vtc_ee20201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20201),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30201 : virtual dd0201 {
+ int e;
+ virtual void foo(); // _ZN7ee302013fooEv
+ ~ee30201(); // tgen
+ ee30201(); // tgen
+};
+//SIG(1 ee30201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30201 ::foo(){vfunc_called(this, "_ZN7ee302013fooEv");}
+ee30201 ::~ee30201(){ note_dtor("ee30201", this);} // tgen
+ee30201 ::ee30201(){ note_ctor("ee30201", this);} // tgen
+
+static void Test_ee30201()
+{
+ extern Class_Descriptor cd_ee30201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30201, buf);
+ ee30201 *dp, &lv = *(dp=new (buf) ee30201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd0201*), ABISELECT(16,8), "ee30201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd0201*), ABISELECT(16,8), "ee30201");
+ check_base_class_offset(lv, (cc201*)(dd0201*), ABISELECT(16,8), "ee30201");
+ check_base_class_offset(lv, (dd0201*), ABISELECT(16,8), "ee30201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30201.e");
+ test_class_info(&lv, &cd_ee30201);
+ dp->~ee30201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30201(Test_ee30201, "ee30201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30201C1Ev();
+extern void _ZN7ee30201D1Ev();
+Name_Map name_map_ee30201[] = {
+ NSPAIR(_ZN7ee30201C1Ev),
+ NSPAIR(_ZN7ee30201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd0201;
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+static Base_Class bases_ee30201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30201[];
+extern void _ZN7ee302013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302013fooEv,_ZTv0_n12_N7ee302013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302013fooEv,_ZThn8_N7ee302013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30201[0]),
+ (VTBL_ENTRY)&_ZN7ee302013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302013fooEv,_ZTv0_n12_N7ee302013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30201[];
+static VTT_ENTRY vtt_ee30201[] = {
+ {&(_ZTV7ee30201[3]), 3,8},
+ {&(_ZTV7ee30201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee30201[];
+extern VTBL_ENTRY _ZTV7ee30201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30201[];
+static VTBL_ENTRY alt_thunk_names358[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302013fooEv,_ZTv0_n12_N7ee302013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302013fooEv,_ZThn8_N7ee302013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30201 = { "ee30201", // class name
+ bases_ee30201, 4,
+ &(vtc_ee30201[0]), // expected_vtbl_contents
+ &(vtt_ee30201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names358,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40201 : dd0201 {
+ int e;
+ virtual void bar(); // _ZN7ee402013barEv
+ ~ee40201(); // tgen
+ ee40201(); // tgen
+};
+//SIG(1 ee40201) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40201 ::bar(){vfunc_called(this, "_ZN7ee402013barEv");}
+ee40201 ::~ee40201(){ note_dtor("ee40201", this);} // tgen
+ee40201 ::ee40201(){ note_ctor("ee40201", this);} // tgen
+
+static void Test_ee40201()
+{
+ extern Class_Descriptor cd_ee40201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40201, buf);
+ ee40201 *dp, &lv = *(dp=new (buf) ee40201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd0201*), 0, "ee40201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd0201*), 0, "ee40201");
+ check_base_class_offset(lv, (cc201*)(dd0201*), 0, "ee40201");
+ check_base_class_offset(lv, (dd0201*), 0, "ee40201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40201.e");
+ test_class_info(&lv, &cd_ee40201);
+ dp->~ee40201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40201(Test_ee40201, "ee40201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40201C1Ev();
+extern void _ZN7ee40201D1Ev();
+Name_Map name_map_ee40201[] = {
+ NSPAIR(_ZN7ee40201C1Ev),
+ NSPAIR(_ZN7ee40201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd0201;
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+static Base_Class bases_ee40201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40201[];
+extern void _ZN5cc2013fooEv();
+extern void _ZN7ee402013barEv();
+static VTBL_ENTRY vtc_ee40201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+ (VTBL_ENTRY)&_ZN7ee402013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40201[];
+extern VTBL_ENTRY _ZTV7ee40201[];
+Class_Descriptor cd_ee40201 = { "ee40201", // class name
+ bases_ee40201, 4,
+ &(vtc_ee40201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50201 : virtual dd0201 {
+ int e;
+ virtual void bar(); // _ZN7ee502013barEv
+ ~ee50201(); // tgen
+ ee50201(); // tgen
+};
+//SIG(1 ee50201) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50201 ::bar(){vfunc_called(this, "_ZN7ee502013barEv");}
+ee50201 ::~ee50201(){ note_dtor("ee50201", this);} // tgen
+ee50201 ::ee50201(){ note_ctor("ee50201", this);} // tgen
+
+static void Test_ee50201()
+{
+ extern Class_Descriptor cd_ee50201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50201, buf);
+ ee50201 *dp, &lv = *(dp=new (buf) ee50201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd0201*), ABISELECT(16,8), "ee50201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd0201*), ABISELECT(16,8), "ee50201");
+ check_base_class_offset(lv, (cc201*)(dd0201*), ABISELECT(16,8), "ee50201");
+ check_base_class_offset(lv, (dd0201*), ABISELECT(16,8), "ee50201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50201.e");
+ test_class_info(&lv, &cd_ee50201);
+ dp->~ee50201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50201(Test_ee50201, "ee50201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50201C1Ev();
+extern void _ZN7ee50201D1Ev();
+Name_Map name_map_ee50201[] = {
+ NSPAIR(_ZN7ee50201C1Ev),
+ NSPAIR(_ZN7ee50201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd0201;
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+static Base_Class bases_ee50201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50201[];
+extern void _ZN7ee502013barEv();
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee50201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50201[0]),
+ (VTBL_ENTRY)&_ZN7ee502013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50201[];
+static VTT_ENTRY vtt_ee50201[] = {
+ {&(_ZTV7ee50201[3]), 3,8},
+ {&(_ZTV7ee50201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee50201[];
+extern VTBL_ENTRY _ZTV7ee50201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50201[];
+Class_Descriptor cd_ee50201 = { "ee50201", // class name
+ bases_ee50201, 4,
+ &(vtc_ee50201[0]), // expected_vtbl_contents
+ &(vtt_ee50201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60201 : dd0201 {
+ int e;
+ virtual void foo(); // _ZN7ee602013fooEv
+ virtual void bar(); // _ZN7ee602013barEv
+ ~ee60201(); // tgen
+ ee60201(); // tgen
+};
+//SIG(1 ee60201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60201 ::foo(){vfunc_called(this, "_ZN7ee602013fooEv");}
+void ee60201 ::bar(){vfunc_called(this, "_ZN7ee602013barEv");}
+ee60201 ::~ee60201(){ note_dtor("ee60201", this);} // tgen
+ee60201 ::ee60201(){ note_ctor("ee60201", this);} // tgen
+
+static void Test_ee60201()
+{
+ extern Class_Descriptor cd_ee60201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60201, buf);
+ ee60201 *dp, &lv = *(dp=new (buf) ee60201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd0201*), 0, "ee60201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd0201*), 0, "ee60201");
+ check_base_class_offset(lv, (cc201*)(dd0201*), 0, "ee60201");
+ check_base_class_offset(lv, (dd0201*), 0, "ee60201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60201.e");
+ test_class_info(&lv, &cd_ee60201);
+ dp->~ee60201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60201(Test_ee60201, "ee60201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60201C1Ev();
+extern void _ZN7ee60201D1Ev();
+Name_Map name_map_ee60201[] = {
+ NSPAIR(_ZN7ee60201C1Ev),
+ NSPAIR(_ZN7ee60201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd0201;
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+static Base_Class bases_ee60201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60201[];
+extern void _ZN7ee602013fooEv();
+extern void _ZN7ee602013barEv();
+static VTBL_ENTRY vtc_ee60201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60201[0]),
+ (VTBL_ENTRY)&_ZN7ee602013fooEv,
+ (VTBL_ENTRY)&_ZN7ee602013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60201[];
+extern VTBL_ENTRY _ZTV7ee60201[];
+Class_Descriptor cd_ee60201 = { "ee60201", // class name
+ bases_ee60201, 4,
+ &(vtc_ee60201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70201 : virtual dd0201 {
+ int e;
+ virtual void foo(); // _ZN7ee702013fooEv
+ virtual void bar(); // _ZN7ee702013barEv
+ ~ee70201(); // tgen
+ ee70201(); // tgen
+};
+//SIG(1 ee70201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70201 ::foo(){vfunc_called(this, "_ZN7ee702013fooEv");}
+void ee70201 ::bar(){vfunc_called(this, "_ZN7ee702013barEv");}
+ee70201 ::~ee70201(){ note_dtor("ee70201", this);} // tgen
+ee70201 ::ee70201(){ note_ctor("ee70201", this);} // tgen
+
+static void Test_ee70201()
+{
+ extern Class_Descriptor cd_ee70201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70201, buf);
+ ee70201 *dp, &lv = *(dp=new (buf) ee70201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd0201*), ABISELECT(16,8), "ee70201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd0201*), ABISELECT(16,8), "ee70201");
+ check_base_class_offset(lv, (cc201*)(dd0201*), ABISELECT(16,8), "ee70201");
+ check_base_class_offset(lv, (dd0201*), ABISELECT(16,8), "ee70201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70201.e");
+ test_class_info(&lv, &cd_ee70201);
+ dp->~ee70201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70201(Test_ee70201, "ee70201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70201C1Ev();
+extern void _ZN7ee70201D1Ev();
+Name_Map name_map_ee70201[] = {
+ NSPAIR(_ZN7ee70201C1Ev),
+ NSPAIR(_ZN7ee70201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd0201;
+extern VTBL_ENTRY _ZTI6dd0201[];
+extern VTBL_ENTRY _ZTV6dd0201[];
+static Base_Class bases_ee70201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70201[];
+extern void _ZN7ee702013fooEv();
+extern void _ZN7ee702013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702013fooEv,_ZTv0_n12_N7ee702013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702013fooEv,_ZThn8_N7ee702013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70201[0]),
+ (VTBL_ENTRY)&_ZN7ee702013fooEv,
+ (VTBL_ENTRY)&_ZN7ee702013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702013fooEv,_ZTv0_n12_N7ee702013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70201[];
+static VTT_ENTRY vtt_ee70201[] = {
+ {&(_ZTV7ee70201[3]), 3,9},
+ {&(_ZTV7ee70201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee70201[];
+extern VTBL_ENTRY _ZTV7ee70201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70201[];
+static VTBL_ENTRY alt_thunk_names359[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702013fooEv,_ZTv0_n12_N7ee702013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702013fooEv,_ZThn8_N7ee702013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70201 = { "ee70201", // class name
+ bases_ee70201, 4,
+ &(vtc_ee70201[0]), // expected_vtbl_contents
+ &(vtt_ee70201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names359,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1201 : virtual cc201 {
+ int d;
+ ~dd1201(); // tgen
+ dd1201(); // tgen
+};
+//SIG(-1 dd1201) C1{ VBC2{ BC3{ BC4{ v1 Fi} Fi} v1 Fi} Fi}
+
+
+dd1201 ::~dd1201(){ note_dtor("dd1201", this);} // tgen
+dd1201 ::dd1201(){ note_ctor("dd1201", this);} // tgen
+
+static void Test_dd1201()
+{
+ extern Class_Descriptor cd_dd1201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1201, buf);
+ dd1201 *dp, &lv = *(dp=new (buf) dd1201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,8), "dd1201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,8), "dd1201");
+ check_base_class_offset(lv, (cc201*), ABISELECT(16,8), "dd1201");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1201.d");
+ test_class_info(&lv, &cd_dd1201);
+ dp->~dd1201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1201(Test_dd1201, "dd1201", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1201C1Ev();
+extern void _ZN6dd1201D1Ev();
+Name_Map name_map_dd1201[] = {
+ NSPAIR(_ZN6dd1201C1Ev),
+ NSPAIR(_ZN6dd1201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+static Base_Class bases_dd1201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_dd1201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1201[];
+static VTT_ENTRY vtt_dd1201[] = {
+ {&(_ZTV6dd1201[3]), 3,7},
+ {&(_ZTV6dd1201[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+Class_Descriptor cd_dd1201 = { "dd1201", // class name
+ bases_dd1201, 3,
+ &(vtc_dd1201[0]), // expected_vtbl_contents
+ &(vtt_dd1201[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1201),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1201),2, //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 ee01201 : dd1201 {
+ int e;
+ ~ee01201(); // tgen
+ ee01201(); // tgen
+};
+//SIG(1 ee01201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01201 ::~ee01201(){ note_dtor("ee01201", this);} // tgen
+ee01201 ::ee01201(){ note_ctor("ee01201", this);} // tgen
+
+static void Test_ee01201()
+{
+ extern Class_Descriptor cd_ee01201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01201, buf);
+ ee01201 *dp, &lv = *(dp=new (buf) ee01201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee01201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee01201");
+ check_base_class_offset(lv, (cc201*)(dd1201*), ABISELECT(16,12), "ee01201");
+ check_base_class_offset(lv, (dd1201*), 0, "ee01201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01201.e");
+ test_class_info(&lv, &cd_ee01201);
+ dp->~ee01201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01201(Test_ee01201, "ee01201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01201C1Ev();
+extern void _ZN7ee01201D1Ev();
+Name_Map name_map_ee01201[] = {
+ NSPAIR(_ZN7ee01201C1Ev),
+ NSPAIR(_ZN7ee01201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd1201;
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+static Base_Class bases_ee01201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01201[];
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee01201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01201[0]),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01201[];
+static VTBL_ENTRY _tg__ZTV6dd1201__7ee01201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd1201__7ee01201[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee01201[] = {
+ {&(_ZTV7ee01201[3]), 3,7},
+ {&(_tg__ZTV6dd1201__7ee01201[3]), 3,3},
+ {&(_tg__ZTV5cc201__6dd1201__7ee01201[3]), 3,4},
+ {&(_ZTV7ee01201[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee01201[];
+extern VTBL_ENTRY _ZTV7ee01201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01201[];
+Class_Descriptor cd_ee01201 = { "ee01201", // class name
+ bases_ee01201, 4,
+ &(vtc_ee01201[0]), // expected_vtbl_contents
+ &(vtt_ee01201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01201),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11201 : virtual dd1201 {
+ int e;
+ ~ee11201(); // tgen
+ ee11201(); // tgen
+};
+//SIG(1 ee11201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11201 ::~ee11201(){ note_dtor("ee11201", this);} // tgen
+ee11201 ::ee11201(){ note_ctor("ee11201", this);} // tgen
+
+static void Test_ee11201()
+{
+ extern Class_Descriptor cd_ee11201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11201, buf);
+ ee11201 *dp, &lv = *(dp=new (buf) ee11201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee11201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee11201");
+ check_base_class_offset(lv, (cc201*)(dd1201*), ABISELECT(32,16), "ee11201");
+ check_base_class_offset(lv, (dd1201*), ABISELECT(16,8), "ee11201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11201.e");
+ test_class_info(&lv, &cd_ee11201);
+ dp->~ee11201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11201(Test_ee11201, "ee11201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11201C1Ev();
+extern void _ZN7ee11201D1Ev();
+Name_Map name_map_ee11201[] = {
+ NSPAIR(_ZN7ee11201C1Ev),
+ NSPAIR(_ZN7ee11201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd1201;
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+static Base_Class bases_ee11201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11201[];
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee11201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11201[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11201[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11201[];
+static VTBL_ENTRY _tg__ZTV6dd1201__7ee11201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd1201__7ee11201[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee11201[] = {
+ {&(_ZTV7ee11201[4]), 4,11},
+ {&(_ZTV7ee11201[7]), 7,11},
+ {&(_ZTV7ee11201[10]), 10,11},
+ {&(_tg__ZTV6dd1201__7ee11201[3]), 3,3},
+ {&(_tg__ZTV5cc201__6dd1201__7ee11201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11201[];
+extern VTBL_ENTRY _ZTV7ee11201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11201[];
+Class_Descriptor cd_ee11201 = { "ee11201", // class name
+ bases_ee11201, 4,
+ &(vtc_ee11201[0]), // expected_vtbl_contents
+ &(vtt_ee11201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11201),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21201 : dd1201 {
+ int e;
+ virtual void foo(); // _ZN7ee212013fooEv
+ ~ee21201(); // tgen
+ ee21201(); // tgen
+};
+//SIG(1 ee21201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21201 ::foo(){vfunc_called(this, "_ZN7ee212013fooEv");}
+ee21201 ::~ee21201(){ note_dtor("ee21201", this);} // tgen
+ee21201 ::ee21201(){ note_ctor("ee21201", this);} // tgen
+
+static void Test_ee21201()
+{
+ extern Class_Descriptor cd_ee21201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21201, buf);
+ ee21201 *dp, &lv = *(dp=new (buf) ee21201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee21201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee21201");
+ check_base_class_offset(lv, (cc201*)(dd1201*), ABISELECT(16,12), "ee21201");
+ check_base_class_offset(lv, (dd1201*), 0, "ee21201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21201.e");
+ test_class_info(&lv, &cd_ee21201);
+ dp->~ee21201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21201(Test_ee21201, "ee21201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21201C1Ev();
+extern void _ZN7ee21201D1Ev();
+Name_Map name_map_ee21201[] = {
+ NSPAIR(_ZN7ee21201C1Ev),
+ NSPAIR(_ZN7ee21201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd1201;
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+static Base_Class bases_ee21201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21201[];
+extern void _ZN7ee212013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212013fooEv,_ZTv0_n12_N7ee212013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212013fooEv,_ZThn12_N7ee212013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21201[0]),
+ (VTBL_ENTRY)&_ZN7ee212013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212013fooEv,_ZTv0_n12_N7ee212013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21201[];
+static VTBL_ENTRY _tg__ZTV6dd1201__7ee21201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd1201__7ee21201[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee21201[] = {
+ {&(_ZTV7ee21201[3]), 3,8},
+ {&(_tg__ZTV6dd1201__7ee21201[3]), 3,3},
+ {&(_tg__ZTV5cc201__6dd1201__7ee21201[3]), 3,4},
+ {&(_ZTV7ee21201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee21201[];
+extern VTBL_ENTRY _ZTV7ee21201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21201[];
+static VTBL_ENTRY alt_thunk_names360[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212013fooEv,_ZTv0_n12_N7ee212013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212013fooEv,_ZThn12_N7ee212013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21201 = { "ee21201", // class name
+ bases_ee21201, 4,
+ &(vtc_ee21201[0]), // expected_vtbl_contents
+ &(vtt_ee21201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names360,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31201 : virtual dd1201 {
+ int e;
+ virtual void foo(); // _ZN7ee312013fooEv
+ ~ee31201(); // tgen
+ ee31201(); // tgen
+};
+//SIG(1 ee31201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31201 ::foo(){vfunc_called(this, "_ZN7ee312013fooEv");}
+ee31201 ::~ee31201(){ note_dtor("ee31201", this);} // tgen
+ee31201 ::ee31201(){ note_ctor("ee31201", this);} // tgen
+
+static void Test_ee31201()
+{
+ extern Class_Descriptor cd_ee31201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31201, buf);
+ ee31201 *dp, &lv = *(dp=new (buf) ee31201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee31201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee31201");
+ check_base_class_offset(lv, (cc201*)(dd1201*), ABISELECT(32,16), "ee31201");
+ check_base_class_offset(lv, (dd1201*), ABISELECT(16,8), "ee31201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31201.e");
+ test_class_info(&lv, &cd_ee31201);
+ dp->~ee31201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31201(Test_ee31201, "ee31201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31201C1Ev();
+extern void _ZN7ee31201D1Ev();
+Name_Map name_map_ee31201[] = {
+ NSPAIR(_ZN7ee31201C1Ev),
+ NSPAIR(_ZN7ee31201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd1201;
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+static Base_Class bases_ee31201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31201[];
+extern void _ZN7ee312013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312013fooEv,_ZTv0_n12_N7ee312013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312013fooEv,_ZThn16_N7ee312013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31201[0]),
+ (VTBL_ENTRY)&_ZN7ee312013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31201[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312013fooEv,_ZTv0_n12_N7ee312013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31201[];
+static VTBL_ENTRY _tg__ZTV6dd1201__7ee31201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd1201__7ee31201[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee31201[] = {
+ {&(_ZTV7ee31201[4]), 4,12},
+ {&(_ZTV7ee31201[8]), 8,12},
+ {&(_ZTV7ee31201[11]), 11,12},
+ {&(_tg__ZTV6dd1201__7ee31201[3]), 3,3},
+ {&(_tg__ZTV5cc201__6dd1201__7ee31201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31201[];
+extern VTBL_ENTRY _ZTV7ee31201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31201[];
+static VTBL_ENTRY alt_thunk_names361[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312013fooEv,_ZTv0_n12_N7ee312013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312013fooEv,_ZThn16_N7ee312013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31201 = { "ee31201", // class name
+ bases_ee31201, 4,
+ &(vtc_ee31201[0]), // expected_vtbl_contents
+ &(vtt_ee31201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31201),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names361,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41201 : dd1201 {
+ int e;
+ virtual void bar(); // _ZN7ee412013barEv
+ ~ee41201(); // tgen
+ ee41201(); // tgen
+};
+//SIG(1 ee41201) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41201 ::bar(){vfunc_called(this, "_ZN7ee412013barEv");}
+ee41201 ::~ee41201(){ note_dtor("ee41201", this);} // tgen
+ee41201 ::ee41201(){ note_ctor("ee41201", this);} // tgen
+
+static void Test_ee41201()
+{
+ extern Class_Descriptor cd_ee41201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41201, buf);
+ ee41201 *dp, &lv = *(dp=new (buf) ee41201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee41201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee41201");
+ check_base_class_offset(lv, (cc201*)(dd1201*), ABISELECT(16,12), "ee41201");
+ check_base_class_offset(lv, (dd1201*), 0, "ee41201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41201.e");
+ test_class_info(&lv, &cd_ee41201);
+ dp->~ee41201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41201(Test_ee41201, "ee41201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41201C1Ev();
+extern void _ZN7ee41201D1Ev();
+Name_Map name_map_ee41201[] = {
+ NSPAIR(_ZN7ee41201C1Ev),
+ NSPAIR(_ZN7ee41201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd1201;
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+static Base_Class bases_ee41201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41201[];
+extern void _ZN7ee412013barEv();
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee41201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41201[0]),
+ (VTBL_ENTRY)&_ZN7ee412013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41201[];
+static VTBL_ENTRY _tg__ZTV6dd1201__7ee41201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd1201__7ee41201[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee41201[] = {
+ {&(_ZTV7ee41201[3]), 3,8},
+ {&(_tg__ZTV6dd1201__7ee41201[3]), 3,3},
+ {&(_tg__ZTV5cc201__6dd1201__7ee41201[3]), 3,4},
+ {&(_ZTV7ee41201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee41201[];
+extern VTBL_ENTRY _ZTV7ee41201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41201[];
+Class_Descriptor cd_ee41201 = { "ee41201", // class name
+ bases_ee41201, 4,
+ &(vtc_ee41201[0]), // expected_vtbl_contents
+ &(vtt_ee41201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51201 : virtual dd1201 {
+ int e;
+ virtual void bar(); // _ZN7ee512013barEv
+ ~ee51201(); // tgen
+ ee51201(); // tgen
+};
+//SIG(1 ee51201) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51201 ::bar(){vfunc_called(this, "_ZN7ee512013barEv");}
+ee51201 ::~ee51201(){ note_dtor("ee51201", this);} // tgen
+ee51201 ::ee51201(){ note_ctor("ee51201", this);} // tgen
+
+static void Test_ee51201()
+{
+ extern Class_Descriptor cd_ee51201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51201, buf);
+ ee51201 *dp, &lv = *(dp=new (buf) ee51201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee51201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee51201");
+ check_base_class_offset(lv, (cc201*)(dd1201*), ABISELECT(32,16), "ee51201");
+ check_base_class_offset(lv, (dd1201*), ABISELECT(16,8), "ee51201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51201.e");
+ test_class_info(&lv, &cd_ee51201);
+ dp->~ee51201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51201(Test_ee51201, "ee51201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51201C1Ev();
+extern void _ZN7ee51201D1Ev();
+Name_Map name_map_ee51201[] = {
+ NSPAIR(_ZN7ee51201C1Ev),
+ NSPAIR(_ZN7ee51201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd1201;
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+static Base_Class bases_ee51201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51201[];
+extern void _ZN7ee512013barEv();
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee51201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51201[0]),
+ (VTBL_ENTRY)&_ZN7ee512013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51201[0]),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51201[];
+static VTBL_ENTRY _tg__ZTV6dd1201__7ee51201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd1201__7ee51201[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee51201[] = {
+ {&(_ZTV7ee51201[4]), 4,12},
+ {&(_ZTV7ee51201[8]), 8,12},
+ {&(_ZTV7ee51201[11]), 11,12},
+ {&(_tg__ZTV6dd1201__7ee51201[3]), 3,3},
+ {&(_tg__ZTV5cc201__6dd1201__7ee51201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51201[];
+extern VTBL_ENTRY _ZTV7ee51201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51201[];
+Class_Descriptor cd_ee51201 = { "ee51201", // class name
+ bases_ee51201, 4,
+ &(vtc_ee51201[0]), // expected_vtbl_contents
+ &(vtt_ee51201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51201),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61201 : dd1201 {
+ int e;
+ virtual void foo(); // _ZN7ee612013fooEv
+ virtual void bar(); // _ZN7ee612013barEv
+ ~ee61201(); // tgen
+ ee61201(); // tgen
+};
+//SIG(1 ee61201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61201 ::foo(){vfunc_called(this, "_ZN7ee612013fooEv");}
+void ee61201 ::bar(){vfunc_called(this, "_ZN7ee612013barEv");}
+ee61201 ::~ee61201(){ note_dtor("ee61201", this);} // tgen
+ee61201 ::ee61201(){ note_ctor("ee61201", this);} // tgen
+
+static void Test_ee61201()
+{
+ extern Class_Descriptor cd_ee61201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61201, buf);
+ ee61201 *dp, &lv = *(dp=new (buf) ee61201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee61201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee61201");
+ check_base_class_offset(lv, (cc201*)(dd1201*), ABISELECT(16,12), "ee61201");
+ check_base_class_offset(lv, (dd1201*), 0, "ee61201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61201.e");
+ test_class_info(&lv, &cd_ee61201);
+ dp->~ee61201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61201(Test_ee61201, "ee61201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61201C1Ev();
+extern void _ZN7ee61201D1Ev();
+Name_Map name_map_ee61201[] = {
+ NSPAIR(_ZN7ee61201C1Ev),
+ NSPAIR(_ZN7ee61201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd1201;
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+static Base_Class bases_ee61201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61201[];
+extern void _ZN7ee612013fooEv();
+extern void _ZN7ee612013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612013fooEv,_ZTv0_n12_N7ee612013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612013fooEv,_ZThn12_N7ee612013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61201[0]),
+ (VTBL_ENTRY)&_ZN7ee612013fooEv,
+ (VTBL_ENTRY)&_ZN7ee612013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612013fooEv,_ZTv0_n12_N7ee612013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61201[];
+static VTBL_ENTRY _tg__ZTV6dd1201__7ee61201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd1201__7ee61201[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee61201[] = {
+ {&(_ZTV7ee61201[3]), 3,9},
+ {&(_tg__ZTV6dd1201__7ee61201[3]), 3,3},
+ {&(_tg__ZTV5cc201__6dd1201__7ee61201[3]), 3,4},
+ {&(_ZTV7ee61201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee61201[];
+extern VTBL_ENTRY _ZTV7ee61201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61201[];
+static VTBL_ENTRY alt_thunk_names362[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612013fooEv,_ZTv0_n12_N7ee612013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612013fooEv,_ZThn12_N7ee612013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61201 = { "ee61201", // class name
+ bases_ee61201, 4,
+ &(vtc_ee61201[0]), // expected_vtbl_contents
+ &(vtt_ee61201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names362,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71201 : virtual dd1201 {
+ int e;
+ virtual void foo(); // _ZN7ee712013fooEv
+ virtual void bar(); // _ZN7ee712013barEv
+ ~ee71201(); // tgen
+ ee71201(); // tgen
+};
+//SIG(1 ee71201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71201 ::foo(){vfunc_called(this, "_ZN7ee712013fooEv");}
+void ee71201 ::bar(){vfunc_called(this, "_ZN7ee712013barEv");}
+ee71201 ::~ee71201(){ note_dtor("ee71201", this);} // tgen
+ee71201 ::ee71201(){ note_ctor("ee71201", this);} // tgen
+
+static void Test_ee71201()
+{
+ extern Class_Descriptor cd_ee71201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71201, buf);
+ ee71201 *dp, &lv = *(dp=new (buf) ee71201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee71201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee71201");
+ check_base_class_offset(lv, (cc201*)(dd1201*), ABISELECT(32,16), "ee71201");
+ check_base_class_offset(lv, (dd1201*), ABISELECT(16,8), "ee71201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71201.e");
+ test_class_info(&lv, &cd_ee71201);
+ dp->~ee71201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71201(Test_ee71201, "ee71201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71201C1Ev();
+extern void _ZN7ee71201D1Ev();
+Name_Map name_map_ee71201[] = {
+ NSPAIR(_ZN7ee71201C1Ev),
+ NSPAIR(_ZN7ee71201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd1201;
+extern VTBL_ENTRY _ZTI6dd1201[];
+extern VTBL_ENTRY _ZTV6dd1201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1201[];
+static Base_Class bases_ee71201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1201, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71201[];
+extern void _ZN7ee712013fooEv();
+extern void _ZN7ee712013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712013fooEv,_ZTv0_n12_N7ee712013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712013fooEv,_ZThn16_N7ee712013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71201[0]),
+ (VTBL_ENTRY)&_ZN7ee712013fooEv,
+ (VTBL_ENTRY)&_ZN7ee712013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71201[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712013fooEv,_ZTv0_n12_N7ee712013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71201[];
+static VTBL_ENTRY _tg__ZTV6dd1201__7ee71201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd1201__7ee71201[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee71201[] = {
+ {&(_ZTV7ee71201[4]), 4,13},
+ {&(_ZTV7ee71201[9]), 9,13},
+ {&(_ZTV7ee71201[12]), 12,13},
+ {&(_tg__ZTV6dd1201__7ee71201[3]), 3,3},
+ {&(_tg__ZTV5cc201__6dd1201__7ee71201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71201[];
+extern VTBL_ENTRY _ZTV7ee71201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71201[];
+static VTBL_ENTRY alt_thunk_names363[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712013fooEv,_ZTv0_n12_N7ee712013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712013fooEv,_ZThn16_N7ee712013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71201 = { "ee71201", // class name
+ bases_ee71201, 4,
+ &(vtc_ee71201[0]), // expected_vtbl_contents
+ &(vtt_ee71201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71201),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names363,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2201 : cc201 {
+ int d;
+ virtual void foo(); // _ZN6dd22013fooEv
+ ~dd2201(); // tgen
+ dd2201(); // tgen
+};
+//SIG(-1 dd2201) C1{ BC2{ BC3{ BC4{ v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd2201 ::foo(){vfunc_called(this, "_ZN6dd22013fooEv");}
+dd2201 ::~dd2201(){ note_dtor("dd2201", this);} // tgen
+dd2201 ::dd2201(){ note_ctor("dd2201", this);} // tgen
+
+static void Test_dd2201()
+{
+ extern Class_Descriptor cd_dd2201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2201, buf);
+ dd2201 *dp, &lv = *(dp=new (buf) dd2201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), 0, "dd2201");
+ check_base_class_offset(lv, (bb01*)(cc201*), 0, "dd2201");
+ check_base_class_offset(lv, (cc201*), 0, "dd2201");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2201.d");
+ test_class_info(&lv, &cd_dd2201);
+ dp->~dd2201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2201(Test_dd2201, "dd2201", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2201C1Ev();
+extern void _ZN6dd2201D1Ev();
+Name_Map name_map_dd2201[] = {
+ NSPAIR(_ZN6dd2201C1Ev),
+ NSPAIR(_ZN6dd2201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+static Base_Class bases_dd2201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern void _ZN6dd22013fooEv();
+static VTBL_ENTRY vtc_dd2201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2201[0]),
+ (VTBL_ENTRY)&_ZN6dd22013fooEv,
+};
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+Class_Descriptor cd_dd2201 = { "dd2201", // class name
+ bases_dd2201, 3,
+ &(vtc_dd2201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2201),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02201 : dd2201 {
+ int e;
+ ~ee02201(); // tgen
+ ee02201(); // tgen
+};
+//SIG(1 ee02201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02201 ::~ee02201(){ note_dtor("ee02201", this);} // tgen
+ee02201 ::ee02201(){ note_ctor("ee02201", this);} // tgen
+
+static void Test_ee02201()
+{
+ extern Class_Descriptor cd_ee02201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02201, buf);
+ ee02201 *dp, &lv = *(dp=new (buf) ee02201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd2201*), 0, "ee02201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd2201*), 0, "ee02201");
+ check_base_class_offset(lv, (cc201*)(dd2201*), 0, "ee02201");
+ check_base_class_offset(lv, (dd2201*), 0, "ee02201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02201.e");
+ test_class_info(&lv, &cd_ee02201);
+ dp->~ee02201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02201(Test_ee02201, "ee02201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02201C1Ev();
+extern void _ZN7ee02201D1Ev();
+Name_Map name_map_ee02201[] = {
+ NSPAIR(_ZN7ee02201C1Ev),
+ NSPAIR(_ZN7ee02201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd2201;
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+static Base_Class bases_ee02201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2201, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02201[];
+extern void _ZN6dd22013fooEv();
+static VTBL_ENTRY vtc_ee02201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02201[0]),
+ (VTBL_ENTRY)&_ZN6dd22013fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee02201[];
+extern VTBL_ENTRY _ZTV7ee02201[];
+Class_Descriptor cd_ee02201 = { "ee02201", // class name
+ bases_ee02201, 4,
+ &(vtc_ee02201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02201),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12201 : virtual dd2201 {
+ int e;
+ ~ee12201(); // tgen
+ ee12201(); // tgen
+};
+//SIG(1 ee12201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12201 ::~ee12201(){ note_dtor("ee12201", this);} // tgen
+ee12201 ::ee12201(){ note_ctor("ee12201", this);} // tgen
+
+static void Test_ee12201()
+{
+ extern Class_Descriptor cd_ee12201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12201, buf);
+ ee12201 *dp, &lv = *(dp=new (buf) ee12201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd2201*), ABISELECT(16,8), "ee12201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd2201*), ABISELECT(16,8), "ee12201");
+ check_base_class_offset(lv, (cc201*)(dd2201*), ABISELECT(16,8), "ee12201");
+ check_base_class_offset(lv, (dd2201*), ABISELECT(16,8), "ee12201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12201.e");
+ test_class_info(&lv, &cd_ee12201);
+ dp->~ee12201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12201(Test_ee12201, "ee12201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12201C1Ev();
+extern void _ZN7ee12201D1Ev();
+Name_Map name_map_ee12201[] = {
+ NSPAIR(_ZN7ee12201C1Ev),
+ NSPAIR(_ZN7ee12201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd2201;
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+static Base_Class bases_ee12201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2201, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12201[];
+extern void _ZN6dd22013fooEv();
+static VTBL_ENTRY vtc_ee12201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12201[0]),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12201[0]),
+ (VTBL_ENTRY)&_ZN6dd22013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12201[];
+static VTT_ENTRY vtt_ee12201[] = {
+ {&(_ZTV7ee12201[3]), 3,7},
+ {&(_ZTV7ee12201[6]), 6,7},
+};
+extern VTBL_ENTRY _ZTI7ee12201[];
+extern VTBL_ENTRY _ZTV7ee12201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12201[];
+Class_Descriptor cd_ee12201 = { "ee12201", // class name
+ bases_ee12201, 4,
+ &(vtc_ee12201[0]), // expected_vtbl_contents
+ &(vtt_ee12201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12201),7, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22201 : dd2201 {
+ int e;
+ virtual void foo(); // _ZN7ee222013fooEv
+ ~ee22201(); // tgen
+ ee22201(); // tgen
+};
+//SIG(1 ee22201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22201 ::foo(){vfunc_called(this, "_ZN7ee222013fooEv");}
+ee22201 ::~ee22201(){ note_dtor("ee22201", this);} // tgen
+ee22201 ::ee22201(){ note_ctor("ee22201", this);} // tgen
+
+static void Test_ee22201()
+{
+ extern Class_Descriptor cd_ee22201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22201, buf);
+ ee22201 *dp, &lv = *(dp=new (buf) ee22201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd2201*), 0, "ee22201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd2201*), 0, "ee22201");
+ check_base_class_offset(lv, (cc201*)(dd2201*), 0, "ee22201");
+ check_base_class_offset(lv, (dd2201*), 0, "ee22201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22201.e");
+ test_class_info(&lv, &cd_ee22201);
+ dp->~ee22201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22201(Test_ee22201, "ee22201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22201C1Ev();
+extern void _ZN7ee22201D1Ev();
+Name_Map name_map_ee22201[] = {
+ NSPAIR(_ZN7ee22201C1Ev),
+ NSPAIR(_ZN7ee22201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd2201;
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+static Base_Class bases_ee22201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22201[];
+extern void _ZN7ee222013fooEv();
+static VTBL_ENTRY vtc_ee22201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22201[0]),
+ (VTBL_ENTRY)&_ZN7ee222013fooEv,
+};
+extern VTBL_ENTRY _ZTI7ee22201[];
+extern VTBL_ENTRY _ZTV7ee22201[];
+Class_Descriptor cd_ee22201 = { "ee22201", // class name
+ bases_ee22201, 4,
+ &(vtc_ee22201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22201),3, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32201 : virtual dd2201 {
+ int e;
+ virtual void foo(); // _ZN7ee322013fooEv
+ ~ee32201(); // tgen
+ ee32201(); // tgen
+};
+//SIG(1 ee32201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32201 ::foo(){vfunc_called(this, "_ZN7ee322013fooEv");}
+ee32201 ::~ee32201(){ note_dtor("ee32201", this);} // tgen
+ee32201 ::ee32201(){ note_ctor("ee32201", this);} // tgen
+
+static void Test_ee32201()
+{
+ extern Class_Descriptor cd_ee32201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32201, buf);
+ ee32201 *dp, &lv = *(dp=new (buf) ee32201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd2201*), ABISELECT(16,8), "ee32201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd2201*), ABISELECT(16,8), "ee32201");
+ check_base_class_offset(lv, (cc201*)(dd2201*), ABISELECT(16,8), "ee32201");
+ check_base_class_offset(lv, (dd2201*), ABISELECT(16,8), "ee32201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32201.e");
+ test_class_info(&lv, &cd_ee32201);
+ dp->~ee32201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32201(Test_ee32201, "ee32201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32201C1Ev();
+extern void _ZN7ee32201D1Ev();
+Name_Map name_map_ee32201[] = {
+ NSPAIR(_ZN7ee32201C1Ev),
+ NSPAIR(_ZN7ee32201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd2201;
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+static Base_Class bases_ee32201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32201[];
+extern void _ZN7ee322013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322013fooEv,_ZTv0_n12_N7ee322013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322013fooEv,_ZThn8_N7ee322013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32201[0]),
+ (VTBL_ENTRY)&_ZN7ee322013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322013fooEv,_ZTv0_n12_N7ee322013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32201[];
+static VTT_ENTRY vtt_ee32201[] = {
+ {&(_ZTV7ee32201[3]), 3,8},
+ {&(_ZTV7ee32201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee32201[];
+extern VTBL_ENTRY _ZTV7ee32201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32201[];
+static VTBL_ENTRY alt_thunk_names364[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322013fooEv,_ZTv0_n12_N7ee322013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322013fooEv,_ZThn8_N7ee322013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32201 = { "ee32201", // class name
+ bases_ee32201, 4,
+ &(vtc_ee32201[0]), // expected_vtbl_contents
+ &(vtt_ee32201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names364,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42201 : dd2201 {
+ int e;
+ virtual void bar(); // _ZN7ee422013barEv
+ ~ee42201(); // tgen
+ ee42201(); // tgen
+};
+//SIG(1 ee42201) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42201 ::bar(){vfunc_called(this, "_ZN7ee422013barEv");}
+ee42201 ::~ee42201(){ note_dtor("ee42201", this);} // tgen
+ee42201 ::ee42201(){ note_ctor("ee42201", this);} // tgen
+
+static void Test_ee42201()
+{
+ extern Class_Descriptor cd_ee42201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42201, buf);
+ ee42201 *dp, &lv = *(dp=new (buf) ee42201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd2201*), 0, "ee42201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd2201*), 0, "ee42201");
+ check_base_class_offset(lv, (cc201*)(dd2201*), 0, "ee42201");
+ check_base_class_offset(lv, (dd2201*), 0, "ee42201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42201.e");
+ test_class_info(&lv, &cd_ee42201);
+ dp->~ee42201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42201(Test_ee42201, "ee42201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42201C1Ev();
+extern void _ZN7ee42201D1Ev();
+Name_Map name_map_ee42201[] = {
+ NSPAIR(_ZN7ee42201C1Ev),
+ NSPAIR(_ZN7ee42201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd2201;
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+static Base_Class bases_ee42201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42201[];
+extern void _ZN6dd22013fooEv();
+extern void _ZN7ee422013barEv();
+static VTBL_ENTRY vtc_ee42201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42201[0]),
+ (VTBL_ENTRY)&_ZN6dd22013fooEv,
+ (VTBL_ENTRY)&_ZN7ee422013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42201[];
+extern VTBL_ENTRY _ZTV7ee42201[];
+Class_Descriptor cd_ee42201 = { "ee42201", // class name
+ bases_ee42201, 4,
+ &(vtc_ee42201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52201 : virtual dd2201 {
+ int e;
+ virtual void bar(); // _ZN7ee522013barEv
+ ~ee52201(); // tgen
+ ee52201(); // tgen
+};
+//SIG(1 ee52201) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52201 ::bar(){vfunc_called(this, "_ZN7ee522013barEv");}
+ee52201 ::~ee52201(){ note_dtor("ee52201", this);} // tgen
+ee52201 ::ee52201(){ note_ctor("ee52201", this);} // tgen
+
+static void Test_ee52201()
+{
+ extern Class_Descriptor cd_ee52201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52201, buf);
+ ee52201 *dp, &lv = *(dp=new (buf) ee52201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd2201*), ABISELECT(16,8), "ee52201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd2201*), ABISELECT(16,8), "ee52201");
+ check_base_class_offset(lv, (cc201*)(dd2201*), ABISELECT(16,8), "ee52201");
+ check_base_class_offset(lv, (dd2201*), ABISELECT(16,8), "ee52201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52201.e");
+ test_class_info(&lv, &cd_ee52201);
+ dp->~ee52201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52201(Test_ee52201, "ee52201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52201C1Ev();
+extern void _ZN7ee52201D1Ev();
+Name_Map name_map_ee52201[] = {
+ NSPAIR(_ZN7ee52201C1Ev),
+ NSPAIR(_ZN7ee52201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd2201;
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+static Base_Class bases_ee52201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52201[];
+extern void _ZN7ee522013barEv();
+extern void _ZN6dd22013fooEv();
+static VTBL_ENTRY vtc_ee52201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52201[0]),
+ (VTBL_ENTRY)&_ZN7ee522013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52201[0]),
+ (VTBL_ENTRY)&_ZN6dd22013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52201[];
+static VTT_ENTRY vtt_ee52201[] = {
+ {&(_ZTV7ee52201[3]), 3,8},
+ {&(_ZTV7ee52201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee52201[];
+extern VTBL_ENTRY _ZTV7ee52201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52201[];
+Class_Descriptor cd_ee52201 = { "ee52201", // class name
+ bases_ee52201, 4,
+ &(vtc_ee52201[0]), // expected_vtbl_contents
+ &(vtt_ee52201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62201 : dd2201 {
+ int e;
+ virtual void foo(); // _ZN7ee622013fooEv
+ virtual void bar(); // _ZN7ee622013barEv
+ ~ee62201(); // tgen
+ ee62201(); // tgen
+};
+//SIG(1 ee62201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62201 ::foo(){vfunc_called(this, "_ZN7ee622013fooEv");}
+void ee62201 ::bar(){vfunc_called(this, "_ZN7ee622013barEv");}
+ee62201 ::~ee62201(){ note_dtor("ee62201", this);} // tgen
+ee62201 ::ee62201(){ note_ctor("ee62201", this);} // tgen
+
+static void Test_ee62201()
+{
+ extern Class_Descriptor cd_ee62201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62201, buf);
+ ee62201 *dp, &lv = *(dp=new (buf) ee62201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd2201*), 0, "ee62201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd2201*), 0, "ee62201");
+ check_base_class_offset(lv, (cc201*)(dd2201*), 0, "ee62201");
+ check_base_class_offset(lv, (dd2201*), 0, "ee62201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62201.e");
+ test_class_info(&lv, &cd_ee62201);
+ dp->~ee62201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62201(Test_ee62201, "ee62201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62201C1Ev();
+extern void _ZN7ee62201D1Ev();
+Name_Map name_map_ee62201[] = {
+ NSPAIR(_ZN7ee62201C1Ev),
+ NSPAIR(_ZN7ee62201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd2201;
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+static Base_Class bases_ee62201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62201[];
+extern void _ZN7ee622013fooEv();
+extern void _ZN7ee622013barEv();
+static VTBL_ENTRY vtc_ee62201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62201[0]),
+ (VTBL_ENTRY)&_ZN7ee622013fooEv,
+ (VTBL_ENTRY)&_ZN7ee622013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62201[];
+extern VTBL_ENTRY _ZTV7ee62201[];
+Class_Descriptor cd_ee62201 = { "ee62201", // class name
+ bases_ee62201, 4,
+ &(vtc_ee62201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72201 : virtual dd2201 {
+ int e;
+ virtual void foo(); // _ZN7ee722013fooEv
+ virtual void bar(); // _ZN7ee722013barEv
+ ~ee72201(); // tgen
+ ee72201(); // tgen
+};
+//SIG(1 ee72201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72201 ::foo(){vfunc_called(this, "_ZN7ee722013fooEv");}
+void ee72201 ::bar(){vfunc_called(this, "_ZN7ee722013barEv");}
+ee72201 ::~ee72201(){ note_dtor("ee72201", this);} // tgen
+ee72201 ::ee72201(){ note_ctor("ee72201", this);} // tgen
+
+static void Test_ee72201()
+{
+ extern Class_Descriptor cd_ee72201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72201, buf);
+ ee72201 *dp, &lv = *(dp=new (buf) ee72201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd2201*), ABISELECT(16,8), "ee72201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd2201*), ABISELECT(16,8), "ee72201");
+ check_base_class_offset(lv, (cc201*)(dd2201*), ABISELECT(16,8), "ee72201");
+ check_base_class_offset(lv, (dd2201*), ABISELECT(16,8), "ee72201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72201.e");
+ test_class_info(&lv, &cd_ee72201);
+ dp->~ee72201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72201(Test_ee72201, "ee72201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72201C1Ev();
+extern void _ZN7ee72201D1Ev();
+Name_Map name_map_ee72201[] = {
+ NSPAIR(_ZN7ee72201C1Ev),
+ NSPAIR(_ZN7ee72201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd2201;
+extern VTBL_ENTRY _ZTI6dd2201[];
+extern VTBL_ENTRY _ZTV6dd2201[];
+static Base_Class bases_ee72201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72201[];
+extern void _ZN7ee722013fooEv();
+extern void _ZN7ee722013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722013fooEv,_ZTv0_n12_N7ee722013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722013fooEv,_ZThn8_N7ee722013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72201[0]),
+ (VTBL_ENTRY)&_ZN7ee722013fooEv,
+ (VTBL_ENTRY)&_ZN7ee722013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722013fooEv,_ZTv0_n12_N7ee722013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72201[];
+static VTT_ENTRY vtt_ee72201[] = {
+ {&(_ZTV7ee72201[3]), 3,9},
+ {&(_ZTV7ee72201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee72201[];
+extern VTBL_ENTRY _ZTV7ee72201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72201[];
+static VTBL_ENTRY alt_thunk_names365[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722013fooEv,_ZTv0_n12_N7ee722013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722013fooEv,_ZThn8_N7ee722013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72201 = { "ee72201", // class name
+ bases_ee72201, 4,
+ &(vtc_ee72201[0]), // expected_vtbl_contents
+ &(vtt_ee72201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names365,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3201 : virtual cc201 {
+ int d;
+ virtual void foo(); // _ZN6dd32013fooEv
+ ~dd3201(); // tgen
+ dd3201(); // tgen
+};
+//SIG(-1 dd3201) C1{ VBC2{ BC3{ BC4{ v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd3201 ::foo(){vfunc_called(this, "_ZN6dd32013fooEv");}
+dd3201 ::~dd3201(){ note_dtor("dd3201", this);} // tgen
+dd3201 ::dd3201(){ note_ctor("dd3201", this);} // tgen
+
+static void Test_dd3201()
+{
+ extern Class_Descriptor cd_dd3201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3201, buf);
+ dd3201 *dp, &lv = *(dp=new (buf) dd3201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,8), "dd3201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,8), "dd3201");
+ check_base_class_offset(lv, (cc201*), ABISELECT(16,8), "dd3201");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3201.d");
+ test_class_info(&lv, &cd_dd3201);
+ dp->~dd3201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3201(Test_dd3201, "dd3201", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3201C1Ev();
+extern void _ZN6dd3201D1Ev();
+Name_Map name_map_dd3201[] = {
+ NSPAIR(_ZN6dd3201C1Ev),
+ NSPAIR(_ZN6dd3201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+static Base_Class bases_dd3201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern void _ZN6dd32013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3201[];
+static VTT_ENTRY vtt_dd3201[] = {
+ {&(_ZTV6dd3201[3]), 3,8},
+ {&(_ZTV6dd3201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static VTBL_ENTRY alt_thunk_names366[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3201 = { "dd3201", // class name
+ bases_dd3201, 3,
+ &(vtc_dd3201[0]), // expected_vtbl_contents
+ &(vtt_dd3201[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3201),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names366,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03201 : dd3201 {
+ int e;
+ ~ee03201(); // tgen
+ ee03201(); // tgen
+};
+//SIG(1 ee03201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03201 ::~ee03201(){ note_dtor("ee03201", this);} // tgen
+ee03201 ::ee03201(){ note_ctor("ee03201", this);} // tgen
+
+static void Test_ee03201()
+{
+ extern Class_Descriptor cd_ee03201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03201, buf);
+ ee03201 *dp, &lv = *(dp=new (buf) ee03201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee03201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee03201");
+ check_base_class_offset(lv, (cc201*)(dd3201*), ABISELECT(16,12), "ee03201");
+ check_base_class_offset(lv, (dd3201*), 0, "ee03201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03201.e");
+ test_class_info(&lv, &cd_ee03201);
+ dp->~ee03201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03201(Test_ee03201, "ee03201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03201C1Ev();
+extern void _ZN7ee03201D1Ev();
+Name_Map name_map_ee03201[] = {
+ NSPAIR(_ZN7ee03201C1Ev),
+ NSPAIR(_ZN7ee03201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd3201;
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static Base_Class bases_ee03201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03201[];
+extern void _ZN6dd32013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03201[];
+extern void _ZN6dd32013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3201__7ee03201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd3201__7ee03201[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+static VTT_ENTRY vtt_ee03201[] = {
+ {&(_ZTV7ee03201[3]), 3,8},
+ {&(_tg__ZTV6dd3201__7ee03201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd3201__7ee03201[3]), 3,4},
+ {&(_ZTV7ee03201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee03201[];
+extern VTBL_ENTRY _ZTV7ee03201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03201[];
+static VTBL_ENTRY alt_thunk_names367[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03201 = { "ee03201", // class name
+ bases_ee03201, 4,
+ &(vtc_ee03201[0]), // expected_vtbl_contents
+ &(vtt_ee03201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names367,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13201 : virtual dd3201 {
+ int e;
+ ~ee13201(); // tgen
+ ee13201(); // tgen
+};
+//SIG(1 ee13201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13201 ::~ee13201(){ note_dtor("ee13201", this);} // tgen
+ee13201 ::ee13201(){ note_ctor("ee13201", this);} // tgen
+
+static void Test_ee13201()
+{
+ extern Class_Descriptor cd_ee13201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13201, buf);
+ ee13201 *dp, &lv = *(dp=new (buf) ee13201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee13201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee13201");
+ check_base_class_offset(lv, (cc201*)(dd3201*), ABISELECT(32,16), "ee13201");
+ check_base_class_offset(lv, (dd3201*), ABISELECT(16,8), "ee13201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13201.e");
+ test_class_info(&lv, &cd_ee13201);
+ dp->~ee13201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13201(Test_ee13201, "ee13201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13201C1Ev();
+extern void _ZN7ee13201D1Ev();
+Name_Map name_map_ee13201[] = {
+ NSPAIR(_ZN7ee13201C1Ev),
+ NSPAIR(_ZN7ee13201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd3201;
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static Base_Class bases_ee13201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13201[];
+extern void _ZN6dd32013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13201[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13201[];
+extern void _ZN6dd32013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3201__7ee13201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd3201__7ee13201[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+static VTT_ENTRY vtt_ee13201[] = {
+ {&(_ZTV7ee13201[4]), 4,13},
+ {&(_ZTV7ee13201[8]), 8,13},
+ {&(_ZTV7ee13201[12]), 12,13},
+ {&(_tg__ZTV6dd3201__7ee13201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd3201__7ee13201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13201[];
+extern VTBL_ENTRY _ZTV7ee13201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13201[];
+static VTBL_ENTRY alt_thunk_names368[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13201 = { "ee13201", // class name
+ bases_ee13201, 4,
+ &(vtc_ee13201[0]), // expected_vtbl_contents
+ &(vtt_ee13201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13201),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names368,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23201 : dd3201 {
+ int e;
+ virtual void foo(); // _ZN7ee232013fooEv
+ ~ee23201(); // tgen
+ ee23201(); // tgen
+};
+//SIG(1 ee23201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23201 ::foo(){vfunc_called(this, "_ZN7ee232013fooEv");}
+ee23201 ::~ee23201(){ note_dtor("ee23201", this);} // tgen
+ee23201 ::ee23201(){ note_ctor("ee23201", this);} // tgen
+
+static void Test_ee23201()
+{
+ extern Class_Descriptor cd_ee23201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23201, buf);
+ ee23201 *dp, &lv = *(dp=new (buf) ee23201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee23201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee23201");
+ check_base_class_offset(lv, (cc201*)(dd3201*), ABISELECT(16,12), "ee23201");
+ check_base_class_offset(lv, (dd3201*), 0, "ee23201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23201.e");
+ test_class_info(&lv, &cd_ee23201);
+ dp->~ee23201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23201(Test_ee23201, "ee23201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23201C1Ev();
+extern void _ZN7ee23201D1Ev();
+Name_Map name_map_ee23201[] = {
+ NSPAIR(_ZN7ee23201C1Ev),
+ NSPAIR(_ZN7ee23201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd3201;
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static Base_Class bases_ee23201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23201[];
+extern void _ZN7ee232013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232013fooEv,_ZTv0_n12_N7ee232013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232013fooEv,_ZThn12_N7ee232013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23201[0]),
+ (VTBL_ENTRY)&_ZN7ee232013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232013fooEv,_ZTv0_n12_N7ee232013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23201[];
+extern void _ZN6dd32013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3201__7ee23201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd3201__7ee23201[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+static VTT_ENTRY vtt_ee23201[] = {
+ {&(_ZTV7ee23201[3]), 3,8},
+ {&(_tg__ZTV6dd3201__7ee23201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd3201__7ee23201[3]), 3,4},
+ {&(_ZTV7ee23201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee23201[];
+extern VTBL_ENTRY _ZTV7ee23201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23201[];
+static VTBL_ENTRY alt_thunk_names369[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232013fooEv,_ZTv0_n12_N7ee232013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232013fooEv,_ZThn12_N7ee232013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23201 = { "ee23201", // class name
+ bases_ee23201, 4,
+ &(vtc_ee23201[0]), // expected_vtbl_contents
+ &(vtt_ee23201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names369,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33201 : virtual dd3201 {
+ int e;
+ virtual void foo(); // _ZN7ee332013fooEv
+ ~ee33201(); // tgen
+ ee33201(); // tgen
+};
+//SIG(1 ee33201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33201 ::foo(){vfunc_called(this, "_ZN7ee332013fooEv");}
+ee33201 ::~ee33201(){ note_dtor("ee33201", this);} // tgen
+ee33201 ::ee33201(){ note_ctor("ee33201", this);} // tgen
+
+static void Test_ee33201()
+{
+ extern Class_Descriptor cd_ee33201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33201, buf);
+ ee33201 *dp, &lv = *(dp=new (buf) ee33201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee33201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee33201");
+ check_base_class_offset(lv, (cc201*)(dd3201*), ABISELECT(32,16), "ee33201");
+ check_base_class_offset(lv, (dd3201*), ABISELECT(16,8), "ee33201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33201.e");
+ test_class_info(&lv, &cd_ee33201);
+ dp->~ee33201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33201(Test_ee33201, "ee33201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33201C1Ev();
+extern void _ZN7ee33201D1Ev();
+Name_Map name_map_ee33201[] = {
+ NSPAIR(_ZN7ee33201C1Ev),
+ NSPAIR(_ZN7ee33201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd3201;
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static Base_Class bases_ee33201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33201[];
+extern void _ZN7ee332013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332013fooEv,_ZTv0_n16_N7ee332013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332013fooEv,_ZThn8_N7ee332013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332013fooEv,_ZTv0_n12_N7ee332013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332013fooEv,_ZThn16_N7ee332013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33201[0]),
+ (VTBL_ENTRY)&_ZN7ee332013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332013fooEv,_ZTv0_n16_N7ee332013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332013fooEv,_ZTv0_n12_N7ee332013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33201[];
+extern void _ZN6dd32013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3201__7ee33201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd3201__7ee33201[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+static VTT_ENTRY vtt_ee33201[] = {
+ {&(_ZTV7ee33201[4]), 4,14},
+ {&(_ZTV7ee33201[9]), 9,14},
+ {&(_ZTV7ee33201[13]), 13,14},
+ {&(_tg__ZTV6dd3201__7ee33201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd3201__7ee33201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33201[];
+extern VTBL_ENTRY _ZTV7ee33201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33201[];
+static VTBL_ENTRY alt_thunk_names370[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332013fooEv,_ZTv0_n12_N7ee332013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332013fooEv,_ZThn16_N7ee332013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332013fooEv,_ZTv0_n16_N7ee332013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332013fooEv,_ZThn8_N7ee332013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33201 = { "ee33201", // class name
+ bases_ee33201, 4,
+ &(vtc_ee33201[0]), // expected_vtbl_contents
+ &(vtt_ee33201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33201),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names370,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43201 : dd3201 {
+ int e;
+ virtual void bar(); // _ZN7ee432013barEv
+ ~ee43201(); // tgen
+ ee43201(); // tgen
+};
+//SIG(1 ee43201) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43201 ::bar(){vfunc_called(this, "_ZN7ee432013barEv");}
+ee43201 ::~ee43201(){ note_dtor("ee43201", this);} // tgen
+ee43201 ::ee43201(){ note_ctor("ee43201", this);} // tgen
+
+static void Test_ee43201()
+{
+ extern Class_Descriptor cd_ee43201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43201, buf);
+ ee43201 *dp, &lv = *(dp=new (buf) ee43201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee43201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee43201");
+ check_base_class_offset(lv, (cc201*)(dd3201*), ABISELECT(16,12), "ee43201");
+ check_base_class_offset(lv, (dd3201*), 0, "ee43201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43201.e");
+ test_class_info(&lv, &cd_ee43201);
+ dp->~ee43201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43201(Test_ee43201, "ee43201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43201C1Ev();
+extern void _ZN7ee43201D1Ev();
+Name_Map name_map_ee43201[] = {
+ NSPAIR(_ZN7ee43201C1Ev),
+ NSPAIR(_ZN7ee43201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd3201;
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static Base_Class bases_ee43201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43201[];
+extern void _ZN6dd32013fooEv();
+extern void _ZN7ee432013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+ (VTBL_ENTRY)&_ZN7ee432013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43201[];
+extern void _ZN6dd32013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3201__7ee43201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd3201__7ee43201[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+static VTT_ENTRY vtt_ee43201[] = {
+ {&(_ZTV7ee43201[3]), 3,9},
+ {&(_tg__ZTV6dd3201__7ee43201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd3201__7ee43201[3]), 3,4},
+ {&(_ZTV7ee43201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee43201[];
+extern VTBL_ENTRY _ZTV7ee43201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43201[];
+static VTBL_ENTRY alt_thunk_names371[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43201 = { "ee43201", // class name
+ bases_ee43201, 4,
+ &(vtc_ee43201[0]), // expected_vtbl_contents
+ &(vtt_ee43201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names371,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53201 : virtual dd3201 {
+ int e;
+ virtual void bar(); // _ZN7ee532013barEv
+ ~ee53201(); // tgen
+ ee53201(); // tgen
+};
+//SIG(1 ee53201) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53201 ::bar(){vfunc_called(this, "_ZN7ee532013barEv");}
+ee53201 ::~ee53201(){ note_dtor("ee53201", this);} // tgen
+ee53201 ::ee53201(){ note_ctor("ee53201", this);} // tgen
+
+static void Test_ee53201()
+{
+ extern Class_Descriptor cd_ee53201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53201, buf);
+ ee53201 *dp, &lv = *(dp=new (buf) ee53201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee53201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee53201");
+ check_base_class_offset(lv, (cc201*)(dd3201*), ABISELECT(32,16), "ee53201");
+ check_base_class_offset(lv, (dd3201*), ABISELECT(16,8), "ee53201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53201.e");
+ test_class_info(&lv, &cd_ee53201);
+ dp->~ee53201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53201(Test_ee53201, "ee53201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53201C1Ev();
+extern void _ZN7ee53201D1Ev();
+Name_Map name_map_ee53201[] = {
+ NSPAIR(_ZN7ee53201C1Ev),
+ NSPAIR(_ZN7ee53201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd3201;
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static Base_Class bases_ee53201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53201[];
+extern void _ZN7ee532013barEv();
+extern void _ZN6dd32013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53201[0]),
+ (VTBL_ENTRY)&_ZN7ee532013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53201[];
+extern void _ZN6dd32013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3201__7ee53201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd3201__7ee53201[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+static VTT_ENTRY vtt_ee53201[] = {
+ {&(_ZTV7ee53201[4]), 4,14},
+ {&(_ZTV7ee53201[9]), 9,14},
+ {&(_ZTV7ee53201[13]), 13,14},
+ {&(_tg__ZTV6dd3201__7ee53201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd3201__7ee53201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53201[];
+extern VTBL_ENTRY _ZTV7ee53201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53201[];
+static VTBL_ENTRY alt_thunk_names372[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53201 = { "ee53201", // class name
+ bases_ee53201, 4,
+ &(vtc_ee53201[0]), // expected_vtbl_contents
+ &(vtt_ee53201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53201),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names372,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63201 : dd3201 {
+ int e;
+ virtual void foo(); // _ZN7ee632013fooEv
+ virtual void bar(); // _ZN7ee632013barEv
+ ~ee63201(); // tgen
+ ee63201(); // tgen
+};
+//SIG(1 ee63201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63201 ::foo(){vfunc_called(this, "_ZN7ee632013fooEv");}
+void ee63201 ::bar(){vfunc_called(this, "_ZN7ee632013barEv");}
+ee63201 ::~ee63201(){ note_dtor("ee63201", this);} // tgen
+ee63201 ::ee63201(){ note_ctor("ee63201", this);} // tgen
+
+static void Test_ee63201()
+{
+ extern Class_Descriptor cd_ee63201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63201, buf);
+ ee63201 *dp, &lv = *(dp=new (buf) ee63201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee63201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee63201");
+ check_base_class_offset(lv, (cc201*)(dd3201*), ABISELECT(16,12), "ee63201");
+ check_base_class_offset(lv, (dd3201*), 0, "ee63201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63201.e");
+ test_class_info(&lv, &cd_ee63201);
+ dp->~ee63201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63201(Test_ee63201, "ee63201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63201C1Ev();
+extern void _ZN7ee63201D1Ev();
+Name_Map name_map_ee63201[] = {
+ NSPAIR(_ZN7ee63201C1Ev),
+ NSPAIR(_ZN7ee63201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd3201;
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static Base_Class bases_ee63201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63201[];
+extern void _ZN7ee632013fooEv();
+extern void _ZN7ee632013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632013fooEv,_ZTv0_n12_N7ee632013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632013fooEv,_ZThn12_N7ee632013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63201[0]),
+ (VTBL_ENTRY)&_ZN7ee632013fooEv,
+ (VTBL_ENTRY)&_ZN7ee632013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632013fooEv,_ZTv0_n12_N7ee632013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63201[];
+extern void _ZN6dd32013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3201__7ee63201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd3201__7ee63201[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+static VTT_ENTRY vtt_ee63201[] = {
+ {&(_ZTV7ee63201[3]), 3,9},
+ {&(_tg__ZTV6dd3201__7ee63201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd3201__7ee63201[3]), 3,4},
+ {&(_ZTV7ee63201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee63201[];
+extern VTBL_ENTRY _ZTV7ee63201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63201[];
+static VTBL_ENTRY alt_thunk_names373[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn12_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632013fooEv,_ZTv0_n12_N7ee632013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632013fooEv,_ZThn12_N7ee632013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63201 = { "ee63201", // class name
+ bases_ee63201, 4,
+ &(vtc_ee63201[0]), // expected_vtbl_contents
+ &(vtt_ee63201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names373,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73201 : virtual dd3201 {
+ int e;
+ virtual void foo(); // _ZN7ee732013fooEv
+ virtual void bar(); // _ZN7ee732013barEv
+ ~ee73201(); // tgen
+ ee73201(); // tgen
+};
+//SIG(1 ee73201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73201 ::foo(){vfunc_called(this, "_ZN7ee732013fooEv");}
+void ee73201 ::bar(){vfunc_called(this, "_ZN7ee732013barEv");}
+ee73201 ::~ee73201(){ note_dtor("ee73201", this);} // tgen
+ee73201 ::ee73201(){ note_ctor("ee73201", this);} // tgen
+
+static void Test_ee73201()
+{
+ extern Class_Descriptor cd_ee73201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73201, buf);
+ ee73201 *dp, &lv = *(dp=new (buf) ee73201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee73201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee73201");
+ check_base_class_offset(lv, (cc201*)(dd3201*), ABISELECT(32,16), "ee73201");
+ check_base_class_offset(lv, (dd3201*), ABISELECT(16,8), "ee73201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73201.e");
+ test_class_info(&lv, &cd_ee73201);
+ dp->~ee73201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73201(Test_ee73201, "ee73201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73201C1Ev();
+extern void _ZN7ee73201D1Ev();
+Name_Map name_map_ee73201[] = {
+ NSPAIR(_ZN7ee73201C1Ev),
+ NSPAIR(_ZN7ee73201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd3201;
+extern VTBL_ENTRY _ZTI6dd3201[];
+extern VTBL_ENTRY _ZTV6dd3201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3201[];
+static Base_Class bases_ee73201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3201, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73201[];
+extern void _ZN7ee732013fooEv();
+extern void _ZN7ee732013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732013fooEv,_ZTv0_n16_N7ee732013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732013fooEv,_ZThn8_N7ee732013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732013fooEv,_ZTv0_n12_N7ee732013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732013fooEv,_ZThn16_N7ee732013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73201[0]),
+ (VTBL_ENTRY)&_ZN7ee732013fooEv,
+ (VTBL_ENTRY)&_ZN7ee732013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732013fooEv,_ZTv0_n16_N7ee732013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732013fooEv,_ZTv0_n12_N7ee732013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73201[];
+extern void _ZN6dd32013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3201__7ee73201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&_ZN6dd32013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd3201__7ee73201[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv),
+};
+static VTT_ENTRY vtt_ee73201[] = {
+ {&(_ZTV7ee73201[4]), 4,15},
+ {&(_ZTV7ee73201[10]), 10,15},
+ {&(_ZTV7ee73201[14]), 14,15},
+ {&(_tg__ZTV6dd3201__7ee73201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd3201__7ee73201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73201[];
+extern VTBL_ENTRY _ZTV7ee73201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73201[];
+static VTBL_ENTRY alt_thunk_names374[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32013fooEv,_ZTv0_n12_N6dd32013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32013fooEv,_ZThn8_N6dd32013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732013fooEv,_ZTv0_n12_N7ee732013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732013fooEv,_ZThn16_N7ee732013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732013fooEv,_ZTv0_n16_N7ee732013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732013fooEv,_ZThn8_N7ee732013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73201 = { "ee73201", // class name
+ bases_ee73201, 4,
+ &(vtc_ee73201[0]), // expected_vtbl_contents
+ &(vtt_ee73201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73201),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names374,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4201 : cc201 {
+ int d;
+ virtual void bar(); // _ZN6dd42013barEv
+ ~dd4201(); // tgen
+ dd4201(); // tgen
+};
+//SIG(-1 dd4201) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd4201 ::bar(){vfunc_called(this, "_ZN6dd42013barEv");}
+dd4201 ::~dd4201(){ note_dtor("dd4201", this);} // tgen
+dd4201 ::dd4201(){ note_ctor("dd4201", this);} // tgen
+
+static void Test_dd4201()
+{
+ extern Class_Descriptor cd_dd4201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4201, buf);
+ dd4201 *dp, &lv = *(dp=new (buf) dd4201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), 0, "dd4201");
+ check_base_class_offset(lv, (bb01*)(cc201*), 0, "dd4201");
+ check_base_class_offset(lv, (cc201*), 0, "dd4201");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4201.d");
+ test_class_info(&lv, &cd_dd4201);
+ dp->~dd4201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4201(Test_dd4201, "dd4201", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4201C1Ev();
+extern void _ZN6dd4201D1Ev();
+Name_Map name_map_dd4201[] = {
+ NSPAIR(_ZN6dd4201C1Ev),
+ NSPAIR(_ZN6dd4201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+static Base_Class bases_dd4201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern void _ZN5cc2013fooEv();
+extern void _ZN6dd42013barEv();
+static VTBL_ENTRY vtc_dd4201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+ (VTBL_ENTRY)&_ZN6dd42013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+Class_Descriptor cd_dd4201 = { "dd4201", // class name
+ bases_dd4201, 3,
+ &(vtc_dd4201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04201 : dd4201 {
+ int e;
+ ~ee04201(); // tgen
+ ee04201(); // tgen
+};
+//SIG(1 ee04201) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04201 ::~ee04201(){ note_dtor("ee04201", this);} // tgen
+ee04201 ::ee04201(){ note_ctor("ee04201", this);} // tgen
+
+static void Test_ee04201()
+{
+ extern Class_Descriptor cd_ee04201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04201, buf);
+ ee04201 *dp, &lv = *(dp=new (buf) ee04201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd4201*), 0, "ee04201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd4201*), 0, "ee04201");
+ check_base_class_offset(lv, (cc201*)(dd4201*), 0, "ee04201");
+ check_base_class_offset(lv, (dd4201*), 0, "ee04201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04201.e");
+ test_class_info(&lv, &cd_ee04201);
+ dp->~ee04201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04201(Test_ee04201, "ee04201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04201C1Ev();
+extern void _ZN7ee04201D1Ev();
+Name_Map name_map_ee04201[] = {
+ NSPAIR(_ZN7ee04201C1Ev),
+ NSPAIR(_ZN7ee04201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd4201;
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+static Base_Class bases_ee04201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4201, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04201[];
+extern void _ZN5cc2013fooEv();
+extern void _ZN6dd42013barEv();
+static VTBL_ENTRY vtc_ee04201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+ (VTBL_ENTRY)&_ZN6dd42013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04201[];
+extern VTBL_ENTRY _ZTV7ee04201[];
+Class_Descriptor cd_ee04201 = { "ee04201", // class name
+ bases_ee04201, 4,
+ &(vtc_ee04201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14201 : virtual dd4201 {
+ int e;
+ ~ee14201(); // tgen
+ ee14201(); // tgen
+};
+//SIG(1 ee14201) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14201 ::~ee14201(){ note_dtor("ee14201", this);} // tgen
+ee14201 ::ee14201(){ note_ctor("ee14201", this);} // tgen
+
+static void Test_ee14201()
+{
+ extern Class_Descriptor cd_ee14201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14201, buf);
+ ee14201 *dp, &lv = *(dp=new (buf) ee14201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd4201*), ABISELECT(16,8), "ee14201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd4201*), ABISELECT(16,8), "ee14201");
+ check_base_class_offset(lv, (cc201*)(dd4201*), ABISELECT(16,8), "ee14201");
+ check_base_class_offset(lv, (dd4201*), ABISELECT(16,8), "ee14201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14201.e");
+ test_class_info(&lv, &cd_ee14201);
+ dp->~ee14201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14201(Test_ee14201, "ee14201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14201C1Ev();
+extern void _ZN7ee14201D1Ev();
+Name_Map name_map_ee14201[] = {
+ NSPAIR(_ZN7ee14201C1Ev),
+ NSPAIR(_ZN7ee14201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd4201;
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+static Base_Class bases_ee14201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4201, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14201[];
+extern void _ZN5cc2013fooEv();
+extern void _ZN6dd42013barEv();
+static VTBL_ENTRY vtc_ee14201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14201[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+ (VTBL_ENTRY)&_ZN6dd42013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14201[];
+static VTT_ENTRY vtt_ee14201[] = {
+ {&(_ZTV7ee14201[3]), 3,9},
+ {&(_ZTV7ee14201[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14201[];
+extern VTBL_ENTRY _ZTV7ee14201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14201[];
+Class_Descriptor cd_ee14201 = { "ee14201", // class name
+ bases_ee14201, 4,
+ &(vtc_ee14201[0]), // expected_vtbl_contents
+ &(vtt_ee14201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24201 : dd4201 {
+ int e;
+ virtual void foo(); // _ZN7ee242013fooEv
+ ~ee24201(); // tgen
+ ee24201(); // tgen
+};
+//SIG(1 ee24201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24201 ::foo(){vfunc_called(this, "_ZN7ee242013fooEv");}
+ee24201 ::~ee24201(){ note_dtor("ee24201", this);} // tgen
+ee24201 ::ee24201(){ note_ctor("ee24201", this);} // tgen
+
+static void Test_ee24201()
+{
+ extern Class_Descriptor cd_ee24201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24201, buf);
+ ee24201 *dp, &lv = *(dp=new (buf) ee24201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd4201*), 0, "ee24201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd4201*), 0, "ee24201");
+ check_base_class_offset(lv, (cc201*)(dd4201*), 0, "ee24201");
+ check_base_class_offset(lv, (dd4201*), 0, "ee24201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24201.e");
+ test_class_info(&lv, &cd_ee24201);
+ dp->~ee24201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24201(Test_ee24201, "ee24201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24201C1Ev();
+extern void _ZN7ee24201D1Ev();
+Name_Map name_map_ee24201[] = {
+ NSPAIR(_ZN7ee24201C1Ev),
+ NSPAIR(_ZN7ee24201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd4201;
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+static Base_Class bases_ee24201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24201[];
+extern void _ZN7ee242013fooEv();
+extern void _ZN6dd42013barEv();
+static VTBL_ENTRY vtc_ee24201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24201[0]),
+ (VTBL_ENTRY)&_ZN7ee242013fooEv,
+ (VTBL_ENTRY)&_ZN6dd42013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24201[];
+extern VTBL_ENTRY _ZTV7ee24201[];
+Class_Descriptor cd_ee24201 = { "ee24201", // class name
+ bases_ee24201, 4,
+ &(vtc_ee24201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34201 : virtual dd4201 {
+ int e;
+ virtual void foo(); // _ZN7ee342013fooEv
+ ~ee34201(); // tgen
+ ee34201(); // tgen
+};
+//SIG(1 ee34201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34201 ::foo(){vfunc_called(this, "_ZN7ee342013fooEv");}
+ee34201 ::~ee34201(){ note_dtor("ee34201", this);} // tgen
+ee34201 ::ee34201(){ note_ctor("ee34201", this);} // tgen
+
+static void Test_ee34201()
+{
+ extern Class_Descriptor cd_ee34201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34201, buf);
+ ee34201 *dp, &lv = *(dp=new (buf) ee34201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd4201*), ABISELECT(16,8), "ee34201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd4201*), ABISELECT(16,8), "ee34201");
+ check_base_class_offset(lv, (cc201*)(dd4201*), ABISELECT(16,8), "ee34201");
+ check_base_class_offset(lv, (dd4201*), ABISELECT(16,8), "ee34201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34201.e");
+ test_class_info(&lv, &cd_ee34201);
+ dp->~ee34201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34201(Test_ee34201, "ee34201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34201C1Ev();
+extern void _ZN7ee34201D1Ev();
+Name_Map name_map_ee34201[] = {
+ NSPAIR(_ZN7ee34201C1Ev),
+ NSPAIR(_ZN7ee34201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd4201;
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+static Base_Class bases_ee34201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34201[];
+extern void _ZN7ee342013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342013fooEv,_ZTv0_n12_N7ee342013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342013fooEv,_ZThn8_N7ee342013fooEv)() __attribute__((weak));
+extern void _ZN6dd42013barEv();
+static VTBL_ENTRY vtc_ee34201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34201[0]),
+ (VTBL_ENTRY)&_ZN7ee342013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342013fooEv,_ZTv0_n12_N7ee342013fooEv),
+ (VTBL_ENTRY)&_ZN6dd42013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34201[];
+static VTT_ENTRY vtt_ee34201[] = {
+ {&(_ZTV7ee34201[3]), 3,10},
+ {&(_ZTV7ee34201[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34201[];
+extern VTBL_ENTRY _ZTV7ee34201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34201[];
+static VTBL_ENTRY alt_thunk_names375[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342013fooEv,_ZTv0_n12_N7ee342013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342013fooEv,_ZThn8_N7ee342013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34201 = { "ee34201", // class name
+ bases_ee34201, 4,
+ &(vtc_ee34201[0]), // expected_vtbl_contents
+ &(vtt_ee34201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34201),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names375,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44201 : dd4201 {
+ int e;
+ virtual void bar(); // _ZN7ee442013barEv
+ ~ee44201(); // tgen
+ ee44201(); // tgen
+};
+//SIG(1 ee44201) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44201 ::bar(){vfunc_called(this, "_ZN7ee442013barEv");}
+ee44201 ::~ee44201(){ note_dtor("ee44201", this);} // tgen
+ee44201 ::ee44201(){ note_ctor("ee44201", this);} // tgen
+
+static void Test_ee44201()
+{
+ extern Class_Descriptor cd_ee44201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44201, buf);
+ ee44201 *dp, &lv = *(dp=new (buf) ee44201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd4201*), 0, "ee44201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd4201*), 0, "ee44201");
+ check_base_class_offset(lv, (cc201*)(dd4201*), 0, "ee44201");
+ check_base_class_offset(lv, (dd4201*), 0, "ee44201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44201.e");
+ test_class_info(&lv, &cd_ee44201);
+ dp->~ee44201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44201(Test_ee44201, "ee44201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44201C1Ev();
+extern void _ZN7ee44201D1Ev();
+Name_Map name_map_ee44201[] = {
+ NSPAIR(_ZN7ee44201C1Ev),
+ NSPAIR(_ZN7ee44201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd4201;
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+static Base_Class bases_ee44201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44201[];
+extern void _ZN5cc2013fooEv();
+extern void _ZN7ee442013barEv();
+static VTBL_ENTRY vtc_ee44201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+ (VTBL_ENTRY)&_ZN7ee442013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44201[];
+extern VTBL_ENTRY _ZTV7ee44201[];
+Class_Descriptor cd_ee44201 = { "ee44201", // class name
+ bases_ee44201, 4,
+ &(vtc_ee44201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54201 : virtual dd4201 {
+ int e;
+ virtual void bar(); // _ZN7ee542013barEv
+ ~ee54201(); // tgen
+ ee54201(); // tgen
+};
+//SIG(1 ee54201) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54201 ::bar(){vfunc_called(this, "_ZN7ee542013barEv");}
+ee54201 ::~ee54201(){ note_dtor("ee54201", this);} // tgen
+ee54201 ::ee54201(){ note_ctor("ee54201", this);} // tgen
+
+static void Test_ee54201()
+{
+ extern Class_Descriptor cd_ee54201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54201, buf);
+ ee54201 *dp, &lv = *(dp=new (buf) ee54201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd4201*), ABISELECT(16,8), "ee54201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd4201*), ABISELECT(16,8), "ee54201");
+ check_base_class_offset(lv, (cc201*)(dd4201*), ABISELECT(16,8), "ee54201");
+ check_base_class_offset(lv, (dd4201*), ABISELECT(16,8), "ee54201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54201.e");
+ test_class_info(&lv, &cd_ee54201);
+ dp->~ee54201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54201(Test_ee54201, "ee54201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54201C1Ev();
+extern void _ZN7ee54201D1Ev();
+Name_Map name_map_ee54201[] = {
+ NSPAIR(_ZN7ee54201C1Ev),
+ NSPAIR(_ZN7ee54201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd4201;
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+static Base_Class bases_ee54201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54201[];
+extern void _ZN7ee542013barEv();
+extern void _ZN5cc2013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542013barEv,_ZTv0_n16_N7ee542013barEv)();
+extern void ABISELECT(_ZThn16_N7ee542013barEv,_ZThn8_N7ee542013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54201[0]),
+ (VTBL_ENTRY)&_ZN7ee542013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542013barEv,_ZTv0_n16_N7ee542013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54201[];
+static VTT_ENTRY vtt_ee54201[] = {
+ {&(_ZTV7ee54201[3]), 3,10},
+ {&(_ZTV7ee54201[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54201[];
+extern VTBL_ENTRY _ZTV7ee54201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54201[];
+static VTBL_ENTRY alt_thunk_names376[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542013barEv,_ZTv0_n16_N7ee542013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542013barEv,_ZThn8_N7ee542013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54201 = { "ee54201", // class name
+ bases_ee54201, 4,
+ &(vtc_ee54201[0]), // expected_vtbl_contents
+ &(vtt_ee54201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54201),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names376,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64201 : dd4201 {
+ int e;
+ virtual void foo(); // _ZN7ee642013fooEv
+ virtual void bar(); // _ZN7ee642013barEv
+ ~ee64201(); // tgen
+ ee64201(); // tgen
+};
+//SIG(1 ee64201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64201 ::foo(){vfunc_called(this, "_ZN7ee642013fooEv");}
+void ee64201 ::bar(){vfunc_called(this, "_ZN7ee642013barEv");}
+ee64201 ::~ee64201(){ note_dtor("ee64201", this);} // tgen
+ee64201 ::ee64201(){ note_ctor("ee64201", this);} // tgen
+
+static void Test_ee64201()
+{
+ extern Class_Descriptor cd_ee64201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64201, buf);
+ ee64201 *dp, &lv = *(dp=new (buf) ee64201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd4201*), 0, "ee64201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd4201*), 0, "ee64201");
+ check_base_class_offset(lv, (cc201*)(dd4201*), 0, "ee64201");
+ check_base_class_offset(lv, (dd4201*), 0, "ee64201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64201.e");
+ test_class_info(&lv, &cd_ee64201);
+ dp->~ee64201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64201(Test_ee64201, "ee64201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64201C1Ev();
+extern void _ZN7ee64201D1Ev();
+Name_Map name_map_ee64201[] = {
+ NSPAIR(_ZN7ee64201C1Ev),
+ NSPAIR(_ZN7ee64201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd4201;
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+static Base_Class bases_ee64201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64201[];
+extern void _ZN7ee642013fooEv();
+extern void _ZN7ee642013barEv();
+static VTBL_ENTRY vtc_ee64201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64201[0]),
+ (VTBL_ENTRY)&_ZN7ee642013fooEv,
+ (VTBL_ENTRY)&_ZN7ee642013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64201[];
+extern VTBL_ENTRY _ZTV7ee64201[];
+Class_Descriptor cd_ee64201 = { "ee64201", // class name
+ bases_ee64201, 4,
+ &(vtc_ee64201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74201 : virtual dd4201 {
+ int e;
+ virtual void foo(); // _ZN7ee742013fooEv
+ virtual void bar(); // _ZN7ee742013barEv
+ ~ee74201(); // tgen
+ ee74201(); // tgen
+};
+//SIG(1 ee74201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74201 ::foo(){vfunc_called(this, "_ZN7ee742013fooEv");}
+void ee74201 ::bar(){vfunc_called(this, "_ZN7ee742013barEv");}
+ee74201 ::~ee74201(){ note_dtor("ee74201", this);} // tgen
+ee74201 ::ee74201(){ note_ctor("ee74201", this);} // tgen
+
+static void Test_ee74201()
+{
+ extern Class_Descriptor cd_ee74201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74201, buf);
+ ee74201 *dp, &lv = *(dp=new (buf) ee74201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd4201*), ABISELECT(16,8), "ee74201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd4201*), ABISELECT(16,8), "ee74201");
+ check_base_class_offset(lv, (cc201*)(dd4201*), ABISELECT(16,8), "ee74201");
+ check_base_class_offset(lv, (dd4201*), ABISELECT(16,8), "ee74201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74201.e");
+ test_class_info(&lv, &cd_ee74201);
+ dp->~ee74201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74201(Test_ee74201, "ee74201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74201C1Ev();
+extern void _ZN7ee74201D1Ev();
+Name_Map name_map_ee74201[] = {
+ NSPAIR(_ZN7ee74201C1Ev),
+ NSPAIR(_ZN7ee74201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd4201;
+extern VTBL_ENTRY _ZTI6dd4201[];
+extern VTBL_ENTRY _ZTV6dd4201[];
+static Base_Class bases_ee74201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74201[];
+extern void _ZN7ee742013fooEv();
+extern void _ZN7ee742013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742013fooEv,_ZTv0_n12_N7ee742013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742013fooEv,_ZThn8_N7ee742013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742013barEv,_ZTv0_n16_N7ee742013barEv)();
+extern void ABISELECT(_ZThn16_N7ee742013barEv,_ZThn8_N7ee742013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74201[0]),
+ (VTBL_ENTRY)&_ZN7ee742013fooEv,
+ (VTBL_ENTRY)&_ZN7ee742013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742013fooEv,_ZTv0_n12_N7ee742013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742013barEv,_ZTv0_n16_N7ee742013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74201[];
+static VTT_ENTRY vtt_ee74201[] = {
+ {&(_ZTV7ee74201[3]), 3,11},
+ {&(_ZTV7ee74201[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74201[];
+extern VTBL_ENTRY _ZTV7ee74201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74201[];
+static VTBL_ENTRY alt_thunk_names377[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742013barEv,_ZTv0_n16_N7ee742013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742013barEv,_ZThn8_N7ee742013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742013fooEv,_ZTv0_n12_N7ee742013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742013fooEv,_ZThn8_N7ee742013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74201 = { "ee74201", // class name
+ bases_ee74201, 4,
+ &(vtc_ee74201[0]), // expected_vtbl_contents
+ &(vtt_ee74201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74201),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names377,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5201 : virtual cc201 {
+ int d;
+ virtual void bar(); // _ZN6dd52013barEv
+ ~dd5201(); // tgen
+ dd5201(); // tgen
+};
+//SIG(-1 dd5201) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd5201 ::bar(){vfunc_called(this, "_ZN6dd52013barEv");}
+dd5201 ::~dd5201(){ note_dtor("dd5201", this);} // tgen
+dd5201 ::dd5201(){ note_ctor("dd5201", this);} // tgen
+
+static void Test_dd5201()
+{
+ extern Class_Descriptor cd_dd5201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5201, buf);
+ dd5201 *dp, &lv = *(dp=new (buf) dd5201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,8), "dd5201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,8), "dd5201");
+ check_base_class_offset(lv, (cc201*), ABISELECT(16,8), "dd5201");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5201.d");
+ test_class_info(&lv, &cd_dd5201);
+ dp->~dd5201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5201(Test_dd5201, "dd5201", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5201C1Ev();
+extern void _ZN6dd5201D1Ev();
+Name_Map name_map_dd5201[] = {
+ NSPAIR(_ZN6dd5201C1Ev),
+ NSPAIR(_ZN6dd5201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+static Base_Class bases_dd5201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern void _ZN6dd52013barEv();
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_dd5201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5201[];
+static VTT_ENTRY vtt_dd5201[] = {
+ {&(_ZTV6dd5201[3]), 3,8},
+ {&(_ZTV6dd5201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+Class_Descriptor cd_dd5201 = { "dd5201", // class name
+ bases_dd5201, 3,
+ &(vtc_dd5201[0]), // expected_vtbl_contents
+ &(vtt_dd5201[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5201),2, //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 ee05201 : dd5201 {
+ int e;
+ ~ee05201(); // tgen
+ ee05201(); // tgen
+};
+//SIG(1 ee05201) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05201 ::~ee05201(){ note_dtor("ee05201", this);} // tgen
+ee05201 ::ee05201(){ note_ctor("ee05201", this);} // tgen
+
+static void Test_ee05201()
+{
+ extern Class_Descriptor cd_ee05201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05201, buf);
+ ee05201 *dp, &lv = *(dp=new (buf) ee05201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee05201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee05201");
+ check_base_class_offset(lv, (cc201*)(dd5201*), ABISELECT(16,12), "ee05201");
+ check_base_class_offset(lv, (dd5201*), 0, "ee05201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05201.e");
+ test_class_info(&lv, &cd_ee05201);
+ dp->~ee05201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05201(Test_ee05201, "ee05201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05201C1Ev();
+extern void _ZN7ee05201D1Ev();
+Name_Map name_map_ee05201[] = {
+ NSPAIR(_ZN7ee05201C1Ev),
+ NSPAIR(_ZN7ee05201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd5201;
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+static Base_Class bases_ee05201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05201[];
+extern void _ZN6dd52013barEv();
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee05201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05201[];
+extern void _ZN6dd52013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5201__7ee05201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd5201__7ee05201[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee05201[] = {
+ {&(_ZTV7ee05201[3]), 3,8},
+ {&(_tg__ZTV6dd5201__7ee05201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd5201__7ee05201[3]), 3,4},
+ {&(_ZTV7ee05201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee05201[];
+extern VTBL_ENTRY _ZTV7ee05201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05201[];
+Class_Descriptor cd_ee05201 = { "ee05201", // class name
+ bases_ee05201, 4,
+ &(vtc_ee05201[0]), // expected_vtbl_contents
+ &(vtt_ee05201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15201 : virtual dd5201 {
+ int e;
+ ~ee15201(); // tgen
+ ee15201(); // tgen
+};
+//SIG(1 ee15201) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15201 ::~ee15201(){ note_dtor("ee15201", this);} // tgen
+ee15201 ::ee15201(){ note_ctor("ee15201", this);} // tgen
+
+static void Test_ee15201()
+{
+ extern Class_Descriptor cd_ee15201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15201, buf);
+ ee15201 *dp, &lv = *(dp=new (buf) ee15201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee15201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee15201");
+ check_base_class_offset(lv, (cc201*)(dd5201*), ABISELECT(32,16), "ee15201");
+ check_base_class_offset(lv, (dd5201*), ABISELECT(16,8), "ee15201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15201.e");
+ test_class_info(&lv, &cd_ee15201);
+ dp->~ee15201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15201(Test_ee15201, "ee15201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15201C1Ev();
+extern void _ZN7ee15201D1Ev();
+Name_Map name_map_ee15201[] = {
+ NSPAIR(_ZN7ee15201C1Ev),
+ NSPAIR(_ZN7ee15201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd5201;
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+static Base_Class bases_ee15201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15201[];
+extern void _ZN6dd52013barEv();
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee15201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15201[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15201[];
+extern void _ZN6dd52013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5201__7ee15201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd5201__7ee15201[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee15201[] = {
+ {&(_ZTV7ee15201[4]), 4,13},
+ {&(_ZTV7ee15201[8]), 8,13},
+ {&(_ZTV7ee15201[12]), 12,13},
+ {&(_tg__ZTV6dd5201__7ee15201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd5201__7ee15201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15201[];
+extern VTBL_ENTRY _ZTV7ee15201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15201[];
+Class_Descriptor cd_ee15201 = { "ee15201", // class name
+ bases_ee15201, 4,
+ &(vtc_ee15201[0]), // expected_vtbl_contents
+ &(vtt_ee15201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15201),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25201 : dd5201 {
+ int e;
+ virtual void foo(); // _ZN7ee252013fooEv
+ ~ee25201(); // tgen
+ ee25201(); // tgen
+};
+//SIG(1 ee25201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25201 ::foo(){vfunc_called(this, "_ZN7ee252013fooEv");}
+ee25201 ::~ee25201(){ note_dtor("ee25201", this);} // tgen
+ee25201 ::ee25201(){ note_ctor("ee25201", this);} // tgen
+
+static void Test_ee25201()
+{
+ extern Class_Descriptor cd_ee25201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25201, buf);
+ ee25201 *dp, &lv = *(dp=new (buf) ee25201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee25201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee25201");
+ check_base_class_offset(lv, (cc201*)(dd5201*), ABISELECT(16,12), "ee25201");
+ check_base_class_offset(lv, (dd5201*), 0, "ee25201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25201.e");
+ test_class_info(&lv, &cd_ee25201);
+ dp->~ee25201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25201(Test_ee25201, "ee25201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25201C1Ev();
+extern void _ZN7ee25201D1Ev();
+Name_Map name_map_ee25201[] = {
+ NSPAIR(_ZN7ee25201C1Ev),
+ NSPAIR(_ZN7ee25201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd5201;
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+static Base_Class bases_ee25201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25201[];
+extern void _ZN6dd52013barEv();
+extern void _ZN7ee252013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252013fooEv,_ZTv0_n12_N7ee252013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252013fooEv,_ZThn12_N7ee252013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+ (VTBL_ENTRY)&_ZN7ee252013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252013fooEv,_ZTv0_n12_N7ee252013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25201[];
+extern void _ZN6dd52013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5201__7ee25201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd5201__7ee25201[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee25201[] = {
+ {&(_ZTV7ee25201[3]), 3,9},
+ {&(_tg__ZTV6dd5201__7ee25201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd5201__7ee25201[3]), 3,4},
+ {&(_ZTV7ee25201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee25201[];
+extern VTBL_ENTRY _ZTV7ee25201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25201[];
+static VTBL_ENTRY alt_thunk_names378[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252013fooEv,_ZTv0_n12_N7ee252013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252013fooEv,_ZThn12_N7ee252013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25201 = { "ee25201", // class name
+ bases_ee25201, 4,
+ &(vtc_ee25201[0]), // expected_vtbl_contents
+ &(vtt_ee25201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names378,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35201 : virtual dd5201 {
+ int e;
+ virtual void foo(); // _ZN7ee352013fooEv
+ ~ee35201(); // tgen
+ ee35201(); // tgen
+};
+//SIG(1 ee35201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35201 ::foo(){vfunc_called(this, "_ZN7ee352013fooEv");}
+ee35201 ::~ee35201(){ note_dtor("ee35201", this);} // tgen
+ee35201 ::ee35201(){ note_ctor("ee35201", this);} // tgen
+
+static void Test_ee35201()
+{
+ extern Class_Descriptor cd_ee35201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35201, buf);
+ ee35201 *dp, &lv = *(dp=new (buf) ee35201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee35201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee35201");
+ check_base_class_offset(lv, (cc201*)(dd5201*), ABISELECT(32,16), "ee35201");
+ check_base_class_offset(lv, (dd5201*), ABISELECT(16,8), "ee35201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35201.e");
+ test_class_info(&lv, &cd_ee35201);
+ dp->~ee35201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35201(Test_ee35201, "ee35201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35201C1Ev();
+extern void _ZN7ee35201D1Ev();
+Name_Map name_map_ee35201[] = {
+ NSPAIR(_ZN7ee35201C1Ev),
+ NSPAIR(_ZN7ee35201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd5201;
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+static Base_Class bases_ee35201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35201[];
+extern void _ZN7ee352013fooEv();
+extern void _ZN6dd52013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352013fooEv,_ZTv0_n12_N7ee352013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352013fooEv,_ZThn16_N7ee352013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35201[0]),
+ (VTBL_ENTRY)&_ZN7ee352013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352013fooEv,_ZTv0_n12_N7ee352013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35201[];
+extern void _ZN6dd52013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5201__7ee35201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd5201__7ee35201[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee35201[] = {
+ {&(_ZTV7ee35201[4]), 4,14},
+ {&(_ZTV7ee35201[9]), 9,14},
+ {&(_ZTV7ee35201[13]), 13,14},
+ {&(_tg__ZTV6dd5201__7ee35201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd5201__7ee35201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35201[];
+extern VTBL_ENTRY _ZTV7ee35201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35201[];
+static VTBL_ENTRY alt_thunk_names379[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352013fooEv,_ZTv0_n12_N7ee352013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352013fooEv,_ZThn16_N7ee352013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35201 = { "ee35201", // class name
+ bases_ee35201, 4,
+ &(vtc_ee35201[0]), // expected_vtbl_contents
+ &(vtt_ee35201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35201),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names379,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45201 : dd5201 {
+ int e;
+ virtual void bar(); // _ZN7ee452013barEv
+ ~ee45201(); // tgen
+ ee45201(); // tgen
+};
+//SIG(1 ee45201) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45201 ::bar(){vfunc_called(this, "_ZN7ee452013barEv");}
+ee45201 ::~ee45201(){ note_dtor("ee45201", this);} // tgen
+ee45201 ::ee45201(){ note_ctor("ee45201", this);} // tgen
+
+static void Test_ee45201()
+{
+ extern Class_Descriptor cd_ee45201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45201, buf);
+ ee45201 *dp, &lv = *(dp=new (buf) ee45201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee45201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee45201");
+ check_base_class_offset(lv, (cc201*)(dd5201*), ABISELECT(16,12), "ee45201");
+ check_base_class_offset(lv, (dd5201*), 0, "ee45201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45201.e");
+ test_class_info(&lv, &cd_ee45201);
+ dp->~ee45201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45201(Test_ee45201, "ee45201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45201C1Ev();
+extern void _ZN7ee45201D1Ev();
+Name_Map name_map_ee45201[] = {
+ NSPAIR(_ZN7ee45201C1Ev),
+ NSPAIR(_ZN7ee45201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd5201;
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+static Base_Class bases_ee45201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45201[];
+extern void _ZN7ee452013barEv();
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee45201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45201[0]),
+ (VTBL_ENTRY)&_ZN7ee452013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45201[];
+extern void _ZN6dd52013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5201__7ee45201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd5201__7ee45201[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee45201[] = {
+ {&(_ZTV7ee45201[3]), 3,8},
+ {&(_tg__ZTV6dd5201__7ee45201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd5201__7ee45201[3]), 3,4},
+ {&(_ZTV7ee45201[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee45201[];
+extern VTBL_ENTRY _ZTV7ee45201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45201[];
+Class_Descriptor cd_ee45201 = { "ee45201", // class name
+ bases_ee45201, 4,
+ &(vtc_ee45201[0]), // expected_vtbl_contents
+ &(vtt_ee45201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45201),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55201 : virtual dd5201 {
+ int e;
+ virtual void bar(); // _ZN7ee552013barEv
+ ~ee55201(); // tgen
+ ee55201(); // tgen
+};
+//SIG(1 ee55201) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55201 ::bar(){vfunc_called(this, "_ZN7ee552013barEv");}
+ee55201 ::~ee55201(){ note_dtor("ee55201", this);} // tgen
+ee55201 ::ee55201(){ note_ctor("ee55201", this);} // tgen
+
+static void Test_ee55201()
+{
+ extern Class_Descriptor cd_ee55201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55201, buf);
+ ee55201 *dp, &lv = *(dp=new (buf) ee55201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee55201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee55201");
+ check_base_class_offset(lv, (cc201*)(dd5201*), ABISELECT(32,16), "ee55201");
+ check_base_class_offset(lv, (dd5201*), ABISELECT(16,8), "ee55201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55201.e");
+ test_class_info(&lv, &cd_ee55201);
+ dp->~ee55201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55201(Test_ee55201, "ee55201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55201C1Ev();
+extern void _ZN7ee55201D1Ev();
+Name_Map name_map_ee55201[] = {
+ NSPAIR(_ZN7ee55201C1Ev),
+ NSPAIR(_ZN7ee55201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd5201;
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+static Base_Class bases_ee55201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55201[];
+extern void _ZN7ee552013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552013barEv,_ZTv0_n16_N7ee552013barEv)();
+extern void ABISELECT(_ZThn16_N7ee552013barEv,_ZThn8_N7ee552013barEv)() __attribute__((weak));
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY vtc_ee55201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55201[0]),
+ (VTBL_ENTRY)&_ZN7ee552013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552013barEv,_ZTv0_n16_N7ee552013barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55201[];
+extern void _ZN6dd52013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5201__7ee55201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd5201__7ee55201[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee55201[] = {
+ {&(_ZTV7ee55201[4]), 4,14},
+ {&(_ZTV7ee55201[9]), 9,14},
+ {&(_ZTV7ee55201[13]), 13,14},
+ {&(_tg__ZTV6dd5201__7ee55201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd5201__7ee55201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55201[];
+extern VTBL_ENTRY _ZTV7ee55201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55201[];
+static VTBL_ENTRY alt_thunk_names380[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552013barEv,_ZTv0_n16_N7ee552013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552013barEv,_ZThn8_N7ee552013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55201 = { "ee55201", // class name
+ bases_ee55201, 4,
+ &(vtc_ee55201[0]), // expected_vtbl_contents
+ &(vtt_ee55201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55201),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names380,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65201 : dd5201 {
+ int e;
+ virtual void foo(); // _ZN7ee652013fooEv
+ virtual void bar(); // _ZN7ee652013barEv
+ ~ee65201(); // tgen
+ ee65201(); // tgen
+};
+//SIG(1 ee65201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65201 ::foo(){vfunc_called(this, "_ZN7ee652013fooEv");}
+void ee65201 ::bar(){vfunc_called(this, "_ZN7ee652013barEv");}
+ee65201 ::~ee65201(){ note_dtor("ee65201", this);} // tgen
+ee65201 ::ee65201(){ note_ctor("ee65201", this);} // tgen
+
+static void Test_ee65201()
+{
+ extern Class_Descriptor cd_ee65201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65201, buf);
+ ee65201 *dp, &lv = *(dp=new (buf) ee65201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee65201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee65201");
+ check_base_class_offset(lv, (cc201*)(dd5201*), ABISELECT(16,12), "ee65201");
+ check_base_class_offset(lv, (dd5201*), 0, "ee65201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65201.e");
+ test_class_info(&lv, &cd_ee65201);
+ dp->~ee65201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65201(Test_ee65201, "ee65201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65201C1Ev();
+extern void _ZN7ee65201D1Ev();
+Name_Map name_map_ee65201[] = {
+ NSPAIR(_ZN7ee65201C1Ev),
+ NSPAIR(_ZN7ee65201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd5201;
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+static Base_Class bases_ee65201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65201[];
+extern void _ZN7ee652013barEv();
+extern void _ZN7ee652013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652013fooEv,_ZTv0_n12_N7ee652013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652013fooEv,_ZThn12_N7ee652013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65201[0]),
+ (VTBL_ENTRY)&_ZN7ee652013barEv,
+ (VTBL_ENTRY)&_ZN7ee652013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652013fooEv,_ZTv0_n12_N7ee652013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65201[];
+extern void _ZN6dd52013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5201__7ee65201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd5201__7ee65201[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee65201[] = {
+ {&(_ZTV7ee65201[3]), 3,9},
+ {&(_tg__ZTV6dd5201__7ee65201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd5201__7ee65201[3]), 3,4},
+ {&(_ZTV7ee65201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee65201[];
+extern VTBL_ENTRY _ZTV7ee65201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65201[];
+static VTBL_ENTRY alt_thunk_names381[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652013fooEv,_ZTv0_n12_N7ee652013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652013fooEv,_ZThn12_N7ee652013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65201 = { "ee65201", // class name
+ bases_ee65201, 4,
+ &(vtc_ee65201[0]), // expected_vtbl_contents
+ &(vtt_ee65201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names381,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75201 : virtual dd5201 {
+ int e;
+ virtual void foo(); // _ZN7ee752013fooEv
+ virtual void bar(); // _ZN7ee752013barEv
+ ~ee75201(); // tgen
+ ee75201(); // tgen
+};
+//SIG(1 ee75201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75201 ::foo(){vfunc_called(this, "_ZN7ee752013fooEv");}
+void ee75201 ::bar(){vfunc_called(this, "_ZN7ee752013barEv");}
+ee75201 ::~ee75201(){ note_dtor("ee75201", this);} // tgen
+ee75201 ::ee75201(){ note_ctor("ee75201", this);} // tgen
+
+static void Test_ee75201()
+{
+ extern Class_Descriptor cd_ee75201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75201, buf);
+ ee75201 *dp, &lv = *(dp=new (buf) ee75201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee75201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee75201");
+ check_base_class_offset(lv, (cc201*)(dd5201*), ABISELECT(32,16), "ee75201");
+ check_base_class_offset(lv, (dd5201*), ABISELECT(16,8), "ee75201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75201.e");
+ test_class_info(&lv, &cd_ee75201);
+ dp->~ee75201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75201(Test_ee75201, "ee75201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75201C1Ev();
+extern void _ZN7ee75201D1Ev();
+Name_Map name_map_ee75201[] = {
+ NSPAIR(_ZN7ee75201C1Ev),
+ NSPAIR(_ZN7ee75201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd5201;
+extern VTBL_ENTRY _ZTI6dd5201[];
+extern VTBL_ENTRY _ZTV6dd5201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5201[];
+static Base_Class bases_ee75201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5201, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75201[];
+extern void _ZN7ee752013fooEv();
+extern void _ZN7ee752013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752013barEv,_ZTv0_n16_N7ee752013barEv)();
+extern void ABISELECT(_ZThn16_N7ee752013barEv,_ZThn8_N7ee752013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752013fooEv,_ZTv0_n12_N7ee752013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752013fooEv,_ZThn16_N7ee752013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75201[0]),
+ (VTBL_ENTRY)&_ZN7ee752013fooEv,
+ (VTBL_ENTRY)&_ZN7ee752013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752013barEv,_ZTv0_n16_N7ee752013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752013fooEv,_ZTv0_n12_N7ee752013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75201[];
+extern void _ZN6dd52013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5201__7ee75201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN6dd52013barEv,
+};
+extern void _ZN5cc2013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc201__6dd5201__7ee75201[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5201[0]),
+ (VTBL_ENTRY)&_ZN5cc2013fooEv,
+};
+static VTT_ENTRY vtt_ee75201[] = {
+ {&(_ZTV7ee75201[4]), 4,15},
+ {&(_ZTV7ee75201[10]), 10,15},
+ {&(_ZTV7ee75201[14]), 14,15},
+ {&(_tg__ZTV6dd5201__7ee75201[3]), 3,4},
+ {&(_tg__ZTV5cc201__6dd5201__7ee75201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75201[];
+extern VTBL_ENTRY _ZTV7ee75201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75201[];
+static VTBL_ENTRY alt_thunk_names382[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752013fooEv,_ZTv0_n12_N7ee752013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752013fooEv,_ZThn16_N7ee752013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752013barEv,_ZTv0_n16_N7ee752013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752013barEv,_ZThn8_N7ee752013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75201 = { "ee75201", // class name
+ bases_ee75201, 4,
+ &(vtc_ee75201[0]), // expected_vtbl_contents
+ &(vtt_ee75201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75201),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names382,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6201 : cc201 {
+ int d;
+ virtual void bar(); // _ZN6dd62013barEv
+ virtual void foo(); // _ZN6dd62013fooEv
+ ~dd6201(); // tgen
+ dd6201(); // tgen
+};
+//SIG(-1 dd6201) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6201 ::bar(){vfunc_called(this, "_ZN6dd62013barEv");}
+void dd6201 ::foo(){vfunc_called(this, "_ZN6dd62013fooEv");}
+dd6201 ::~dd6201(){ note_dtor("dd6201", this);} // tgen
+dd6201 ::dd6201(){ note_ctor("dd6201", this);} // tgen
+
+static void Test_dd6201()
+{
+ extern Class_Descriptor cd_dd6201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6201, buf);
+ dd6201 *dp, &lv = *(dp=new (buf) dd6201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), 0, "dd6201");
+ check_base_class_offset(lv, (bb01*)(cc201*), 0, "dd6201");
+ check_base_class_offset(lv, (cc201*), 0, "dd6201");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6201.d");
+ test_class_info(&lv, &cd_dd6201);
+ dp->~dd6201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6201(Test_dd6201, "dd6201", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6201C1Ev();
+extern void _ZN6dd6201D1Ev();
+Name_Map name_map_dd6201[] = {
+ NSPAIR(_ZN6dd6201C1Ev),
+ NSPAIR(_ZN6dd6201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+static Base_Class bases_dd6201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern void _ZN6dd62013fooEv();
+extern void _ZN6dd62013barEv();
+static VTBL_ENTRY vtc_dd6201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6201[0]),
+ (VTBL_ENTRY)&_ZN6dd62013fooEv,
+ (VTBL_ENTRY)&_ZN6dd62013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+Class_Descriptor cd_dd6201 = { "dd6201", // class name
+ bases_dd6201, 3,
+ &(vtc_dd6201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06201 : dd6201 {
+ int e;
+ ~ee06201(); // tgen
+ ee06201(); // tgen
+};
+//SIG(1 ee06201) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06201 ::~ee06201(){ note_dtor("ee06201", this);} // tgen
+ee06201 ::ee06201(){ note_ctor("ee06201", this);} // tgen
+
+static void Test_ee06201()
+{
+ extern Class_Descriptor cd_ee06201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06201, buf);
+ ee06201 *dp, &lv = *(dp=new (buf) ee06201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd6201*), 0, "ee06201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd6201*), 0, "ee06201");
+ check_base_class_offset(lv, (cc201*)(dd6201*), 0, "ee06201");
+ check_base_class_offset(lv, (dd6201*), 0, "ee06201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06201.e");
+ test_class_info(&lv, &cd_ee06201);
+ dp->~ee06201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06201(Test_ee06201, "ee06201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06201C1Ev();
+extern void _ZN7ee06201D1Ev();
+Name_Map name_map_ee06201[] = {
+ NSPAIR(_ZN7ee06201C1Ev),
+ NSPAIR(_ZN7ee06201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd6201;
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+static Base_Class bases_ee06201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6201, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06201[];
+extern void _ZN6dd62013fooEv();
+extern void _ZN6dd62013barEv();
+static VTBL_ENTRY vtc_ee06201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06201[0]),
+ (VTBL_ENTRY)&_ZN6dd62013fooEv,
+ (VTBL_ENTRY)&_ZN6dd62013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06201[];
+extern VTBL_ENTRY _ZTV7ee06201[];
+Class_Descriptor cd_ee06201 = { "ee06201", // class name
+ bases_ee06201, 4,
+ &(vtc_ee06201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16201 : virtual dd6201 {
+ int e;
+ ~ee16201(); // tgen
+ ee16201(); // tgen
+};
+//SIG(1 ee16201) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16201 ::~ee16201(){ note_dtor("ee16201", this);} // tgen
+ee16201 ::ee16201(){ note_ctor("ee16201", this);} // tgen
+
+static void Test_ee16201()
+{
+ extern Class_Descriptor cd_ee16201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16201, buf);
+ ee16201 *dp, &lv = *(dp=new (buf) ee16201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd6201*), ABISELECT(16,8), "ee16201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd6201*), ABISELECT(16,8), "ee16201");
+ check_base_class_offset(lv, (cc201*)(dd6201*), ABISELECT(16,8), "ee16201");
+ check_base_class_offset(lv, (dd6201*), ABISELECT(16,8), "ee16201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16201.e");
+ test_class_info(&lv, &cd_ee16201);
+ dp->~ee16201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16201(Test_ee16201, "ee16201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16201C1Ev();
+extern void _ZN7ee16201D1Ev();
+Name_Map name_map_ee16201[] = {
+ NSPAIR(_ZN7ee16201C1Ev),
+ NSPAIR(_ZN7ee16201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd6201;
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+static Base_Class bases_ee16201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6201, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16201[];
+extern void _ZN6dd62013fooEv();
+extern void _ZN6dd62013barEv();
+static VTBL_ENTRY vtc_ee16201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16201[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16201[0]),
+ (VTBL_ENTRY)&_ZN6dd62013fooEv,
+ (VTBL_ENTRY)&_ZN6dd62013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16201[];
+static VTT_ENTRY vtt_ee16201[] = {
+ {&(_ZTV7ee16201[3]), 3,9},
+ {&(_ZTV7ee16201[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16201[];
+extern VTBL_ENTRY _ZTV7ee16201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16201[];
+Class_Descriptor cd_ee16201 = { "ee16201", // class name
+ bases_ee16201, 4,
+ &(vtc_ee16201[0]), // expected_vtbl_contents
+ &(vtt_ee16201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26201 : dd6201 {
+ int e;
+ virtual void foo(); // _ZN7ee262013fooEv
+ ~ee26201(); // tgen
+ ee26201(); // tgen
+};
+//SIG(1 ee26201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26201 ::foo(){vfunc_called(this, "_ZN7ee262013fooEv");}
+ee26201 ::~ee26201(){ note_dtor("ee26201", this);} // tgen
+ee26201 ::ee26201(){ note_ctor("ee26201", this);} // tgen
+
+static void Test_ee26201()
+{
+ extern Class_Descriptor cd_ee26201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26201, buf);
+ ee26201 *dp, &lv = *(dp=new (buf) ee26201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd6201*), 0, "ee26201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd6201*), 0, "ee26201");
+ check_base_class_offset(lv, (cc201*)(dd6201*), 0, "ee26201");
+ check_base_class_offset(lv, (dd6201*), 0, "ee26201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26201.e");
+ test_class_info(&lv, &cd_ee26201);
+ dp->~ee26201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26201(Test_ee26201, "ee26201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26201C1Ev();
+extern void _ZN7ee26201D1Ev();
+Name_Map name_map_ee26201[] = {
+ NSPAIR(_ZN7ee26201C1Ev),
+ NSPAIR(_ZN7ee26201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd6201;
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+static Base_Class bases_ee26201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26201[];
+extern void _ZN7ee262013fooEv();
+extern void _ZN6dd62013barEv();
+static VTBL_ENTRY vtc_ee26201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26201[0]),
+ (VTBL_ENTRY)&_ZN7ee262013fooEv,
+ (VTBL_ENTRY)&_ZN6dd62013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26201[];
+extern VTBL_ENTRY _ZTV7ee26201[];
+Class_Descriptor cd_ee26201 = { "ee26201", // class name
+ bases_ee26201, 4,
+ &(vtc_ee26201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36201 : virtual dd6201 {
+ int e;
+ virtual void foo(); // _ZN7ee362013fooEv
+ ~ee36201(); // tgen
+ ee36201(); // tgen
+};
+//SIG(1 ee36201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36201 ::foo(){vfunc_called(this, "_ZN7ee362013fooEv");}
+ee36201 ::~ee36201(){ note_dtor("ee36201", this);} // tgen
+ee36201 ::ee36201(){ note_ctor("ee36201", this);} // tgen
+
+static void Test_ee36201()
+{
+ extern Class_Descriptor cd_ee36201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36201, buf);
+ ee36201 *dp, &lv = *(dp=new (buf) ee36201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd6201*), ABISELECT(16,8), "ee36201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd6201*), ABISELECT(16,8), "ee36201");
+ check_base_class_offset(lv, (cc201*)(dd6201*), ABISELECT(16,8), "ee36201");
+ check_base_class_offset(lv, (dd6201*), ABISELECT(16,8), "ee36201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36201.e");
+ test_class_info(&lv, &cd_ee36201);
+ dp->~ee36201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36201(Test_ee36201, "ee36201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36201C1Ev();
+extern void _ZN7ee36201D1Ev();
+Name_Map name_map_ee36201[] = {
+ NSPAIR(_ZN7ee36201C1Ev),
+ NSPAIR(_ZN7ee36201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd6201;
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+static Base_Class bases_ee36201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36201[];
+extern void _ZN7ee362013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee362013fooEv,_ZTv0_n12_N7ee362013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362013fooEv,_ZThn8_N7ee362013fooEv)() __attribute__((weak));
+extern void _ZN6dd62013barEv();
+static VTBL_ENTRY vtc_ee36201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36201[0]),
+ (VTBL_ENTRY)&_ZN7ee362013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362013fooEv,_ZTv0_n12_N7ee362013fooEv),
+ (VTBL_ENTRY)&_ZN6dd62013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36201[];
+static VTT_ENTRY vtt_ee36201[] = {
+ {&(_ZTV7ee36201[3]), 3,10},
+ {&(_ZTV7ee36201[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36201[];
+extern VTBL_ENTRY _ZTV7ee36201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36201[];
+static VTBL_ENTRY alt_thunk_names383[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362013fooEv,_ZTv0_n12_N7ee362013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362013fooEv,_ZThn8_N7ee362013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36201 = { "ee36201", // class name
+ bases_ee36201, 4,
+ &(vtc_ee36201[0]), // expected_vtbl_contents
+ &(vtt_ee36201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36201),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names383,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46201 : dd6201 {
+ int e;
+ virtual void bar(); // _ZN7ee462013barEv
+ ~ee46201(); // tgen
+ ee46201(); // tgen
+};
+//SIG(1 ee46201) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46201 ::bar(){vfunc_called(this, "_ZN7ee462013barEv");}
+ee46201 ::~ee46201(){ note_dtor("ee46201", this);} // tgen
+ee46201 ::ee46201(){ note_ctor("ee46201", this);} // tgen
+
+static void Test_ee46201()
+{
+ extern Class_Descriptor cd_ee46201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46201, buf);
+ ee46201 *dp, &lv = *(dp=new (buf) ee46201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd6201*), 0, "ee46201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd6201*), 0, "ee46201");
+ check_base_class_offset(lv, (cc201*)(dd6201*), 0, "ee46201");
+ check_base_class_offset(lv, (dd6201*), 0, "ee46201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46201.e");
+ test_class_info(&lv, &cd_ee46201);
+ dp->~ee46201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46201(Test_ee46201, "ee46201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46201C1Ev();
+extern void _ZN7ee46201D1Ev();
+Name_Map name_map_ee46201[] = {
+ NSPAIR(_ZN7ee46201C1Ev),
+ NSPAIR(_ZN7ee46201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd6201;
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+static Base_Class bases_ee46201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46201[];
+extern void _ZN6dd62013fooEv();
+extern void _ZN7ee462013barEv();
+static VTBL_ENTRY vtc_ee46201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46201[0]),
+ (VTBL_ENTRY)&_ZN6dd62013fooEv,
+ (VTBL_ENTRY)&_ZN7ee462013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46201[];
+extern VTBL_ENTRY _ZTV7ee46201[];
+Class_Descriptor cd_ee46201 = { "ee46201", // class name
+ bases_ee46201, 4,
+ &(vtc_ee46201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56201 : virtual dd6201 {
+ int e;
+ virtual void bar(); // _ZN7ee562013barEv
+ ~ee56201(); // tgen
+ ee56201(); // tgen
+};
+//SIG(1 ee56201) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56201 ::bar(){vfunc_called(this, "_ZN7ee562013barEv");}
+ee56201 ::~ee56201(){ note_dtor("ee56201", this);} // tgen
+ee56201 ::ee56201(){ note_ctor("ee56201", this);} // tgen
+
+static void Test_ee56201()
+{
+ extern Class_Descriptor cd_ee56201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56201, buf);
+ ee56201 *dp, &lv = *(dp=new (buf) ee56201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd6201*), ABISELECT(16,8), "ee56201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd6201*), ABISELECT(16,8), "ee56201");
+ check_base_class_offset(lv, (cc201*)(dd6201*), ABISELECT(16,8), "ee56201");
+ check_base_class_offset(lv, (dd6201*), ABISELECT(16,8), "ee56201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56201.e");
+ test_class_info(&lv, &cd_ee56201);
+ dp->~ee56201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56201(Test_ee56201, "ee56201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56201C1Ev();
+extern void _ZN7ee56201D1Ev();
+Name_Map name_map_ee56201[] = {
+ NSPAIR(_ZN7ee56201C1Ev),
+ NSPAIR(_ZN7ee56201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd6201;
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+static Base_Class bases_ee56201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56201[];
+extern void _ZN7ee562013barEv();
+extern void _ZN6dd62013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562013barEv,_ZTv0_n16_N7ee562013barEv)();
+extern void ABISELECT(_ZThn16_N7ee562013barEv,_ZThn8_N7ee562013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56201[0]),
+ (VTBL_ENTRY)&_ZN7ee562013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56201[0]),
+ (VTBL_ENTRY)&_ZN6dd62013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562013barEv,_ZTv0_n16_N7ee562013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56201[];
+static VTT_ENTRY vtt_ee56201[] = {
+ {&(_ZTV7ee56201[3]), 3,10},
+ {&(_ZTV7ee56201[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56201[];
+extern VTBL_ENTRY _ZTV7ee56201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56201[];
+static VTBL_ENTRY alt_thunk_names384[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562013barEv,_ZTv0_n16_N7ee562013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562013barEv,_ZThn8_N7ee562013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56201 = { "ee56201", // class name
+ bases_ee56201, 4,
+ &(vtc_ee56201[0]), // expected_vtbl_contents
+ &(vtt_ee56201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56201),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names384,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66201 : dd6201 {
+ int e;
+ virtual void foo(); // _ZN7ee662013fooEv
+ virtual void bar(); // _ZN7ee662013barEv
+ ~ee66201(); // tgen
+ ee66201(); // tgen
+};
+//SIG(1 ee66201) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66201 ::foo(){vfunc_called(this, "_ZN7ee662013fooEv");}
+void ee66201 ::bar(){vfunc_called(this, "_ZN7ee662013barEv");}
+ee66201 ::~ee66201(){ note_dtor("ee66201", this);} // tgen
+ee66201 ::ee66201(){ note_ctor("ee66201", this);} // tgen
+
+static void Test_ee66201()
+{
+ extern Class_Descriptor cd_ee66201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66201, buf);
+ ee66201 *dp, &lv = *(dp=new (buf) ee66201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd6201*), 0, "ee66201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd6201*), 0, "ee66201");
+ check_base_class_offset(lv, (cc201*)(dd6201*), 0, "ee66201");
+ check_base_class_offset(lv, (dd6201*), 0, "ee66201");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66201.e");
+ test_class_info(&lv, &cd_ee66201);
+ dp->~ee66201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66201(Test_ee66201, "ee66201", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66201C1Ev();
+extern void _ZN7ee66201D1Ev();
+Name_Map name_map_ee66201[] = {
+ NSPAIR(_ZN7ee66201C1Ev),
+ NSPAIR(_ZN7ee66201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd6201;
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+static Base_Class bases_ee66201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66201[];
+extern void _ZN7ee662013fooEv();
+extern void _ZN7ee662013barEv();
+static VTBL_ENTRY vtc_ee66201[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66201[0]),
+ (VTBL_ENTRY)&_ZN7ee662013fooEv,
+ (VTBL_ENTRY)&_ZN7ee662013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66201[];
+extern VTBL_ENTRY _ZTV7ee66201[];
+Class_Descriptor cd_ee66201 = { "ee66201", // class name
+ bases_ee66201, 4,
+ &(vtc_ee66201[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66201),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76201 : virtual dd6201 {
+ int e;
+ virtual void foo(); // _ZN7ee762013fooEv
+ virtual void bar(); // _ZN7ee762013barEv
+ ~ee76201(); // tgen
+ ee76201(); // tgen
+};
+//SIG(1 ee76201) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76201 ::foo(){vfunc_called(this, "_ZN7ee762013fooEv");}
+void ee76201 ::bar(){vfunc_called(this, "_ZN7ee762013barEv");}
+ee76201 ::~ee76201(){ note_dtor("ee76201", this);} // tgen
+ee76201 ::ee76201(){ note_ctor("ee76201", this);} // tgen
+
+static void Test_ee76201()
+{
+ extern Class_Descriptor cd_ee76201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76201, buf);
+ ee76201 *dp, &lv = *(dp=new (buf) ee76201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*)(dd6201*), ABISELECT(16,8), "ee76201");
+ check_base_class_offset(lv, (bb01*)(cc201*)(dd6201*), ABISELECT(16,8), "ee76201");
+ check_base_class_offset(lv, (cc201*)(dd6201*), ABISELECT(16,8), "ee76201");
+ check_base_class_offset(lv, (dd6201*), ABISELECT(16,8), "ee76201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76201.e");
+ test_class_info(&lv, &cd_ee76201);
+ dp->~ee76201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76201(Test_ee76201, "ee76201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76201C1Ev();
+extern void _ZN7ee76201D1Ev();
+Name_Map name_map_ee76201[] = {
+ NSPAIR(_ZN7ee76201C1Ev),
+ NSPAIR(_ZN7ee76201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd6201;
+extern VTBL_ENTRY _ZTI6dd6201[];
+extern VTBL_ENTRY _ZTV6dd6201[];
+static Base_Class bases_ee76201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76201[];
+extern void _ZN7ee762013fooEv();
+extern void _ZN7ee762013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762013fooEv,_ZTv0_n12_N7ee762013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762013fooEv,_ZThn8_N7ee762013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762013barEv,_ZTv0_n16_N7ee762013barEv)();
+extern void ABISELECT(_ZThn16_N7ee762013barEv,_ZThn8_N7ee762013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76201[0]),
+ (VTBL_ENTRY)&_ZN7ee762013fooEv,
+ (VTBL_ENTRY)&_ZN7ee762013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762013fooEv,_ZTv0_n12_N7ee762013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762013barEv,_ZTv0_n16_N7ee762013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76201[];
+static VTT_ENTRY vtt_ee76201[] = {
+ {&(_ZTV7ee76201[3]), 3,11},
+ {&(_ZTV7ee76201[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76201[];
+extern VTBL_ENTRY _ZTV7ee76201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76201[];
+static VTBL_ENTRY alt_thunk_names385[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762013barEv,_ZTv0_n16_N7ee762013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762013barEv,_ZThn8_N7ee762013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762013fooEv,_ZTv0_n12_N7ee762013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762013fooEv,_ZThn8_N7ee762013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76201 = { "ee76201", // class name
+ bases_ee76201, 4,
+ &(vtc_ee76201[0]), // expected_vtbl_contents
+ &(vtt_ee76201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76201),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76201),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names385,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7201 : virtual cc201 {
+ int d;
+ virtual void bar(); // _ZN6dd72013barEv
+ virtual void foo(); // _ZN6dd72013fooEv
+ ~dd7201(); // tgen
+ dd7201(); // tgen
+};
+//SIG(-1 dd7201) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7201 ::bar(){vfunc_called(this, "_ZN6dd72013barEv");}
+void dd7201 ::foo(){vfunc_called(this, "_ZN6dd72013fooEv");}
+dd7201 ::~dd7201(){ note_dtor("dd7201", this);} // tgen
+dd7201 ::dd7201(){ note_ctor("dd7201", this);} // tgen
+
+static void Test_dd7201()
+{
+ extern Class_Descriptor cd_dd7201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7201, buf);
+ dd7201 *dp, &lv = *(dp=new (buf) dd7201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,8), "dd7201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,8), "dd7201");
+ check_base_class_offset(lv, (cc201*), ABISELECT(16,8), "dd7201");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7201.d");
+ test_class_info(&lv, &cd_dd7201);
+ dp->~dd7201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7201(Test_dd7201, "dd7201", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7201C1Ev();
+extern void _ZN6dd7201D1Ev();
+Name_Map name_map_dd7201[] = {
+ NSPAIR(_ZN6dd7201C1Ev),
+ NSPAIR(_ZN6dd7201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+static Base_Class bases_dd7201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7201[];
+static VTT_ENTRY vtt_dd7201[] = {
+ {&(_ZTV6dd7201[3]), 3,9},
+ {&(_ZTV6dd7201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static VTBL_ENTRY alt_thunk_names386[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7201 = { "dd7201", // class name
+ bases_dd7201, 3,
+ &(vtc_dd7201[0]), // expected_vtbl_contents
+ &(vtt_dd7201[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7201),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names386,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07201 : dd7201 {
+ int e;
+ ~ee07201(); // tgen
+ ee07201(); // tgen
+};
+//SIG(1 ee07201) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07201 ::~ee07201(){ note_dtor("ee07201", this);} // tgen
+ee07201 ::ee07201(){ note_ctor("ee07201", this);} // tgen
+
+static void Test_ee07201()
+{
+ extern Class_Descriptor cd_ee07201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07201, buf);
+ ee07201 *dp, &lv = *(dp=new (buf) ee07201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee07201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee07201");
+ check_base_class_offset(lv, (cc201*)(dd7201*), ABISELECT(16,12), "ee07201");
+ check_base_class_offset(lv, (dd7201*), 0, "ee07201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07201.e");
+ test_class_info(&lv, &cd_ee07201);
+ dp->~ee07201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07201(Test_ee07201, "ee07201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07201C1Ev();
+extern void _ZN7ee07201D1Ev();
+Name_Map name_map_ee07201[] = {
+ NSPAIR(_ZN7ee07201C1Ev),
+ NSPAIR(_ZN7ee07201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd7201;
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static Base_Class bases_ee07201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7201__7ee07201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd7201__7ee07201[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+static VTT_ENTRY vtt_ee07201[] = {
+ {&(_ZTV7ee07201[3]), 3,9},
+ {&(_tg__ZTV6dd7201__7ee07201[3]), 3,5},
+ {&(_tg__ZTV5cc201__6dd7201__7ee07201[3]), 3,4},
+ {&(_ZTV7ee07201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee07201[];
+extern VTBL_ENTRY _ZTV7ee07201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07201[];
+static VTBL_ENTRY alt_thunk_names387[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07201 = { "ee07201", // class name
+ bases_ee07201, 4,
+ &(vtc_ee07201[0]), // expected_vtbl_contents
+ &(vtt_ee07201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names387,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17201 : virtual dd7201 {
+ int e;
+ ~ee17201(); // tgen
+ ee17201(); // tgen
+};
+//SIG(1 ee17201) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17201 ::~ee17201(){ note_dtor("ee17201", this);} // tgen
+ee17201 ::ee17201(){ note_ctor("ee17201", this);} // tgen
+
+static void Test_ee17201()
+{
+ extern Class_Descriptor cd_ee17201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17201, buf);
+ ee17201 *dp, &lv = *(dp=new (buf) ee17201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee17201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee17201");
+ check_base_class_offset(lv, (cc201*)(dd7201*), ABISELECT(32,16), "ee17201");
+ check_base_class_offset(lv, (dd7201*), ABISELECT(16,8), "ee17201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17201.e");
+ test_class_info(&lv, &cd_ee17201);
+ dp->~ee17201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17201(Test_ee17201, "ee17201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17201C1Ev();
+extern void _ZN7ee17201D1Ev();
+Name_Map name_map_ee17201[] = {
+ NSPAIR(_ZN7ee17201C1Ev),
+ NSPAIR(_ZN7ee17201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd7201;
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static Base_Class bases_ee17201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7201, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17201[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7201__7ee17201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd7201__7ee17201[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+static VTT_ENTRY vtt_ee17201[] = {
+ {&(_ZTV7ee17201[4]), 4,15},
+ {&(_ZTV7ee17201[9]), 9,15},
+ {&(_ZTV7ee17201[14]), 14,15},
+ {&(_tg__ZTV6dd7201__7ee17201[3]), 3,5},
+ {&(_tg__ZTV5cc201__6dd7201__7ee17201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17201[];
+extern VTBL_ENTRY _ZTV7ee17201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17201[];
+static VTBL_ENTRY alt_thunk_names388[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17201 = { "ee17201", // class name
+ bases_ee17201, 4,
+ &(vtc_ee17201[0]), // expected_vtbl_contents
+ &(vtt_ee17201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17201),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names388,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27201 : dd7201 {
+ int e;
+ virtual void foo(); // _ZN7ee272013fooEv
+ ~ee27201(); // tgen
+ ee27201(); // tgen
+};
+//SIG(1 ee27201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27201 ::foo(){vfunc_called(this, "_ZN7ee272013fooEv");}
+ee27201 ::~ee27201(){ note_dtor("ee27201", this);} // tgen
+ee27201 ::ee27201(){ note_ctor("ee27201", this);} // tgen
+
+static void Test_ee27201()
+{
+ extern Class_Descriptor cd_ee27201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27201, buf);
+ ee27201 *dp, &lv = *(dp=new (buf) ee27201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee27201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee27201");
+ check_base_class_offset(lv, (cc201*)(dd7201*), ABISELECT(16,12), "ee27201");
+ check_base_class_offset(lv, (dd7201*), 0, "ee27201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27201.e");
+ test_class_info(&lv, &cd_ee27201);
+ dp->~ee27201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27201(Test_ee27201, "ee27201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27201C1Ev();
+extern void _ZN7ee27201D1Ev();
+Name_Map name_map_ee27201[] = {
+ NSPAIR(_ZN7ee27201C1Ev),
+ NSPAIR(_ZN7ee27201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd7201;
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static Base_Class bases_ee27201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN7ee272013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee272013fooEv,_ZTv0_n12_N7ee272013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272013fooEv,_ZThn12_N7ee272013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN7ee272013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272013fooEv,_ZTv0_n12_N7ee272013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7201__7ee27201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd7201__7ee27201[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+static VTT_ENTRY vtt_ee27201[] = {
+ {&(_ZTV7ee27201[3]), 3,9},
+ {&(_tg__ZTV6dd7201__7ee27201[3]), 3,5},
+ {&(_tg__ZTV5cc201__6dd7201__7ee27201[3]), 3,4},
+ {&(_ZTV7ee27201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee27201[];
+extern VTBL_ENTRY _ZTV7ee27201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27201[];
+static VTBL_ENTRY alt_thunk_names389[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272013fooEv,_ZTv0_n12_N7ee272013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272013fooEv,_ZThn12_N7ee272013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27201 = { "ee27201", // class name
+ bases_ee27201, 4,
+ &(vtc_ee27201[0]), // expected_vtbl_contents
+ &(vtt_ee27201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names389,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37201 : virtual dd7201 {
+ int e;
+ virtual void foo(); // _ZN7ee372013fooEv
+ ~ee37201(); // tgen
+ ee37201(); // tgen
+};
+//SIG(1 ee37201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37201 ::foo(){vfunc_called(this, "_ZN7ee372013fooEv");}
+ee37201 ::~ee37201(){ note_dtor("ee37201", this);} // tgen
+ee37201 ::ee37201(){ note_ctor("ee37201", this);} // tgen
+
+static void Test_ee37201()
+{
+ extern Class_Descriptor cd_ee37201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37201, buf);
+ ee37201 *dp, &lv = *(dp=new (buf) ee37201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee37201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee37201");
+ check_base_class_offset(lv, (cc201*)(dd7201*), ABISELECT(32,16), "ee37201");
+ check_base_class_offset(lv, (dd7201*), ABISELECT(16,8), "ee37201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37201.e");
+ test_class_info(&lv, &cd_ee37201);
+ dp->~ee37201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37201(Test_ee37201, "ee37201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37201C1Ev();
+extern void _ZN7ee37201D1Ev();
+Name_Map name_map_ee37201[] = {
+ NSPAIR(_ZN7ee37201C1Ev),
+ NSPAIR(_ZN7ee37201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd7201;
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static Base_Class bases_ee37201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37201[];
+extern void _ZN7ee372013fooEv();
+extern void _ZN6dd72013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372013fooEv,_ZTv0_n20_N7ee372013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372013fooEv,_ZThn8_N7ee372013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372013fooEv,_ZTv0_n12_N7ee372013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372013fooEv,_ZThn16_N7ee372013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37201[0]),
+ (VTBL_ENTRY)&_ZN7ee372013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372013fooEv,_ZTv0_n20_N7ee372013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372013fooEv,_ZTv0_n12_N7ee372013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7201__7ee37201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd7201__7ee37201[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+static VTT_ENTRY vtt_ee37201[] = {
+ {&(_ZTV7ee37201[4]), 4,16},
+ {&(_ZTV7ee37201[10]), 10,16},
+ {&(_ZTV7ee37201[15]), 15,16},
+ {&(_tg__ZTV6dd7201__7ee37201[3]), 3,5},
+ {&(_tg__ZTV5cc201__6dd7201__7ee37201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37201[];
+extern VTBL_ENTRY _ZTV7ee37201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37201[];
+static VTBL_ENTRY alt_thunk_names390[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372013fooEv,_ZTv0_n12_N7ee372013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372013fooEv,_ZThn16_N7ee372013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372013fooEv,_ZTv0_n20_N7ee372013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372013fooEv,_ZThn8_N7ee372013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37201 = { "ee37201", // class name
+ bases_ee37201, 4,
+ &(vtc_ee37201[0]), // expected_vtbl_contents
+ &(vtt_ee37201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37201),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names390,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47201 : dd7201 {
+ int e;
+ virtual void bar(); // _ZN7ee472013barEv
+ ~ee47201(); // tgen
+ ee47201(); // tgen
+};
+//SIG(1 ee47201) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47201 ::bar(){vfunc_called(this, "_ZN7ee472013barEv");}
+ee47201 ::~ee47201(){ note_dtor("ee47201", this);} // tgen
+ee47201 ::ee47201(){ note_ctor("ee47201", this);} // tgen
+
+static void Test_ee47201()
+{
+ extern Class_Descriptor cd_ee47201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47201, buf);
+ ee47201 *dp, &lv = *(dp=new (buf) ee47201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee47201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee47201");
+ check_base_class_offset(lv, (cc201*)(dd7201*), ABISELECT(16,12), "ee47201");
+ check_base_class_offset(lv, (dd7201*), 0, "ee47201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47201.e");
+ test_class_info(&lv, &cd_ee47201);
+ dp->~ee47201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47201(Test_ee47201, "ee47201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47201C1Ev();
+extern void _ZN7ee47201D1Ev();
+Name_Map name_map_ee47201[] = {
+ NSPAIR(_ZN7ee47201C1Ev),
+ NSPAIR(_ZN7ee47201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd7201;
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static Base_Class bases_ee47201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47201[];
+extern void _ZN7ee472013barEv();
+extern void _ZN6dd72013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47201[0]),
+ (VTBL_ENTRY)&_ZN7ee472013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7201__7ee47201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd7201__7ee47201[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+static VTT_ENTRY vtt_ee47201[] = {
+ {&(_ZTV7ee47201[3]), 3,9},
+ {&(_tg__ZTV6dd7201__7ee47201[3]), 3,5},
+ {&(_tg__ZTV5cc201__6dd7201__7ee47201[3]), 3,4},
+ {&(_ZTV7ee47201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee47201[];
+extern VTBL_ENTRY _ZTV7ee47201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47201[];
+static VTBL_ENTRY alt_thunk_names391[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47201 = { "ee47201", // class name
+ bases_ee47201, 4,
+ &(vtc_ee47201[0]), // expected_vtbl_contents
+ &(vtt_ee47201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names391,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57201 : virtual dd7201 {
+ int e;
+ virtual void bar(); // _ZN7ee572013barEv
+ ~ee57201(); // tgen
+ ee57201(); // tgen
+};
+//SIG(1 ee57201) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57201 ::bar(){vfunc_called(this, "_ZN7ee572013barEv");}
+ee57201 ::~ee57201(){ note_dtor("ee57201", this);} // tgen
+ee57201 ::ee57201(){ note_ctor("ee57201", this);} // tgen
+
+static void Test_ee57201()
+{
+ extern Class_Descriptor cd_ee57201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57201, buf);
+ ee57201 *dp, &lv = *(dp=new (buf) ee57201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee57201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee57201");
+ check_base_class_offset(lv, (cc201*)(dd7201*), ABISELECT(32,16), "ee57201");
+ check_base_class_offset(lv, (dd7201*), ABISELECT(16,8), "ee57201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57201.e");
+ test_class_info(&lv, &cd_ee57201);
+ dp->~ee57201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57201(Test_ee57201, "ee57201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57201C1Ev();
+extern void _ZN7ee57201D1Ev();
+Name_Map name_map_ee57201[] = {
+ NSPAIR(_ZN7ee57201C1Ev),
+ NSPAIR(_ZN7ee57201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd7201;
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static Base_Class bases_ee57201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7201, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57201[];
+extern void _ZN7ee572013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572013barEv,_ZTv0_n16_N7ee572013barEv)();
+extern void ABISELECT(_ZThn16_N7ee572013barEv,_ZThn8_N7ee572013barEv)() __attribute__((weak));
+extern void _ZN6dd72013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57201[0]),
+ (VTBL_ENTRY)&_ZN7ee572013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572013barEv,_ZTv0_n16_N7ee572013barEv),
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7201__7ee57201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd7201__7ee57201[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+static VTT_ENTRY vtt_ee57201[] = {
+ {&(_ZTV7ee57201[4]), 4,16},
+ {&(_ZTV7ee57201[10]), 10,16},
+ {&(_ZTV7ee57201[15]), 15,16},
+ {&(_tg__ZTV6dd7201__7ee57201[3]), 3,5},
+ {&(_tg__ZTV5cc201__6dd7201__7ee57201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57201[];
+extern VTBL_ENTRY _ZTV7ee57201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57201[];
+static VTBL_ENTRY alt_thunk_names392[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572013barEv,_ZTv0_n16_N7ee572013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572013barEv,_ZThn8_N7ee572013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57201 = { "ee57201", // class name
+ bases_ee57201, 4,
+ &(vtc_ee57201[0]), // expected_vtbl_contents
+ &(vtt_ee57201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57201),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names392,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67201 : dd7201 {
+ int e;
+ virtual void foo(); // _ZN7ee672013fooEv
+ virtual void bar(); // _ZN7ee672013barEv
+ ~ee67201(); // tgen
+ ee67201(); // tgen
+};
+//SIG(1 ee67201) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67201 ::foo(){vfunc_called(this, "_ZN7ee672013fooEv");}
+void ee67201 ::bar(){vfunc_called(this, "_ZN7ee672013barEv");}
+ee67201 ::~ee67201(){ note_dtor("ee67201", this);} // tgen
+ee67201 ::ee67201(){ note_ctor("ee67201", this);} // tgen
+
+static void Test_ee67201()
+{
+ extern Class_Descriptor cd_ee67201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67201, buf);
+ ee67201 *dp, &lv = *(dp=new (buf) ee67201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(16,12), "ee67201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(16,12), "ee67201");
+ check_base_class_offset(lv, (cc201*)(dd7201*), ABISELECT(16,12), "ee67201");
+ check_base_class_offset(lv, (dd7201*), 0, "ee67201");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67201.e");
+ test_class_info(&lv, &cd_ee67201);
+ dp->~ee67201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67201(Test_ee67201, "ee67201", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67201C1Ev();
+extern void _ZN7ee67201D1Ev();
+Name_Map name_map_ee67201[] = {
+ NSPAIR(_ZN7ee67201C1Ev),
+ NSPAIR(_ZN7ee67201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd7201;
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static Base_Class bases_ee67201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7201, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67201[];
+extern void _ZN7ee672013barEv();
+extern void _ZN7ee672013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672013fooEv,_ZTv0_n12_N7ee672013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672013fooEv,_ZThn12_N7ee672013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67201[0]),
+ (VTBL_ENTRY)&_ZN7ee672013barEv,
+ (VTBL_ENTRY)&_ZN7ee672013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672013fooEv,_ZTv0_n12_N7ee672013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7201__7ee67201[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd7201__7ee67201[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+static VTT_ENTRY vtt_ee67201[] = {
+ {&(_ZTV7ee67201[3]), 3,9},
+ {&(_tg__ZTV6dd7201__7ee67201[3]), 3,5},
+ {&(_tg__ZTV5cc201__6dd7201__7ee67201[3]), 3,4},
+ {&(_ZTV7ee67201[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee67201[];
+extern VTBL_ENTRY _ZTV7ee67201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67201[];
+static VTBL_ENTRY alt_thunk_names393[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn12_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672013fooEv,_ZTv0_n12_N7ee672013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672013fooEv,_ZThn12_N7ee672013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67201 = { "ee67201", // class name
+ bases_ee67201, 4,
+ &(vtc_ee67201[0]), // expected_vtbl_contents
+ &(vtt_ee67201[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67201),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67201),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67201),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names393,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77201 : virtual dd7201 {
+ int e;
+ virtual void foo(); // _ZN7ee772013fooEv
+ virtual void bar(); // _ZN7ee772013barEv
+ ~ee77201(); // tgen
+ ee77201(); // tgen
+};
+//SIG(1 ee77201) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77201 ::foo(){vfunc_called(this, "_ZN7ee772013fooEv");}
+void ee77201 ::bar(){vfunc_called(this, "_ZN7ee772013barEv");}
+ee77201 ::~ee77201(){ note_dtor("ee77201", this);} // tgen
+ee77201 ::ee77201(){ note_ctor("ee77201", this);} // tgen
+
+static void Test_ee77201()
+{
+ extern Class_Descriptor cd_ee77201;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77201, buf);
+ ee77201 *dp, &lv = *(dp=new (buf) ee77201());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77201)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77201)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc201*), ABISELECT(32,16), "ee77201");
+ check_base_class_offset(lv, (bb01*)(cc201*), ABISELECT(32,16), "ee77201");
+ check_base_class_offset(lv, (cc201*)(dd7201*), ABISELECT(32,16), "ee77201");
+ check_base_class_offset(lv, (dd7201*), ABISELECT(16,8), "ee77201");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77201.e");
+ test_class_info(&lv, &cd_ee77201);
+ dp->~ee77201();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77201(Test_ee77201, "ee77201", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77201C1Ev();
+extern void _ZN7ee77201D1Ev();
+Name_Map name_map_ee77201[] = {
+ NSPAIR(_ZN7ee77201C1Ev),
+ NSPAIR(_ZN7ee77201D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc201;
+extern VTBL_ENTRY _ZTI5cc201[];
+extern VTBL_ENTRY _ZTV5cc201[];
+extern Class_Descriptor cd_dd7201;
+extern VTBL_ENTRY _ZTI6dd7201[];
+extern VTBL_ENTRY _ZTV6dd7201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7201[];
+static Base_Class bases_ee77201[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc201, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7201, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77201[];
+extern void _ZN7ee772013fooEv();
+extern void _ZN7ee772013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772013barEv,_ZTv0_n16_N7ee772013barEv)();
+extern void ABISELECT(_ZThn16_N7ee772013barEv,_ZThn8_N7ee772013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772013fooEv,_ZTv0_n20_N7ee772013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772013fooEv,_ZThn8_N7ee772013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772013fooEv,_ZTv0_n12_N7ee772013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772013fooEv,_ZThn16_N7ee772013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77201[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77201[0]),
+ (VTBL_ENTRY)&_ZN7ee772013fooEv,
+ (VTBL_ENTRY)&_ZN7ee772013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772013barEv,_ZTv0_n16_N7ee772013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772013fooEv,_ZTv0_n20_N7ee772013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772013fooEv,_ZTv0_n12_N7ee772013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77201[];
+extern void _ZN6dd72013barEv();
+extern void _ZN6dd72013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7201__7ee77201[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&_ZN6dd72013barEv,
+ (VTBL_ENTRY)&_ZN6dd72013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc201__6dd7201__7ee77201[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7201[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv),
+};
+static VTT_ENTRY vtt_ee77201[] = {
+ {&(_ZTV7ee77201[4]), 4,17},
+ {&(_ZTV7ee77201[11]), 11,17},
+ {&(_ZTV7ee77201[16]), 16,17},
+ {&(_tg__ZTV6dd7201__7ee77201[3]), 3,5},
+ {&(_tg__ZTV5cc201__6dd7201__7ee77201[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77201[];
+extern VTBL_ENTRY _ZTV7ee77201[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77201[];
+static VTBL_ENTRY alt_thunk_names394[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72013fooEv,_ZTv0_n12_N6dd72013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72013fooEv,_ZThn8_N6dd72013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772013fooEv,_ZTv0_n12_N7ee772013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772013fooEv,_ZThn16_N7ee772013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772013fooEv,_ZTv0_n20_N7ee772013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772013fooEv,_ZThn8_N7ee772013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772013barEv,_ZTv0_n16_N7ee772013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772013barEv,_ZThn8_N7ee772013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77201 = { "ee77201", // class name
+ bases_ee77201, 4,
+ &(vtc_ee77201[0]), // expected_vtbl_contents
+ &(vtt_ee77201[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77201),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77201),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77201),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names394,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc301 : virtual bb01 {
+ int c;
+ virtual void foo(); // _ZN5cc3013fooEv
+ ~cc301(); // tgen
+ cc301(); // tgen
+};
+//SIG(-1 cc301) C1{ VBC2{ BC3{ v1 Fi} Fi} v1 Fi}
+
+
+void cc301 ::foo(){vfunc_called(this, "_ZN5cc3013fooEv");}
+cc301 ::~cc301(){ note_dtor("cc301", this);} // tgen
+cc301 ::cc301(){ note_ctor("cc301", this);} // tgen
+
+static void Test_cc301()
+{
+ extern Class_Descriptor cd_cc301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc301, buf);
+ cc301 *dp, &lv = *(dp=new (buf) cc301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,8), "cc301");
+ check_base_class_offset(lv, (bb01*), ABISELECT(16,8), "cc301");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc301.c");
+ test_class_info(&lv, &cd_cc301);
+ dp->~cc301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc301(Test_cc301, "cc301", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc301C1Ev();
+extern void _ZN5cc301D1Ev();
+Name_Map name_map_cc301[] = {
+ NSPAIR(_ZN5cc301C1Ev),
+ NSPAIR(_ZN5cc301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+static Base_Class bases_cc301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc301[];
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc301[];
+static VTT_ENTRY vtt_cc301[] = {
+ {&(_ZTV5cc301[3]), 3,8},
+ {&(_ZTV5cc301[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static VTBL_ENTRY alt_thunk_names395[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc301 = { "cc301", // class name
+ bases_cc301, 2,
+ &(vtc_cc301[0]), // expected_vtbl_contents
+ &(vtt_cc301[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc301),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc301),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names395,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0301 : cc301 {
+ int d;
+ ~dd0301(); // tgen
+ dd0301(); // tgen
+};
+//SIG(-1 dd0301) C1{ BC2{ VBC3{ BC4{ v1 Fi} Fi} v1 Fi} Fi}
+
+
+dd0301 ::~dd0301(){ note_dtor("dd0301", this);} // tgen
+dd0301 ::dd0301(){ note_ctor("dd0301", this);} // tgen
+
+static void Test_dd0301()
+{
+ extern Class_Descriptor cd_dd0301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0301, buf);
+ dd0301 *dp, &lv = *(dp=new (buf) dd0301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd0301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(16,12), "dd0301");
+ check_base_class_offset(lv, (cc301*), 0, "dd0301");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0301.d");
+ test_class_info(&lv, &cd_dd0301);
+ dp->~dd0301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0301(Test_dd0301, "dd0301", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0301C1Ev();
+extern void _ZN6dd0301D1Ev();
+Name_Map name_map_dd0301[] = {
+ NSPAIR(_ZN6dd0301C1Ev),
+ NSPAIR(_ZN6dd0301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static Base_Class bases_dd0301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0301[];
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd0301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__6dd0301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_dd0301[] = {
+ {&(_ZTV6dd0301[3]), 3,8},
+ {&(_tg__ZTV5cc301__6dd0301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__6dd0301[3]), 3,4},
+ {&(_ZTV6dd0301[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static VTBL_ENTRY alt_thunk_names396[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0301 = { "dd0301", // class name
+ bases_dd0301, 3,
+ &(vtc_dd0301[0]), // expected_vtbl_contents
+ &(vtt_dd0301[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0301),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0301),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names396,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00301 : dd0301 {
+ int e;
+ ~ee00301(); // tgen
+ ee00301(); // tgen
+};
+//SIG(1 ee00301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00301 ::~ee00301(){ note_dtor("ee00301", this);} // tgen
+ee00301 ::ee00301(){ note_ctor("ee00301", this);} // tgen
+
+static void Test_ee00301()
+{
+ extern Class_Descriptor cd_ee00301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00301, buf);
+ ee00301 *dp, &lv = *(dp=new (buf) ee00301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee00301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd0301*), ABISELECT(24,16), "ee00301");
+ check_base_class_offset(lv, (cc301*)(dd0301*), 0, "ee00301");
+ check_base_class_offset(lv, (dd0301*), 0, "ee00301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00301.e");
+ test_class_info(&lv, &cd_ee00301);
+ dp->~ee00301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00301(Test_ee00301, "ee00301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00301C1Ev();
+extern void _ZN7ee00301D1Ev();
+Name_Map name_map_ee00301[] = {
+ NSPAIR(_ZN7ee00301C1Ev),
+ NSPAIR(_ZN7ee00301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd0301;
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static Base_Class bases_ee00301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00301[];
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0301__7ee00301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd0301__7ee00301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd0301__7ee00301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0301__7ee00301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee00301[] = {
+ {&(_ZTV7ee00301[3]), 3,8},
+ {&(_tg__ZTV6dd0301__7ee00301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd0301__7ee00301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd0301__7ee00301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0301__7ee00301[3]), 3,4},
+ {&(_ZTV7ee00301[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee00301[];
+extern VTBL_ENTRY _ZTV7ee00301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00301[];
+static VTBL_ENTRY alt_thunk_names397[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00301 = { "ee00301", // class name
+ bases_ee00301, 4,
+ &(vtc_ee00301[0]), // expected_vtbl_contents
+ &(vtt_ee00301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00301),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names397,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10301 : virtual dd0301 {
+ int e;
+ ~ee10301(); // tgen
+ ee10301(); // tgen
+};
+//SIG(1 ee10301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10301 ::~ee10301(){ note_dtor("ee10301", this);} // tgen
+ee10301 ::ee10301(){ note_ctor("ee10301", this);} // tgen
+
+static void Test_ee10301()
+{
+ extern Class_Descriptor cd_ee10301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10301, buf);
+ ee10301 *dp, &lv = *(dp=new (buf) ee10301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee10301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd0301*), ABISELECT(32,20), "ee10301");
+ check_base_class_offset(lv, (cc301*)(dd0301*), ABISELECT(16,8), "ee10301");
+ check_base_class_offset(lv, (dd0301*), ABISELECT(16,8), "ee10301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10301.e");
+ test_class_info(&lv, &cd_ee10301);
+ dp->~ee10301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10301(Test_ee10301, "ee10301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10301C1Ev();
+extern void _ZN7ee10301D1Ev();
+Name_Map name_map_ee10301[] = {
+ NSPAIR(_ZN7ee10301C1Ev),
+ NSPAIR(_ZN7ee10301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd0301;
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static Base_Class bases_ee10301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0301, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10301[];
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10301[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0301__7ee10301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd0301__7ee10301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd0301__7ee10301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0301__7ee10301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee10301[] = {
+ {&(_ZTV7ee10301[4]), 4,13},
+ {&(_ZTV7ee10301[8]), 8,13},
+ {&(_ZTV7ee10301[12]), 12,13},
+ {&(_tg__ZTV6dd0301__7ee10301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd0301__7ee10301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd0301__7ee10301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0301__7ee10301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10301[];
+extern VTBL_ENTRY _ZTV7ee10301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10301[];
+static VTBL_ENTRY alt_thunk_names398[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10301 = { "ee10301", // class name
+ bases_ee10301, 4,
+ &(vtc_ee10301[0]), // expected_vtbl_contents
+ &(vtt_ee10301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10301),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names398,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20301 : dd0301 {
+ int e;
+ virtual void foo(); // _ZN7ee203013fooEv
+ ~ee20301(); // tgen
+ ee20301(); // tgen
+};
+//SIG(1 ee20301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20301 ::foo(){vfunc_called(this, "_ZN7ee203013fooEv");}
+ee20301 ::~ee20301(){ note_dtor("ee20301", this);} // tgen
+ee20301 ::ee20301(){ note_ctor("ee20301", this);} // tgen
+
+static void Test_ee20301()
+{
+ extern Class_Descriptor cd_ee20301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20301, buf);
+ ee20301 *dp, &lv = *(dp=new (buf) ee20301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee20301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd0301*), ABISELECT(24,16), "ee20301");
+ check_base_class_offset(lv, (cc301*)(dd0301*), 0, "ee20301");
+ check_base_class_offset(lv, (dd0301*), 0, "ee20301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20301.e");
+ test_class_info(&lv, &cd_ee20301);
+ dp->~ee20301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20301(Test_ee20301, "ee20301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20301C1Ev();
+extern void _ZN7ee20301D1Ev();
+Name_Map name_map_ee20301[] = {
+ NSPAIR(_ZN7ee20301C1Ev),
+ NSPAIR(_ZN7ee20301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd0301;
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static Base_Class bases_ee20301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20301[];
+extern void _ZN7ee203013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203013fooEv,_ZTv0_n12_N7ee203013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee203013fooEv,_ZThn16_N7ee203013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20301[0]),
+ (VTBL_ENTRY)&_ZN7ee203013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203013fooEv,_ZTv0_n12_N7ee203013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0301__7ee20301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd0301__7ee20301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd0301__7ee20301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0301__7ee20301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee20301[] = {
+ {&(_ZTV7ee20301[3]), 3,8},
+ {&(_tg__ZTV6dd0301__7ee20301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd0301__7ee20301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd0301__7ee20301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0301__7ee20301[3]), 3,4},
+ {&(_ZTV7ee20301[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee20301[];
+extern VTBL_ENTRY _ZTV7ee20301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20301[];
+static VTBL_ENTRY alt_thunk_names399[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203013fooEv,_ZTv0_n12_N7ee203013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee203013fooEv,_ZThn16_N7ee203013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20301 = { "ee20301", // class name
+ bases_ee20301, 4,
+ &(vtc_ee20301[0]), // expected_vtbl_contents
+ &(vtt_ee20301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20301),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names399,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30301 : virtual dd0301 {
+ int e;
+ virtual void foo(); // _ZN7ee303013fooEv
+ ~ee30301(); // tgen
+ ee30301(); // tgen
+};
+//SIG(1 ee30301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30301 ::foo(){vfunc_called(this, "_ZN7ee303013fooEv");}
+ee30301 ::~ee30301(){ note_dtor("ee30301", this);} // tgen
+ee30301 ::ee30301(){ note_ctor("ee30301", this);} // tgen
+
+static void Test_ee30301()
+{
+ extern Class_Descriptor cd_ee30301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30301, buf);
+ ee30301 *dp, &lv = *(dp=new (buf) ee30301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee30301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd0301*), ABISELECT(32,20), "ee30301");
+ check_base_class_offset(lv, (cc301*)(dd0301*), ABISELECT(16,8), "ee30301");
+ check_base_class_offset(lv, (dd0301*), ABISELECT(16,8), "ee30301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30301.e");
+ test_class_info(&lv, &cd_ee30301);
+ dp->~ee30301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30301(Test_ee30301, "ee30301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30301C1Ev();
+extern void _ZN7ee30301D1Ev();
+Name_Map name_map_ee30301[] = {
+ NSPAIR(_ZN7ee30301C1Ev),
+ NSPAIR(_ZN7ee30301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd0301;
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static Base_Class bases_ee30301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30301[];
+extern void _ZN7ee303013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303013fooEv,_ZTv0_n16_N7ee303013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303013fooEv,_ZThn8_N7ee303013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee303013fooEv,_ZTv0_n12_N7ee303013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee303013fooEv,_ZThn20_N7ee303013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30301[0]),
+ (VTBL_ENTRY)&_ZN7ee303013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303013fooEv,_ZTv0_n16_N7ee303013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303013fooEv,_ZTv0_n12_N7ee303013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0301__7ee30301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd0301__7ee30301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd0301__7ee30301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0301__7ee30301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee30301[] = {
+ {&(_ZTV7ee30301[4]), 4,14},
+ {&(_ZTV7ee30301[9]), 9,14},
+ {&(_ZTV7ee30301[13]), 13,14},
+ {&(_tg__ZTV6dd0301__7ee30301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd0301__7ee30301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd0301__7ee30301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0301__7ee30301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30301[];
+extern VTBL_ENTRY _ZTV7ee30301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30301[];
+static VTBL_ENTRY alt_thunk_names400[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303013fooEv,_ZTv0_n12_N7ee303013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee303013fooEv,_ZThn20_N7ee303013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303013fooEv,_ZTv0_n16_N7ee303013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303013fooEv,_ZThn8_N7ee303013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30301 = { "ee30301", // class name
+ bases_ee30301, 4,
+ &(vtc_ee30301[0]), // expected_vtbl_contents
+ &(vtt_ee30301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names400,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40301 : dd0301 {
+ int e;
+ virtual void bar(); // _ZN7ee403013barEv
+ ~ee40301(); // tgen
+ ee40301(); // tgen
+};
+//SIG(1 ee40301) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40301 ::bar(){vfunc_called(this, "_ZN7ee403013barEv");}
+ee40301 ::~ee40301(){ note_dtor("ee40301", this);} // tgen
+ee40301 ::ee40301(){ note_ctor("ee40301", this);} // tgen
+
+static void Test_ee40301()
+{
+ extern Class_Descriptor cd_ee40301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40301, buf);
+ ee40301 *dp, &lv = *(dp=new (buf) ee40301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee40301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd0301*), ABISELECT(24,16), "ee40301");
+ check_base_class_offset(lv, (cc301*)(dd0301*), 0, "ee40301");
+ check_base_class_offset(lv, (dd0301*), 0, "ee40301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40301.e");
+ test_class_info(&lv, &cd_ee40301);
+ dp->~ee40301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40301(Test_ee40301, "ee40301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40301C1Ev();
+extern void _ZN7ee40301D1Ev();
+Name_Map name_map_ee40301[] = {
+ NSPAIR(_ZN7ee40301C1Ev),
+ NSPAIR(_ZN7ee40301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd0301;
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static Base_Class bases_ee40301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN7ee403013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN7ee403013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0301__7ee40301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd0301__7ee40301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd0301__7ee40301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0301__7ee40301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee40301[] = {
+ {&(_ZTV7ee40301[3]), 3,9},
+ {&(_tg__ZTV6dd0301__7ee40301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd0301__7ee40301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd0301__7ee40301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0301__7ee40301[3]), 3,4},
+ {&(_ZTV7ee40301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee40301[];
+extern VTBL_ENTRY _ZTV7ee40301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40301[];
+static VTBL_ENTRY alt_thunk_names401[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40301 = { "ee40301", // class name
+ bases_ee40301, 4,
+ &(vtc_ee40301[0]), // expected_vtbl_contents
+ &(vtt_ee40301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names401,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50301 : virtual dd0301 {
+ int e;
+ virtual void bar(); // _ZN7ee503013barEv
+ ~ee50301(); // tgen
+ ee50301(); // tgen
+};
+//SIG(1 ee50301) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50301 ::bar(){vfunc_called(this, "_ZN7ee503013barEv");}
+ee50301 ::~ee50301(){ note_dtor("ee50301", this);} // tgen
+ee50301 ::ee50301(){ note_ctor("ee50301", this);} // tgen
+
+static void Test_ee50301()
+{
+ extern Class_Descriptor cd_ee50301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50301, buf);
+ ee50301 *dp, &lv = *(dp=new (buf) ee50301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee50301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd0301*), ABISELECT(32,20), "ee50301");
+ check_base_class_offset(lv, (cc301*)(dd0301*), ABISELECT(16,8), "ee50301");
+ check_base_class_offset(lv, (dd0301*), ABISELECT(16,8), "ee50301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50301.e");
+ test_class_info(&lv, &cd_ee50301);
+ dp->~ee50301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50301(Test_ee50301, "ee50301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50301C1Ev();
+extern void _ZN7ee50301D1Ev();
+Name_Map name_map_ee50301[] = {
+ NSPAIR(_ZN7ee50301C1Ev),
+ NSPAIR(_ZN7ee50301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd0301;
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static Base_Class bases_ee50301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50301[];
+extern void _ZN7ee503013barEv();
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50301[0]),
+ (VTBL_ENTRY)&_ZN7ee503013barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0301__7ee50301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd0301__7ee50301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd0301__7ee50301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0301__7ee50301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee50301[] = {
+ {&(_ZTV7ee50301[4]), 4,14},
+ {&(_ZTV7ee50301[9]), 9,14},
+ {&(_ZTV7ee50301[13]), 13,14},
+ {&(_tg__ZTV6dd0301__7ee50301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd0301__7ee50301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd0301__7ee50301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0301__7ee50301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50301[];
+extern VTBL_ENTRY _ZTV7ee50301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50301[];
+static VTBL_ENTRY alt_thunk_names402[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50301 = { "ee50301", // class name
+ bases_ee50301, 4,
+ &(vtc_ee50301[0]), // expected_vtbl_contents
+ &(vtt_ee50301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names402,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60301 : dd0301 {
+ int e;
+ virtual void foo(); // _ZN7ee603013fooEv
+ virtual void bar(); // _ZN7ee603013barEv
+ ~ee60301(); // tgen
+ ee60301(); // tgen
+};
+//SIG(1 ee60301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60301 ::foo(){vfunc_called(this, "_ZN7ee603013fooEv");}
+void ee60301 ::bar(){vfunc_called(this, "_ZN7ee603013barEv");}
+ee60301 ::~ee60301(){ note_dtor("ee60301", this);} // tgen
+ee60301 ::ee60301(){ note_ctor("ee60301", this);} // tgen
+
+static void Test_ee60301()
+{
+ extern Class_Descriptor cd_ee60301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60301, buf);
+ ee60301 *dp, &lv = *(dp=new (buf) ee60301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee60301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd0301*), ABISELECT(24,16), "ee60301");
+ check_base_class_offset(lv, (cc301*)(dd0301*), 0, "ee60301");
+ check_base_class_offset(lv, (dd0301*), 0, "ee60301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60301.e");
+ test_class_info(&lv, &cd_ee60301);
+ dp->~ee60301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60301(Test_ee60301, "ee60301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60301C1Ev();
+extern void _ZN7ee60301D1Ev();
+Name_Map name_map_ee60301[] = {
+ NSPAIR(_ZN7ee60301C1Ev),
+ NSPAIR(_ZN7ee60301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd0301;
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static Base_Class bases_ee60301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60301[];
+extern void _ZN7ee603013fooEv();
+extern void _ZN7ee603013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee603013fooEv,_ZTv0_n12_N7ee603013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee603013fooEv,_ZThn16_N7ee603013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60301[0]),
+ (VTBL_ENTRY)&_ZN7ee603013fooEv,
+ (VTBL_ENTRY)&_ZN7ee603013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603013fooEv,_ZTv0_n12_N7ee603013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0301__7ee60301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd0301__7ee60301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd0301__7ee60301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0301__7ee60301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee60301[] = {
+ {&(_ZTV7ee60301[3]), 3,9},
+ {&(_tg__ZTV6dd0301__7ee60301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd0301__7ee60301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd0301__7ee60301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0301__7ee60301[3]), 3,4},
+ {&(_ZTV7ee60301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60301[];
+extern VTBL_ENTRY _ZTV7ee60301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60301[];
+static VTBL_ENTRY alt_thunk_names403[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603013fooEv,_ZTv0_n12_N7ee603013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603013fooEv,_ZThn16_N7ee603013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60301 = { "ee60301", // class name
+ bases_ee60301, 4,
+ &(vtc_ee60301[0]), // expected_vtbl_contents
+ &(vtt_ee60301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names403,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70301 : virtual dd0301 {
+ int e;
+ virtual void foo(); // _ZN7ee703013fooEv
+ virtual void bar(); // _ZN7ee703013barEv
+ ~ee70301(); // tgen
+ ee70301(); // tgen
+};
+//SIG(1 ee70301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70301 ::foo(){vfunc_called(this, "_ZN7ee703013fooEv");}
+void ee70301 ::bar(){vfunc_called(this, "_ZN7ee703013barEv");}
+ee70301 ::~ee70301(){ note_dtor("ee70301", this);} // tgen
+ee70301 ::ee70301(){ note_ctor("ee70301", this);} // tgen
+
+static void Test_ee70301()
+{
+ extern Class_Descriptor cd_ee70301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70301, buf);
+ ee70301 *dp, &lv = *(dp=new (buf) ee70301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee70301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd0301*), ABISELECT(32,20), "ee70301");
+ check_base_class_offset(lv, (cc301*)(dd0301*), ABISELECT(16,8), "ee70301");
+ check_base_class_offset(lv, (dd0301*), ABISELECT(16,8), "ee70301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70301.e");
+ test_class_info(&lv, &cd_ee70301);
+ dp->~ee70301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70301(Test_ee70301, "ee70301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70301C1Ev();
+extern void _ZN7ee70301D1Ev();
+Name_Map name_map_ee70301[] = {
+ NSPAIR(_ZN7ee70301C1Ev),
+ NSPAIR(_ZN7ee70301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd0301;
+extern VTBL_ENTRY _ZTI6dd0301[];
+extern VTBL_ENTRY _ZTV6dd0301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0301[];
+static Base_Class bases_ee70301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70301[];
+extern void _ZN7ee703013fooEv();
+extern void _ZN7ee703013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703013fooEv,_ZTv0_n16_N7ee703013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703013fooEv,_ZThn8_N7ee703013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703013fooEv,_ZTv0_n12_N7ee703013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee703013fooEv,_ZThn20_N7ee703013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70301[0]),
+ (VTBL_ENTRY)&_ZN7ee703013fooEv,
+ (VTBL_ENTRY)&_ZN7ee703013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703013fooEv,_ZTv0_n16_N7ee703013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703013fooEv,_ZTv0_n12_N7ee703013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0301__7ee70301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd0301__7ee70301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd0301__7ee70301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0301__7ee70301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee70301[] = {
+ {&(_ZTV7ee70301[4]), 4,15},
+ {&(_ZTV7ee70301[10]), 10,15},
+ {&(_ZTV7ee70301[14]), 14,15},
+ {&(_tg__ZTV6dd0301__7ee70301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd0301__7ee70301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd0301__7ee70301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0301__7ee70301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70301[];
+extern VTBL_ENTRY _ZTV7ee70301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70301[];
+static VTBL_ENTRY alt_thunk_names404[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703013fooEv,_ZTv0_n12_N7ee703013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703013fooEv,_ZThn20_N7ee703013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703013fooEv,_ZTv0_n16_N7ee703013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703013fooEv,_ZThn8_N7ee703013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70301 = { "ee70301", // class name
+ bases_ee70301, 4,
+ &(vtc_ee70301[0]), // expected_vtbl_contents
+ &(vtt_ee70301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names404,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1301 : virtual cc301 {
+ int d;
+ ~dd1301(); // tgen
+ dd1301(); // tgen
+};
+//SIG(-1 dd1301) C1{ VBC2{ VBC3{ BC4{ v1 Fi} Fi} v1 Fi} Fi}
+
+
+dd1301 ::~dd1301(){ note_dtor("dd1301", this);} // tgen
+dd1301 ::dd1301(){ note_ctor("dd1301", this);} // tgen
+
+static void Test_dd1301()
+{
+ extern Class_Descriptor cd_dd1301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1301, buf);
+ dd1301 *dp, &lv = *(dp=new (buf) dd1301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd1301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,16), "dd1301");
+ check_base_class_offset(lv, (cc301*), ABISELECT(16,8), "dd1301");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1301.d");
+ test_class_info(&lv, &cd_dd1301);
+ dp->~dd1301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1301(Test_dd1301, "dd1301", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1301C1Ev();
+extern void _ZN6dd1301D1Ev();
+Name_Map name_map_dd1301[] = {
+ NSPAIR(_ZN6dd1301C1Ev),
+ NSPAIR(_ZN6dd1301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static Base_Class bases_dd1301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__6dd1301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_dd1301[] = {
+ {&(_ZTV6dd1301[4]), 4,13},
+ {&(_ZTV6dd1301[8]), 8,13},
+ {&(_ZTV6dd1301[12]), 12,13},
+ {&(_tg__ZTV5cc301__6dd1301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__6dd1301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static VTBL_ENTRY alt_thunk_names405[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1301 = { "dd1301", // class name
+ bases_dd1301, 3,
+ &(vtc_dd1301[0]), // expected_vtbl_contents
+ &(vtt_dd1301[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1301),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1301),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names405,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01301 : dd1301 {
+ int e;
+ ~ee01301(); // tgen
+ ee01301(); // tgen
+};
+//SIG(1 ee01301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01301 ::~ee01301(){ note_dtor("ee01301", this);} // tgen
+ee01301 ::ee01301(){ note_ctor("ee01301", this);} // tgen
+
+static void Test_ee01301()
+{
+ extern Class_Descriptor cd_ee01301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01301, buf);
+ ee01301 *dp, &lv = *(dp=new (buf) ee01301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee01301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee01301");
+ check_base_class_offset(lv, (cc301*)(dd1301*), ABISELECT(16,12), "ee01301");
+ check_base_class_offset(lv, (dd1301*), 0, "ee01301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01301.e");
+ test_class_info(&lv, &cd_ee01301);
+ dp->~ee01301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01301(Test_ee01301, "ee01301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01301C1Ev();
+extern void _ZN7ee01301D1Ev();
+Name_Map name_map_ee01301[] = {
+ NSPAIR(_ZN7ee01301C1Ev),
+ NSPAIR(_ZN7ee01301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd1301;
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static Base_Class bases_ee01301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01301[];
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01301[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01301[];
+static VTBL_ENTRY _tg__ZTV6dd1301__7ee01301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301__7ee01301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1301__7ee01301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee01301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee01301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee01301[] = {
+ {&(_ZTV7ee01301[4]), 4,13},
+ {&(_tg__ZTV6dd1301__7ee01301[4]), 4,4},
+ {&(_tg__ZTV5cc301__6dd1301__7ee01301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1301__7ee01301[3]), 3,4},
+ {&(_ZTV7ee01301[8]), 8,13},
+ {&(_ZTV7ee01301[12]), 12,13},
+ {&(_tg__ZTV5cc301__7ee01301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee01301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01301[];
+extern VTBL_ENTRY _ZTV7ee01301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01301[];
+static VTBL_ENTRY alt_thunk_names406[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01301 = { "ee01301", // class name
+ bases_ee01301, 4,
+ &(vtc_ee01301[0]), // expected_vtbl_contents
+ &(vtt_ee01301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01301),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names406,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11301 : virtual dd1301 {
+ int e;
+ ~ee11301(); // tgen
+ ee11301(); // tgen
+};
+//SIG(1 ee11301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11301 ::~ee11301(){ note_dtor("ee11301", this);} // tgen
+ee11301 ::ee11301(){ note_ctor("ee11301", this);} // tgen
+
+static void Test_ee11301()
+{
+ extern Class_Descriptor cd_ee11301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11301, buf);
+ ee11301 *dp, &lv = *(dp=new (buf) ee11301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee11301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee11301");
+ check_base_class_offset(lv, (cc301*)(dd1301*), ABISELECT(32,16), "ee11301");
+ check_base_class_offset(lv, (dd1301*), ABISELECT(16,8), "ee11301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11301.e");
+ test_class_info(&lv, &cd_ee11301);
+ dp->~ee11301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11301(Test_ee11301, "ee11301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11301C1Ev();
+extern void _ZN7ee11301D1Ev();
+Name_Map name_map_ee11301[] = {
+ NSPAIR(_ZN7ee11301C1Ev),
+ NSPAIR(_ZN7ee11301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd1301;
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static Base_Class bases_ee11301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11301[];
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11301[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11301[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11301[];
+static VTBL_ENTRY _tg__ZTV6dd1301__7ee11301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301__7ee11301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1301__7ee11301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee11301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee11301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee11301[] = {
+ {&(_ZTV7ee11301[5]), 5,18},
+ {&(_ZTV7ee11301[9]), 9,18},
+ {&(_ZTV7ee11301[13]), 13,18},
+ {&(_ZTV7ee11301[17]), 17,18},
+ {&(_tg__ZTV6dd1301__7ee11301[4]), 4,4},
+ {&(_tg__ZTV5cc301__6dd1301__7ee11301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1301__7ee11301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee11301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee11301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11301[];
+extern VTBL_ENTRY _ZTV7ee11301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11301[];
+static VTBL_ENTRY alt_thunk_names407[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11301 = { "ee11301", // class name
+ bases_ee11301, 4,
+ &(vtc_ee11301[0]), // expected_vtbl_contents
+ &(vtt_ee11301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11301),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names407,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21301 : dd1301 {
+ int e;
+ virtual void foo(); // _ZN7ee213013fooEv
+ ~ee21301(); // tgen
+ ee21301(); // tgen
+};
+//SIG(1 ee21301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21301 ::foo(){vfunc_called(this, "_ZN7ee213013fooEv");}
+ee21301 ::~ee21301(){ note_dtor("ee21301", this);} // tgen
+ee21301 ::ee21301(){ note_ctor("ee21301", this);} // tgen
+
+static void Test_ee21301()
+{
+ extern Class_Descriptor cd_ee21301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21301, buf);
+ ee21301 *dp, &lv = *(dp=new (buf) ee21301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee21301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee21301");
+ check_base_class_offset(lv, (cc301*)(dd1301*), ABISELECT(16,12), "ee21301");
+ check_base_class_offset(lv, (dd1301*), 0, "ee21301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21301.e");
+ test_class_info(&lv, &cd_ee21301);
+ dp->~ee21301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21301(Test_ee21301, "ee21301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21301C1Ev();
+extern void _ZN7ee21301D1Ev();
+Name_Map name_map_ee21301[] = {
+ NSPAIR(_ZN7ee21301C1Ev),
+ NSPAIR(_ZN7ee21301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd1301;
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static Base_Class bases_ee21301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21301[];
+extern void _ZN7ee213013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213013fooEv,_ZTv0_n16_N7ee213013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213013fooEv,_ZThn12_N7ee213013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee213013fooEv,_ZTv0_n12_N7ee213013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee213013fooEv,_ZThn20_N7ee213013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21301[0]),
+ (VTBL_ENTRY)&_ZN7ee213013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213013fooEv,_ZTv0_n16_N7ee213013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213013fooEv,_ZTv0_n12_N7ee213013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21301[];
+static VTBL_ENTRY _tg__ZTV6dd1301__7ee21301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301__7ee21301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1301__7ee21301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee21301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee21301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee21301[] = {
+ {&(_ZTV7ee21301[4]), 4,14},
+ {&(_tg__ZTV6dd1301__7ee21301[4]), 4,4},
+ {&(_tg__ZTV5cc301__6dd1301__7ee21301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1301__7ee21301[3]), 3,4},
+ {&(_ZTV7ee21301[9]), 9,14},
+ {&(_ZTV7ee21301[13]), 13,14},
+ {&(_tg__ZTV5cc301__7ee21301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee21301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21301[];
+extern VTBL_ENTRY _ZTV7ee21301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21301[];
+static VTBL_ENTRY alt_thunk_names408[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213013fooEv,_ZTv0_n12_N7ee213013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee213013fooEv,_ZThn20_N7ee213013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213013fooEv,_ZTv0_n16_N7ee213013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213013fooEv,_ZThn12_N7ee213013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21301 = { "ee21301", // class name
+ bases_ee21301, 4,
+ &(vtc_ee21301[0]), // expected_vtbl_contents
+ &(vtt_ee21301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names408,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31301 : virtual dd1301 {
+ int e;
+ virtual void foo(); // _ZN7ee313013fooEv
+ ~ee31301(); // tgen
+ ee31301(); // tgen
+};
+//SIG(1 ee31301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31301 ::foo(){vfunc_called(this, "_ZN7ee313013fooEv");}
+ee31301 ::~ee31301(){ note_dtor("ee31301", this);} // tgen
+ee31301 ::ee31301(){ note_ctor("ee31301", this);} // tgen
+
+static void Test_ee31301()
+{
+ extern Class_Descriptor cd_ee31301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31301, buf);
+ ee31301 *dp, &lv = *(dp=new (buf) ee31301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee31301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee31301");
+ check_base_class_offset(lv, (cc301*)(dd1301*), ABISELECT(32,16), "ee31301");
+ check_base_class_offset(lv, (dd1301*), ABISELECT(16,8), "ee31301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31301.e");
+ test_class_info(&lv, &cd_ee31301);
+ dp->~ee31301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31301(Test_ee31301, "ee31301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31301C1Ev();
+extern void _ZN7ee31301D1Ev();
+Name_Map name_map_ee31301[] = {
+ NSPAIR(_ZN7ee31301C1Ev),
+ NSPAIR(_ZN7ee31301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd1301;
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static Base_Class bases_ee31301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31301[];
+extern void _ZN7ee313013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313013fooEv,_ZTv0_n16_N7ee313013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313013fooEv,_ZThn16_N7ee313013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee313013fooEv,_ZTv0_n12_N7ee313013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee313013fooEv,_ZThn24_N7ee313013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31301[0]),
+ (VTBL_ENTRY)&_ZN7ee313013fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31301[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313013fooEv,_ZTv0_n16_N7ee313013fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313013fooEv,_ZTv0_n12_N7ee313013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31301[];
+static VTBL_ENTRY _tg__ZTV6dd1301__7ee31301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301__7ee31301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1301__7ee31301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee31301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee31301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee31301[] = {
+ {&(_ZTV7ee31301[5]), 5,19},
+ {&(_ZTV7ee31301[10]), 10,19},
+ {&(_ZTV7ee31301[14]), 14,19},
+ {&(_ZTV7ee31301[18]), 18,19},
+ {&(_tg__ZTV6dd1301__7ee31301[4]), 4,4},
+ {&(_tg__ZTV5cc301__6dd1301__7ee31301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1301__7ee31301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee31301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee31301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31301[];
+extern VTBL_ENTRY _ZTV7ee31301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31301[];
+static VTBL_ENTRY alt_thunk_names409[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313013fooEv,_ZTv0_n12_N7ee313013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee313013fooEv,_ZThn24_N7ee313013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313013fooEv,_ZTv0_n16_N7ee313013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313013fooEv,_ZThn16_N7ee313013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31301 = { "ee31301", // class name
+ bases_ee31301, 4,
+ &(vtc_ee31301[0]), // expected_vtbl_contents
+ &(vtt_ee31301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31301),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names409,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41301 : dd1301 {
+ int e;
+ virtual void bar(); // _ZN7ee413013barEv
+ ~ee41301(); // tgen
+ ee41301(); // tgen
+};
+//SIG(1 ee41301) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41301 ::bar(){vfunc_called(this, "_ZN7ee413013barEv");}
+ee41301 ::~ee41301(){ note_dtor("ee41301", this);} // tgen
+ee41301 ::ee41301(){ note_ctor("ee41301", this);} // tgen
+
+static void Test_ee41301()
+{
+ extern Class_Descriptor cd_ee41301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41301, buf);
+ ee41301 *dp, &lv = *(dp=new (buf) ee41301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee41301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee41301");
+ check_base_class_offset(lv, (cc301*)(dd1301*), ABISELECT(16,12), "ee41301");
+ check_base_class_offset(lv, (dd1301*), 0, "ee41301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41301.e");
+ test_class_info(&lv, &cd_ee41301);
+ dp->~ee41301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41301(Test_ee41301, "ee41301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41301C1Ev();
+extern void _ZN7ee41301D1Ev();
+Name_Map name_map_ee41301[] = {
+ NSPAIR(_ZN7ee41301C1Ev),
+ NSPAIR(_ZN7ee41301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd1301;
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static Base_Class bases_ee41301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41301[];
+extern void _ZN7ee413013barEv();
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41301[0]),
+ (VTBL_ENTRY)&_ZN7ee413013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41301[];
+static VTBL_ENTRY _tg__ZTV6dd1301__7ee41301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301__7ee41301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1301__7ee41301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee41301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee41301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee41301[] = {
+ {&(_ZTV7ee41301[4]), 4,14},
+ {&(_tg__ZTV6dd1301__7ee41301[4]), 4,4},
+ {&(_tg__ZTV5cc301__6dd1301__7ee41301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1301__7ee41301[3]), 3,4},
+ {&(_ZTV7ee41301[9]), 9,14},
+ {&(_ZTV7ee41301[13]), 13,14},
+ {&(_tg__ZTV5cc301__7ee41301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee41301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41301[];
+extern VTBL_ENTRY _ZTV7ee41301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41301[];
+static VTBL_ENTRY alt_thunk_names410[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41301 = { "ee41301", // class name
+ bases_ee41301, 4,
+ &(vtc_ee41301[0]), // expected_vtbl_contents
+ &(vtt_ee41301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names410,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51301 : virtual dd1301 {
+ int e;
+ virtual void bar(); // _ZN7ee513013barEv
+ ~ee51301(); // tgen
+ ee51301(); // tgen
+};
+//SIG(1 ee51301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51301 ::bar(){vfunc_called(this, "_ZN7ee513013barEv");}
+ee51301 ::~ee51301(){ note_dtor("ee51301", this);} // tgen
+ee51301 ::ee51301(){ note_ctor("ee51301", this);} // tgen
+
+static void Test_ee51301()
+{
+ extern Class_Descriptor cd_ee51301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51301, buf);
+ ee51301 *dp, &lv = *(dp=new (buf) ee51301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee51301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee51301");
+ check_base_class_offset(lv, (cc301*)(dd1301*), ABISELECT(32,16), "ee51301");
+ check_base_class_offset(lv, (dd1301*), ABISELECT(16,8), "ee51301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51301.e");
+ test_class_info(&lv, &cd_ee51301);
+ dp->~ee51301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51301(Test_ee51301, "ee51301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51301C1Ev();
+extern void _ZN7ee51301D1Ev();
+Name_Map name_map_ee51301[] = {
+ NSPAIR(_ZN7ee51301C1Ev),
+ NSPAIR(_ZN7ee51301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd1301;
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static Base_Class bases_ee51301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51301[];
+extern void _ZN7ee513013barEv();
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51301[0]),
+ (VTBL_ENTRY)&_ZN7ee513013barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51301[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51301[];
+static VTBL_ENTRY _tg__ZTV6dd1301__7ee51301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301__7ee51301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1301__7ee51301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee51301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee51301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee51301[] = {
+ {&(_ZTV7ee51301[5]), 5,19},
+ {&(_ZTV7ee51301[10]), 10,19},
+ {&(_ZTV7ee51301[14]), 14,19},
+ {&(_ZTV7ee51301[18]), 18,19},
+ {&(_tg__ZTV6dd1301__7ee51301[4]), 4,4},
+ {&(_tg__ZTV5cc301__6dd1301__7ee51301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1301__7ee51301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee51301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee51301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51301[];
+extern VTBL_ENTRY _ZTV7ee51301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51301[];
+static VTBL_ENTRY alt_thunk_names411[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51301 = { "ee51301", // class name
+ bases_ee51301, 4,
+ &(vtc_ee51301[0]), // expected_vtbl_contents
+ &(vtt_ee51301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51301),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names411,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61301 : dd1301 {
+ int e;
+ virtual void foo(); // _ZN7ee613013fooEv
+ virtual void bar(); // _ZN7ee613013barEv
+ ~ee61301(); // tgen
+ ee61301(); // tgen
+};
+//SIG(1 ee61301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61301 ::foo(){vfunc_called(this, "_ZN7ee613013fooEv");}
+void ee61301 ::bar(){vfunc_called(this, "_ZN7ee613013barEv");}
+ee61301 ::~ee61301(){ note_dtor("ee61301", this);} // tgen
+ee61301 ::ee61301(){ note_ctor("ee61301", this);} // tgen
+
+static void Test_ee61301()
+{
+ extern Class_Descriptor cd_ee61301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61301, buf);
+ ee61301 *dp, &lv = *(dp=new (buf) ee61301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee61301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee61301");
+ check_base_class_offset(lv, (cc301*)(dd1301*), ABISELECT(16,12), "ee61301");
+ check_base_class_offset(lv, (dd1301*), 0, "ee61301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61301.e");
+ test_class_info(&lv, &cd_ee61301);
+ dp->~ee61301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61301(Test_ee61301, "ee61301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61301C1Ev();
+extern void _ZN7ee61301D1Ev();
+Name_Map name_map_ee61301[] = {
+ NSPAIR(_ZN7ee61301C1Ev),
+ NSPAIR(_ZN7ee61301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd1301;
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static Base_Class bases_ee61301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61301[];
+extern void _ZN7ee613013fooEv();
+extern void _ZN7ee613013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613013fooEv,_ZTv0_n16_N7ee613013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613013fooEv,_ZThn12_N7ee613013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613013fooEv,_ZTv0_n12_N7ee613013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee613013fooEv,_ZThn20_N7ee613013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61301[0]),
+ (VTBL_ENTRY)&_ZN7ee613013fooEv,
+ (VTBL_ENTRY)&_ZN7ee613013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613013fooEv,_ZTv0_n16_N7ee613013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613013fooEv,_ZTv0_n12_N7ee613013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61301[];
+static VTBL_ENTRY _tg__ZTV6dd1301__7ee61301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301__7ee61301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1301__7ee61301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee61301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee61301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee61301[] = {
+ {&(_ZTV7ee61301[4]), 4,15},
+ {&(_tg__ZTV6dd1301__7ee61301[4]), 4,4},
+ {&(_tg__ZTV5cc301__6dd1301__7ee61301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1301__7ee61301[3]), 3,4},
+ {&(_ZTV7ee61301[10]), 10,15},
+ {&(_ZTV7ee61301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee61301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee61301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61301[];
+extern VTBL_ENTRY _ZTV7ee61301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61301[];
+static VTBL_ENTRY alt_thunk_names412[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613013fooEv,_ZTv0_n12_N7ee613013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613013fooEv,_ZThn20_N7ee613013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613013fooEv,_ZTv0_n16_N7ee613013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613013fooEv,_ZThn12_N7ee613013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61301 = { "ee61301", // class name
+ bases_ee61301, 4,
+ &(vtc_ee61301[0]), // expected_vtbl_contents
+ &(vtt_ee61301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names412,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71301 : virtual dd1301 {
+ int e;
+ virtual void foo(); // _ZN7ee713013fooEv
+ virtual void bar(); // _ZN7ee713013barEv
+ ~ee71301(); // tgen
+ ee71301(); // tgen
+};
+//SIG(1 ee71301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71301 ::foo(){vfunc_called(this, "_ZN7ee713013fooEv");}
+void ee71301 ::bar(){vfunc_called(this, "_ZN7ee713013barEv");}
+ee71301 ::~ee71301(){ note_dtor("ee71301", this);} // tgen
+ee71301 ::ee71301(){ note_ctor("ee71301", this);} // tgen
+
+static void Test_ee71301()
+{
+ extern Class_Descriptor cd_ee71301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71301, buf);
+ ee71301 *dp, &lv = *(dp=new (buf) ee71301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee71301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee71301");
+ check_base_class_offset(lv, (cc301*)(dd1301*), ABISELECT(32,16), "ee71301");
+ check_base_class_offset(lv, (dd1301*), ABISELECT(16,8), "ee71301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71301.e");
+ test_class_info(&lv, &cd_ee71301);
+ dp->~ee71301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71301(Test_ee71301, "ee71301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71301C1Ev();
+extern void _ZN7ee71301D1Ev();
+Name_Map name_map_ee71301[] = {
+ NSPAIR(_ZN7ee71301C1Ev),
+ NSPAIR(_ZN7ee71301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd1301;
+extern VTBL_ENTRY _ZTI6dd1301[];
+extern VTBL_ENTRY _ZTV6dd1301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1301[];
+static Base_Class bases_ee71301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1301, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71301[];
+extern void _ZN7ee713013fooEv();
+extern void _ZN7ee713013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713013fooEv,_ZTv0_n16_N7ee713013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713013fooEv,_ZThn16_N7ee713013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713013fooEv,_ZTv0_n12_N7ee713013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee713013fooEv,_ZThn24_N7ee713013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71301[0]),
+ (VTBL_ENTRY)&_ZN7ee713013fooEv,
+ (VTBL_ENTRY)&_ZN7ee713013barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71301[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713013fooEv,_ZTv0_n16_N7ee713013fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713013fooEv,_ZTv0_n12_N7ee713013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71301[];
+static VTBL_ENTRY _tg__ZTV6dd1301__7ee71301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd1301__7ee71301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1301__7ee71301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee71301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee71301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee71301[] = {
+ {&(_ZTV7ee71301[5]), 5,20},
+ {&(_ZTV7ee71301[11]), 11,20},
+ {&(_ZTV7ee71301[15]), 15,20},
+ {&(_ZTV7ee71301[19]), 19,20},
+ {&(_tg__ZTV6dd1301__7ee71301[4]), 4,4},
+ {&(_tg__ZTV5cc301__6dd1301__7ee71301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1301__7ee71301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee71301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee71301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71301[];
+extern VTBL_ENTRY _ZTV7ee71301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71301[];
+static VTBL_ENTRY alt_thunk_names413[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713013fooEv,_ZTv0_n12_N7ee713013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713013fooEv,_ZThn24_N7ee713013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713013fooEv,_ZTv0_n16_N7ee713013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713013fooEv,_ZThn16_N7ee713013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71301 = { "ee71301", // class name
+ bases_ee71301, 4,
+ &(vtc_ee71301[0]), // expected_vtbl_contents
+ &(vtt_ee71301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71301),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names413,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2301 : cc301 {
+ int d;
+ virtual void foo(); // _ZN6dd23013fooEv
+ ~dd2301(); // tgen
+ dd2301(); // tgen
+};
+//SIG(-1 dd2301) C1{ BC2{ VBC3{ BC4{ v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd2301 ::foo(){vfunc_called(this, "_ZN6dd23013fooEv");}
+dd2301 ::~dd2301(){ note_dtor("dd2301", this);} // tgen
+dd2301 ::dd2301(){ note_ctor("dd2301", this);} // tgen
+
+static void Test_dd2301()
+{
+ extern Class_Descriptor cd_dd2301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2301, buf);
+ dd2301 *dp, &lv = *(dp=new (buf) dd2301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd2301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(16,12), "dd2301");
+ check_base_class_offset(lv, (cc301*), 0, "dd2301");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2301.d");
+ test_class_info(&lv, &cd_dd2301);
+ dp->~dd2301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2301(Test_dd2301, "dd2301", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2301C1Ev();
+extern void _ZN6dd2301D1Ev();
+Name_Map name_map_dd2301[] = {
+ NSPAIR(_ZN6dd2301C1Ev),
+ NSPAIR(_ZN6dd2301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static Base_Class bases_dd2301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2301[];
+extern void _ZN6dd23013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd2301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__6dd2301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_dd2301[] = {
+ {&(_ZTV6dd2301[3]), 3,8},
+ {&(_tg__ZTV5cc301__6dd2301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__6dd2301[3]), 3,4},
+ {&(_ZTV6dd2301[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static VTBL_ENTRY alt_thunk_names414[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2301 = { "dd2301", // class name
+ bases_dd2301, 3,
+ &(vtc_dd2301[0]), // expected_vtbl_contents
+ &(vtt_dd2301[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2301),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2301),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names414,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02301 : dd2301 {
+ int e;
+ ~ee02301(); // tgen
+ ee02301(); // tgen
+};
+//SIG(1 ee02301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02301 ::~ee02301(){ note_dtor("ee02301", this);} // tgen
+ee02301 ::ee02301(){ note_ctor("ee02301", this);} // tgen
+
+static void Test_ee02301()
+{
+ extern Class_Descriptor cd_ee02301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02301, buf);
+ ee02301 *dp, &lv = *(dp=new (buf) ee02301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee02301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd2301*), ABISELECT(24,16), "ee02301");
+ check_base_class_offset(lv, (cc301*)(dd2301*), 0, "ee02301");
+ check_base_class_offset(lv, (dd2301*), 0, "ee02301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02301.e");
+ test_class_info(&lv, &cd_ee02301);
+ dp->~ee02301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02301(Test_ee02301, "ee02301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02301C1Ev();
+extern void _ZN7ee02301D1Ev();
+Name_Map name_map_ee02301[] = {
+ NSPAIR(_ZN7ee02301C1Ev),
+ NSPAIR(_ZN7ee02301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd2301;
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static Base_Class bases_ee02301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02301[];
+extern void _ZN6dd23013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02301[];
+extern void _ZN6dd23013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2301__7ee02301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd2301__7ee02301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd2301__7ee02301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2301__7ee02301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+static VTT_ENTRY vtt_ee02301[] = {
+ {&(_ZTV7ee02301[3]), 3,8},
+ {&(_tg__ZTV6dd2301__7ee02301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd2301__7ee02301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd2301__7ee02301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2301__7ee02301[3]), 3,4},
+ {&(_ZTV7ee02301[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee02301[];
+extern VTBL_ENTRY _ZTV7ee02301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02301[];
+static VTBL_ENTRY alt_thunk_names415[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02301 = { "ee02301", // class name
+ bases_ee02301, 4,
+ &(vtc_ee02301[0]), // expected_vtbl_contents
+ &(vtt_ee02301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02301),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names415,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12301 : virtual dd2301 {
+ int e;
+ ~ee12301(); // tgen
+ ee12301(); // tgen
+};
+//SIG(1 ee12301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12301 ::~ee12301(){ note_dtor("ee12301", this);} // tgen
+ee12301 ::ee12301(){ note_ctor("ee12301", this);} // tgen
+
+static void Test_ee12301()
+{
+ extern Class_Descriptor cd_ee12301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12301, buf);
+ ee12301 *dp, &lv = *(dp=new (buf) ee12301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee12301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd2301*), ABISELECT(32,20), "ee12301");
+ check_base_class_offset(lv, (cc301*)(dd2301*), ABISELECT(16,8), "ee12301");
+ check_base_class_offset(lv, (dd2301*), ABISELECT(16,8), "ee12301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12301.e");
+ test_class_info(&lv, &cd_ee12301);
+ dp->~ee12301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12301(Test_ee12301, "ee12301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12301C1Ev();
+extern void _ZN7ee12301D1Ev();
+Name_Map name_map_ee12301[] = {
+ NSPAIR(_ZN7ee12301C1Ev),
+ NSPAIR(_ZN7ee12301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd2301;
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static Base_Class bases_ee12301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2301, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12301[];
+extern void _ZN6dd23013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12301[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12301[];
+extern void _ZN6dd23013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2301__7ee12301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd2301__7ee12301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd2301__7ee12301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2301__7ee12301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+static VTT_ENTRY vtt_ee12301[] = {
+ {&(_ZTV7ee12301[4]), 4,13},
+ {&(_ZTV7ee12301[8]), 8,13},
+ {&(_ZTV7ee12301[12]), 12,13},
+ {&(_tg__ZTV6dd2301__7ee12301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd2301__7ee12301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd2301__7ee12301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2301__7ee12301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12301[];
+extern VTBL_ENTRY _ZTV7ee12301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12301[];
+static VTBL_ENTRY alt_thunk_names416[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12301 = { "ee12301", // class name
+ bases_ee12301, 4,
+ &(vtc_ee12301[0]), // expected_vtbl_contents
+ &(vtt_ee12301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12301),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names416,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22301 : dd2301 {
+ int e;
+ virtual void foo(); // _ZN7ee223013fooEv
+ ~ee22301(); // tgen
+ ee22301(); // tgen
+};
+//SIG(1 ee22301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22301 ::foo(){vfunc_called(this, "_ZN7ee223013fooEv");}
+ee22301 ::~ee22301(){ note_dtor("ee22301", this);} // tgen
+ee22301 ::ee22301(){ note_ctor("ee22301", this);} // tgen
+
+static void Test_ee22301()
+{
+ extern Class_Descriptor cd_ee22301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22301, buf);
+ ee22301 *dp, &lv = *(dp=new (buf) ee22301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee22301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd2301*), ABISELECT(24,16), "ee22301");
+ check_base_class_offset(lv, (cc301*)(dd2301*), 0, "ee22301");
+ check_base_class_offset(lv, (dd2301*), 0, "ee22301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22301.e");
+ test_class_info(&lv, &cd_ee22301);
+ dp->~ee22301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22301(Test_ee22301, "ee22301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22301C1Ev();
+extern void _ZN7ee22301D1Ev();
+Name_Map name_map_ee22301[] = {
+ NSPAIR(_ZN7ee22301C1Ev),
+ NSPAIR(_ZN7ee22301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd2301;
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static Base_Class bases_ee22301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22301[];
+extern void _ZN7ee223013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223013fooEv,_ZTv0_n12_N7ee223013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee223013fooEv,_ZThn16_N7ee223013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22301[0]),
+ (VTBL_ENTRY)&_ZN7ee223013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223013fooEv,_ZTv0_n12_N7ee223013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22301[];
+extern void _ZN6dd23013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2301__7ee22301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd2301__7ee22301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd2301__7ee22301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2301__7ee22301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+static VTT_ENTRY vtt_ee22301[] = {
+ {&(_ZTV7ee22301[3]), 3,8},
+ {&(_tg__ZTV6dd2301__7ee22301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd2301__7ee22301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd2301__7ee22301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2301__7ee22301[3]), 3,4},
+ {&(_ZTV7ee22301[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee22301[];
+extern VTBL_ENTRY _ZTV7ee22301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22301[];
+static VTBL_ENTRY alt_thunk_names417[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223013fooEv,_ZTv0_n12_N7ee223013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee223013fooEv,_ZThn16_N7ee223013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22301 = { "ee22301", // class name
+ bases_ee22301, 4,
+ &(vtc_ee22301[0]), // expected_vtbl_contents
+ &(vtt_ee22301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22301),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names417,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32301 : virtual dd2301 {
+ int e;
+ virtual void foo(); // _ZN7ee323013fooEv
+ ~ee32301(); // tgen
+ ee32301(); // tgen
+};
+//SIG(1 ee32301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32301 ::foo(){vfunc_called(this, "_ZN7ee323013fooEv");}
+ee32301 ::~ee32301(){ note_dtor("ee32301", this);} // tgen
+ee32301 ::ee32301(){ note_ctor("ee32301", this);} // tgen
+
+static void Test_ee32301()
+{
+ extern Class_Descriptor cd_ee32301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32301, buf);
+ ee32301 *dp, &lv = *(dp=new (buf) ee32301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee32301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd2301*), ABISELECT(32,20), "ee32301");
+ check_base_class_offset(lv, (cc301*)(dd2301*), ABISELECT(16,8), "ee32301");
+ check_base_class_offset(lv, (dd2301*), ABISELECT(16,8), "ee32301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32301.e");
+ test_class_info(&lv, &cd_ee32301);
+ dp->~ee32301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32301(Test_ee32301, "ee32301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32301C1Ev();
+extern void _ZN7ee32301D1Ev();
+Name_Map name_map_ee32301[] = {
+ NSPAIR(_ZN7ee32301C1Ev),
+ NSPAIR(_ZN7ee32301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd2301;
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static Base_Class bases_ee32301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32301[];
+extern void _ZN7ee323013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323013fooEv,_ZTv0_n16_N7ee323013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323013fooEv,_ZThn8_N7ee323013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee323013fooEv,_ZTv0_n12_N7ee323013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee323013fooEv,_ZThn20_N7ee323013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32301[0]),
+ (VTBL_ENTRY)&_ZN7ee323013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323013fooEv,_ZTv0_n16_N7ee323013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323013fooEv,_ZTv0_n12_N7ee323013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32301[];
+extern void _ZN6dd23013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2301__7ee32301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd2301__7ee32301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd2301__7ee32301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2301__7ee32301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+static VTT_ENTRY vtt_ee32301[] = {
+ {&(_ZTV7ee32301[4]), 4,14},
+ {&(_ZTV7ee32301[9]), 9,14},
+ {&(_ZTV7ee32301[13]), 13,14},
+ {&(_tg__ZTV6dd2301__7ee32301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd2301__7ee32301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd2301__7ee32301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2301__7ee32301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32301[];
+extern VTBL_ENTRY _ZTV7ee32301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32301[];
+static VTBL_ENTRY alt_thunk_names418[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323013fooEv,_ZTv0_n12_N7ee323013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee323013fooEv,_ZThn20_N7ee323013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323013fooEv,_ZTv0_n16_N7ee323013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323013fooEv,_ZThn8_N7ee323013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32301 = { "ee32301", // class name
+ bases_ee32301, 4,
+ &(vtc_ee32301[0]), // expected_vtbl_contents
+ &(vtt_ee32301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names418,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42301 : dd2301 {
+ int e;
+ virtual void bar(); // _ZN7ee423013barEv
+ ~ee42301(); // tgen
+ ee42301(); // tgen
+};
+//SIG(1 ee42301) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42301 ::bar(){vfunc_called(this, "_ZN7ee423013barEv");}
+ee42301 ::~ee42301(){ note_dtor("ee42301", this);} // tgen
+ee42301 ::ee42301(){ note_ctor("ee42301", this);} // tgen
+
+static void Test_ee42301()
+{
+ extern Class_Descriptor cd_ee42301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42301, buf);
+ ee42301 *dp, &lv = *(dp=new (buf) ee42301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee42301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd2301*), ABISELECT(24,16), "ee42301");
+ check_base_class_offset(lv, (cc301*)(dd2301*), 0, "ee42301");
+ check_base_class_offset(lv, (dd2301*), 0, "ee42301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42301.e");
+ test_class_info(&lv, &cd_ee42301);
+ dp->~ee42301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42301(Test_ee42301, "ee42301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42301C1Ev();
+extern void _ZN7ee42301D1Ev();
+Name_Map name_map_ee42301[] = {
+ NSPAIR(_ZN7ee42301C1Ev),
+ NSPAIR(_ZN7ee42301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd2301;
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static Base_Class bases_ee42301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42301[];
+extern void _ZN6dd23013fooEv();
+extern void _ZN7ee423013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+ (VTBL_ENTRY)&_ZN7ee423013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42301[];
+extern void _ZN6dd23013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2301__7ee42301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd2301__7ee42301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd2301__7ee42301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2301__7ee42301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+static VTT_ENTRY vtt_ee42301[] = {
+ {&(_ZTV7ee42301[3]), 3,9},
+ {&(_tg__ZTV6dd2301__7ee42301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd2301__7ee42301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd2301__7ee42301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2301__7ee42301[3]), 3,4},
+ {&(_ZTV7ee42301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42301[];
+extern VTBL_ENTRY _ZTV7ee42301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42301[];
+static VTBL_ENTRY alt_thunk_names419[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42301 = { "ee42301", // class name
+ bases_ee42301, 4,
+ &(vtc_ee42301[0]), // expected_vtbl_contents
+ &(vtt_ee42301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names419,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52301 : virtual dd2301 {
+ int e;
+ virtual void bar(); // _ZN7ee523013barEv
+ ~ee52301(); // tgen
+ ee52301(); // tgen
+};
+//SIG(1 ee52301) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52301 ::bar(){vfunc_called(this, "_ZN7ee523013barEv");}
+ee52301 ::~ee52301(){ note_dtor("ee52301", this);} // tgen
+ee52301 ::ee52301(){ note_ctor("ee52301", this);} // tgen
+
+static void Test_ee52301()
+{
+ extern Class_Descriptor cd_ee52301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52301, buf);
+ ee52301 *dp, &lv = *(dp=new (buf) ee52301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee52301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd2301*), ABISELECT(32,20), "ee52301");
+ check_base_class_offset(lv, (cc301*)(dd2301*), ABISELECT(16,8), "ee52301");
+ check_base_class_offset(lv, (dd2301*), ABISELECT(16,8), "ee52301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52301.e");
+ test_class_info(&lv, &cd_ee52301);
+ dp->~ee52301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52301(Test_ee52301, "ee52301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52301C1Ev();
+extern void _ZN7ee52301D1Ev();
+Name_Map name_map_ee52301[] = {
+ NSPAIR(_ZN7ee52301C1Ev),
+ NSPAIR(_ZN7ee52301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd2301;
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static Base_Class bases_ee52301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52301[];
+extern void _ZN7ee523013barEv();
+extern void _ZN6dd23013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52301[0]),
+ (VTBL_ENTRY)&_ZN7ee523013barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52301[];
+extern void _ZN6dd23013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2301__7ee52301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd2301__7ee52301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd2301__7ee52301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2301__7ee52301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+static VTT_ENTRY vtt_ee52301[] = {
+ {&(_ZTV7ee52301[4]), 4,14},
+ {&(_ZTV7ee52301[9]), 9,14},
+ {&(_ZTV7ee52301[13]), 13,14},
+ {&(_tg__ZTV6dd2301__7ee52301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd2301__7ee52301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd2301__7ee52301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2301__7ee52301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52301[];
+extern VTBL_ENTRY _ZTV7ee52301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52301[];
+static VTBL_ENTRY alt_thunk_names420[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52301 = { "ee52301", // class name
+ bases_ee52301, 4,
+ &(vtc_ee52301[0]), // expected_vtbl_contents
+ &(vtt_ee52301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names420,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62301 : dd2301 {
+ int e;
+ virtual void foo(); // _ZN7ee623013fooEv
+ virtual void bar(); // _ZN7ee623013barEv
+ ~ee62301(); // tgen
+ ee62301(); // tgen
+};
+//SIG(1 ee62301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62301 ::foo(){vfunc_called(this, "_ZN7ee623013fooEv");}
+void ee62301 ::bar(){vfunc_called(this, "_ZN7ee623013barEv");}
+ee62301 ::~ee62301(){ note_dtor("ee62301", this);} // tgen
+ee62301 ::ee62301(){ note_ctor("ee62301", this);} // tgen
+
+static void Test_ee62301()
+{
+ extern Class_Descriptor cd_ee62301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62301, buf);
+ ee62301 *dp, &lv = *(dp=new (buf) ee62301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee62301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd2301*), ABISELECT(24,16), "ee62301");
+ check_base_class_offset(lv, (cc301*)(dd2301*), 0, "ee62301");
+ check_base_class_offset(lv, (dd2301*), 0, "ee62301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62301.e");
+ test_class_info(&lv, &cd_ee62301);
+ dp->~ee62301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62301(Test_ee62301, "ee62301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62301C1Ev();
+extern void _ZN7ee62301D1Ev();
+Name_Map name_map_ee62301[] = {
+ NSPAIR(_ZN7ee62301C1Ev),
+ NSPAIR(_ZN7ee62301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd2301;
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static Base_Class bases_ee62301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62301[];
+extern void _ZN7ee623013fooEv();
+extern void _ZN7ee623013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee623013fooEv,_ZTv0_n12_N7ee623013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee623013fooEv,_ZThn16_N7ee623013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62301[0]),
+ (VTBL_ENTRY)&_ZN7ee623013fooEv,
+ (VTBL_ENTRY)&_ZN7ee623013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623013fooEv,_ZTv0_n12_N7ee623013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62301[];
+extern void _ZN6dd23013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2301__7ee62301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd2301__7ee62301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd2301__7ee62301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2301__7ee62301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+static VTT_ENTRY vtt_ee62301[] = {
+ {&(_ZTV7ee62301[3]), 3,9},
+ {&(_tg__ZTV6dd2301__7ee62301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd2301__7ee62301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd2301__7ee62301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2301__7ee62301[3]), 3,4},
+ {&(_ZTV7ee62301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62301[];
+extern VTBL_ENTRY _ZTV7ee62301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62301[];
+static VTBL_ENTRY alt_thunk_names421[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23013fooEv,_ZThn16_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623013fooEv,_ZTv0_n12_N7ee623013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623013fooEv,_ZThn16_N7ee623013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62301 = { "ee62301", // class name
+ bases_ee62301, 4,
+ &(vtc_ee62301[0]), // expected_vtbl_contents
+ &(vtt_ee62301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names421,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72301 : virtual dd2301 {
+ int e;
+ virtual void foo(); // _ZN7ee723013fooEv
+ virtual void bar(); // _ZN7ee723013barEv
+ ~ee72301(); // tgen
+ ee72301(); // tgen
+};
+//SIG(1 ee72301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72301 ::foo(){vfunc_called(this, "_ZN7ee723013fooEv");}
+void ee72301 ::bar(){vfunc_called(this, "_ZN7ee723013barEv");}
+ee72301 ::~ee72301(){ note_dtor("ee72301", this);} // tgen
+ee72301 ::ee72301(){ note_ctor("ee72301", this);} // tgen
+
+static void Test_ee72301()
+{
+ extern Class_Descriptor cd_ee72301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72301, buf);
+ ee72301 *dp, &lv = *(dp=new (buf) ee72301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee72301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd2301*), ABISELECT(32,20), "ee72301");
+ check_base_class_offset(lv, (cc301*)(dd2301*), ABISELECT(16,8), "ee72301");
+ check_base_class_offset(lv, (dd2301*), ABISELECT(16,8), "ee72301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72301.e");
+ test_class_info(&lv, &cd_ee72301);
+ dp->~ee72301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72301(Test_ee72301, "ee72301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72301C1Ev();
+extern void _ZN7ee72301D1Ev();
+Name_Map name_map_ee72301[] = {
+ NSPAIR(_ZN7ee72301C1Ev),
+ NSPAIR(_ZN7ee72301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd2301;
+extern VTBL_ENTRY _ZTI6dd2301[];
+extern VTBL_ENTRY _ZTV6dd2301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2301[];
+static Base_Class bases_ee72301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72301[];
+extern void _ZN7ee723013fooEv();
+extern void _ZN7ee723013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723013fooEv,_ZTv0_n16_N7ee723013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723013fooEv,_ZThn8_N7ee723013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723013fooEv,_ZTv0_n12_N7ee723013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee723013fooEv,_ZThn20_N7ee723013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72301[0]),
+ (VTBL_ENTRY)&_ZN7ee723013fooEv,
+ (VTBL_ENTRY)&_ZN7ee723013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723013fooEv,_ZTv0_n16_N7ee723013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723013fooEv,_ZTv0_n12_N7ee723013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72301[];
+extern void _ZN6dd23013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2301__7ee72301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&_ZN6dd23013fooEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd2301__7ee72301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd2301__7ee72301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2301__7ee72301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv),
+};
+static VTT_ENTRY vtt_ee72301[] = {
+ {&(_ZTV7ee72301[4]), 4,15},
+ {&(_ZTV7ee72301[10]), 10,15},
+ {&(_ZTV7ee72301[14]), 14,15},
+ {&(_tg__ZTV6dd2301__7ee72301[3]), 3,4},
+ {&(_tg__ZTV5cc3016dd2301__7ee72301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd2301__7ee72301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2301__7ee72301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72301[];
+extern VTBL_ENTRY _ZTV7ee72301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72301[];
+static VTBL_ENTRY alt_thunk_names422[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23013fooEv,_ZTv0_n12_N6dd23013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23013fooEv,_ZThn12_N6dd23013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723013fooEv,_ZTv0_n12_N7ee723013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723013fooEv,_ZThn20_N7ee723013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723013fooEv,_ZTv0_n16_N7ee723013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723013fooEv,_ZThn8_N7ee723013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72301 = { "ee72301", // class name
+ bases_ee72301, 4,
+ &(vtc_ee72301[0]), // expected_vtbl_contents
+ &(vtt_ee72301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names422,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3301 : virtual cc301 {
+ int d;
+ virtual void foo(); // _ZN6dd33013fooEv
+ ~dd3301(); // tgen
+ dd3301(); // tgen
+};
+//SIG(-1 dd3301) C1{ VBC2{ VBC3{ BC4{ v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd3301 ::foo(){vfunc_called(this, "_ZN6dd33013fooEv");}
+dd3301 ::~dd3301(){ note_dtor("dd3301", this);} // tgen
+dd3301 ::dd3301(){ note_ctor("dd3301", this);} // tgen
+
+static void Test_dd3301()
+{
+ extern Class_Descriptor cd_dd3301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3301, buf);
+ dd3301 *dp, &lv = *(dp=new (buf) dd3301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd3301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,16), "dd3301");
+ check_base_class_offset(lv, (cc301*), ABISELECT(16,8), "dd3301");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3301.d");
+ test_class_info(&lv, &cd_dd3301);
+ dp->~dd3301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3301(Test_dd3301, "dd3301", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3301C1Ev();
+extern void _ZN6dd3301D1Ev();
+Name_Map name_map_dd3301[] = {
+ NSPAIR(_ZN6dd3301C1Ev),
+ NSPAIR(_ZN6dd3301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static Base_Class bases_dd3301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 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 _ZTI6dd3301[];
+extern void _ZN6dd33013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__6dd3301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_dd3301[] = {
+ {&(_ZTV6dd3301[4]), 4,14},
+ {&(_ZTV6dd3301[9]), 9,14},
+ {&(_ZTV6dd3301[13]), 13,14},
+ {&(_tg__ZTV5cc301__6dd3301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__6dd3301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static VTBL_ENTRY alt_thunk_names423[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3301 = { "dd3301", // class name
+ bases_dd3301, 3,
+ &(vtc_dd3301[0]), // expected_vtbl_contents
+ &(vtt_dd3301[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3301),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names423,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03301 : dd3301 {
+ int e;
+ ~ee03301(); // tgen
+ ee03301(); // tgen
+};
+//SIG(1 ee03301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03301 ::~ee03301(){ note_dtor("ee03301", this);} // tgen
+ee03301 ::ee03301(){ note_ctor("ee03301", this);} // tgen
+
+static void Test_ee03301()
+{
+ extern Class_Descriptor cd_ee03301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03301, buf);
+ ee03301 *dp, &lv = *(dp=new (buf) ee03301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee03301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee03301");
+ check_base_class_offset(lv, (cc301*)(dd3301*), ABISELECT(16,12), "ee03301");
+ check_base_class_offset(lv, (dd3301*), 0, "ee03301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03301.e");
+ test_class_info(&lv, &cd_ee03301);
+ dp->~ee03301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03301(Test_ee03301, "ee03301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03301C1Ev();
+extern void _ZN7ee03301D1Ev();
+Name_Map name_map_ee03301[] = {
+ NSPAIR(_ZN7ee03301C1Ev),
+ NSPAIR(_ZN7ee03301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd3301;
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static Base_Class bases_ee03301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03301[];
+extern void _ZN6dd33013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03301[];
+extern void _ZN6dd33013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3301__7ee03301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301__7ee03301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3301__7ee03301[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee03301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee03301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee03301[] = {
+ {&(_ZTV7ee03301[4]), 4,14},
+ {&(_tg__ZTV6dd3301__7ee03301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd3301__7ee03301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3301__7ee03301[3]), 3,4},
+ {&(_ZTV7ee03301[9]), 9,14},
+ {&(_ZTV7ee03301[13]), 13,14},
+ {&(_tg__ZTV5cc301__7ee03301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee03301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03301[];
+extern VTBL_ENTRY _ZTV7ee03301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03301[];
+static VTBL_ENTRY alt_thunk_names424[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03301 = { "ee03301", // class name
+ bases_ee03301, 4,
+ &(vtc_ee03301[0]), // expected_vtbl_contents
+ &(vtt_ee03301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names424,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13301 : virtual dd3301 {
+ int e;
+ ~ee13301(); // tgen
+ ee13301(); // tgen
+};
+//SIG(1 ee13301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13301 ::~ee13301(){ note_dtor("ee13301", this);} // tgen
+ee13301 ::ee13301(){ note_ctor("ee13301", this);} // tgen
+
+static void Test_ee13301()
+{
+ extern Class_Descriptor cd_ee13301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13301, buf);
+ ee13301 *dp, &lv = *(dp=new (buf) ee13301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee13301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee13301");
+ check_base_class_offset(lv, (cc301*)(dd3301*), ABISELECT(32,16), "ee13301");
+ check_base_class_offset(lv, (dd3301*), ABISELECT(16,8), "ee13301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13301.e");
+ test_class_info(&lv, &cd_ee13301);
+ dp->~ee13301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13301(Test_ee13301, "ee13301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13301C1Ev();
+extern void _ZN7ee13301D1Ev();
+Name_Map name_map_ee13301[] = {
+ NSPAIR(_ZN7ee13301C1Ev),
+ NSPAIR(_ZN7ee13301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd3301;
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static Base_Class bases_ee13301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13301[];
+extern void _ZN6dd33013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13301[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13301[];
+extern void _ZN6dd33013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3301__7ee13301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301__7ee13301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3301__7ee13301[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee13301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee13301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee13301[] = {
+ {&(_ZTV7ee13301[5]), 5,20},
+ {&(_ZTV7ee13301[10]), 10,20},
+ {&(_ZTV7ee13301[15]), 15,20},
+ {&(_ZTV7ee13301[19]), 19,20},
+ {&(_tg__ZTV6dd3301__7ee13301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd3301__7ee13301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3301__7ee13301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee13301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee13301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13301[];
+extern VTBL_ENTRY _ZTV7ee13301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13301[];
+static VTBL_ENTRY alt_thunk_names425[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13301 = { "ee13301", // class name
+ bases_ee13301, 4,
+ &(vtc_ee13301[0]), // expected_vtbl_contents
+ &(vtt_ee13301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13301),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names425,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23301 : dd3301 {
+ int e;
+ virtual void foo(); // _ZN7ee233013fooEv
+ ~ee23301(); // tgen
+ ee23301(); // tgen
+};
+//SIG(1 ee23301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23301 ::foo(){vfunc_called(this, "_ZN7ee233013fooEv");}
+ee23301 ::~ee23301(){ note_dtor("ee23301", this);} // tgen
+ee23301 ::ee23301(){ note_ctor("ee23301", this);} // tgen
+
+static void Test_ee23301()
+{
+ extern Class_Descriptor cd_ee23301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23301, buf);
+ ee23301 *dp, &lv = *(dp=new (buf) ee23301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee23301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee23301");
+ check_base_class_offset(lv, (cc301*)(dd3301*), ABISELECT(16,12), "ee23301");
+ check_base_class_offset(lv, (dd3301*), 0, "ee23301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23301.e");
+ test_class_info(&lv, &cd_ee23301);
+ dp->~ee23301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23301(Test_ee23301, "ee23301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23301C1Ev();
+extern void _ZN7ee23301D1Ev();
+Name_Map name_map_ee23301[] = {
+ NSPAIR(_ZN7ee23301C1Ev),
+ NSPAIR(_ZN7ee23301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd3301;
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static Base_Class bases_ee23301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23301[];
+extern void _ZN7ee233013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233013fooEv,_ZTv0_n16_N7ee233013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233013fooEv,_ZThn12_N7ee233013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee233013fooEv,_ZTv0_n12_N7ee233013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee233013fooEv,_ZThn20_N7ee233013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23301[0]),
+ (VTBL_ENTRY)&_ZN7ee233013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233013fooEv,_ZTv0_n16_N7ee233013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233013fooEv,_ZTv0_n12_N7ee233013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23301[];
+extern void _ZN6dd33013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3301__7ee23301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301__7ee23301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3301__7ee23301[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee23301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee23301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee23301[] = {
+ {&(_ZTV7ee23301[4]), 4,14},
+ {&(_tg__ZTV6dd3301__7ee23301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd3301__7ee23301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3301__7ee23301[3]), 3,4},
+ {&(_ZTV7ee23301[9]), 9,14},
+ {&(_ZTV7ee23301[13]), 13,14},
+ {&(_tg__ZTV5cc301__7ee23301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee23301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23301[];
+extern VTBL_ENTRY _ZTV7ee23301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23301[];
+static VTBL_ENTRY alt_thunk_names426[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233013fooEv,_ZTv0_n12_N7ee233013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee233013fooEv,_ZThn20_N7ee233013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233013fooEv,_ZTv0_n16_N7ee233013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233013fooEv,_ZThn12_N7ee233013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23301 = { "ee23301", // class name
+ bases_ee23301, 4,
+ &(vtc_ee23301[0]), // expected_vtbl_contents
+ &(vtt_ee23301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names426,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33301 : virtual dd3301 {
+ int e;
+ virtual void foo(); // _ZN7ee333013fooEv
+ ~ee33301(); // tgen
+ ee33301(); // tgen
+};
+//SIG(1 ee33301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33301 ::foo(){vfunc_called(this, "_ZN7ee333013fooEv");}
+ee33301 ::~ee33301(){ note_dtor("ee33301", this);} // tgen
+ee33301 ::ee33301(){ note_ctor("ee33301", this);} // tgen
+
+static void Test_ee33301()
+{
+ extern Class_Descriptor cd_ee33301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33301, buf);
+ ee33301 *dp, &lv = *(dp=new (buf) ee33301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee33301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee33301");
+ check_base_class_offset(lv, (cc301*)(dd3301*), ABISELECT(32,16), "ee33301");
+ check_base_class_offset(lv, (dd3301*), ABISELECT(16,8), "ee33301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33301.e");
+ test_class_info(&lv, &cd_ee33301);
+ dp->~ee33301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33301(Test_ee33301, "ee33301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33301C1Ev();
+extern void _ZN7ee33301D1Ev();
+Name_Map name_map_ee33301[] = {
+ NSPAIR(_ZN7ee33301C1Ev),
+ NSPAIR(_ZN7ee33301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd3301;
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static Base_Class bases_ee33301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33301[];
+extern void _ZN7ee333013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333013fooEv,_ZTv0_n20_N7ee333013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333013fooEv,_ZThn8_N7ee333013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333013fooEv,_ZTv0_n16_N7ee333013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333013fooEv,_ZThn16_N7ee333013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee333013fooEv,_ZTv0_n12_N7ee333013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee333013fooEv,_ZThn24_N7ee333013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33301[0]),
+ (VTBL_ENTRY)&_ZN7ee333013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333013fooEv,_ZTv0_n20_N7ee333013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333013fooEv,_ZTv0_n16_N7ee333013fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333013fooEv,_ZTv0_n12_N7ee333013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33301[];
+extern void _ZN6dd33013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3301__7ee33301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301__7ee33301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3301__7ee33301[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee33301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee33301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee33301[] = {
+ {&(_ZTV7ee33301[5]), 5,21},
+ {&(_ZTV7ee33301[11]), 11,21},
+ {&(_ZTV7ee33301[16]), 16,21},
+ {&(_ZTV7ee33301[20]), 20,21},
+ {&(_tg__ZTV6dd3301__7ee33301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd3301__7ee33301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3301__7ee33301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee33301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee33301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33301[];
+extern VTBL_ENTRY _ZTV7ee33301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33301[];
+static VTBL_ENTRY alt_thunk_names427[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333013fooEv,_ZTv0_n12_N7ee333013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee333013fooEv,_ZThn24_N7ee333013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333013fooEv,_ZTv0_n16_N7ee333013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333013fooEv,_ZThn16_N7ee333013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333013fooEv,_ZTv0_n20_N7ee333013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333013fooEv,_ZThn8_N7ee333013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33301 = { "ee33301", // class name
+ bases_ee33301, 4,
+ &(vtc_ee33301[0]), // expected_vtbl_contents
+ &(vtt_ee33301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33301),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names427,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43301 : dd3301 {
+ int e;
+ virtual void bar(); // _ZN7ee433013barEv
+ ~ee43301(); // tgen
+ ee43301(); // tgen
+};
+//SIG(1 ee43301) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43301 ::bar(){vfunc_called(this, "_ZN7ee433013barEv");}
+ee43301 ::~ee43301(){ note_dtor("ee43301", this);} // tgen
+ee43301 ::ee43301(){ note_ctor("ee43301", this);} // tgen
+
+static void Test_ee43301()
+{
+ extern Class_Descriptor cd_ee43301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43301, buf);
+ ee43301 *dp, &lv = *(dp=new (buf) ee43301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee43301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee43301");
+ check_base_class_offset(lv, (cc301*)(dd3301*), ABISELECT(16,12), "ee43301");
+ check_base_class_offset(lv, (dd3301*), 0, "ee43301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43301.e");
+ test_class_info(&lv, &cd_ee43301);
+ dp->~ee43301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43301(Test_ee43301, "ee43301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43301C1Ev();
+extern void _ZN7ee43301D1Ev();
+Name_Map name_map_ee43301[] = {
+ NSPAIR(_ZN7ee43301C1Ev),
+ NSPAIR(_ZN7ee43301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd3301;
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static Base_Class bases_ee43301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43301[];
+extern void _ZN6dd33013fooEv();
+extern void _ZN7ee433013barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+ (VTBL_ENTRY)&_ZN7ee433013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43301[];
+extern void _ZN6dd33013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3301__7ee43301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301__7ee43301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3301__7ee43301[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee43301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee43301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee43301[] = {
+ {&(_ZTV7ee43301[4]), 4,15},
+ {&(_tg__ZTV6dd3301__7ee43301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd3301__7ee43301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3301__7ee43301[3]), 3,4},
+ {&(_ZTV7ee43301[10]), 10,15},
+ {&(_ZTV7ee43301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee43301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee43301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43301[];
+extern VTBL_ENTRY _ZTV7ee43301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43301[];
+static VTBL_ENTRY alt_thunk_names428[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43301 = { "ee43301", // class name
+ bases_ee43301, 4,
+ &(vtc_ee43301[0]), // expected_vtbl_contents
+ &(vtt_ee43301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names428,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53301 : virtual dd3301 {
+ int e;
+ virtual void bar(); // _ZN7ee533013barEv
+ ~ee53301(); // tgen
+ ee53301(); // tgen
+};
+//SIG(1 ee53301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53301 ::bar(){vfunc_called(this, "_ZN7ee533013barEv");}
+ee53301 ::~ee53301(){ note_dtor("ee53301", this);} // tgen
+ee53301 ::ee53301(){ note_ctor("ee53301", this);} // tgen
+
+static void Test_ee53301()
+{
+ extern Class_Descriptor cd_ee53301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53301, buf);
+ ee53301 *dp, &lv = *(dp=new (buf) ee53301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee53301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee53301");
+ check_base_class_offset(lv, (cc301*)(dd3301*), ABISELECT(32,16), "ee53301");
+ check_base_class_offset(lv, (dd3301*), ABISELECT(16,8), "ee53301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53301.e");
+ test_class_info(&lv, &cd_ee53301);
+ dp->~ee53301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53301(Test_ee53301, "ee53301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53301C1Ev();
+extern void _ZN7ee53301D1Ev();
+Name_Map name_map_ee53301[] = {
+ NSPAIR(_ZN7ee53301C1Ev),
+ NSPAIR(_ZN7ee53301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd3301;
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static Base_Class bases_ee53301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53301[];
+extern void _ZN7ee533013barEv();
+extern void _ZN6dd33013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53301[0]),
+ (VTBL_ENTRY)&_ZN7ee533013barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53301[];
+extern void _ZN6dd33013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3301__7ee53301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301__7ee53301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3301__7ee53301[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee53301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee53301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee53301[] = {
+ {&(_ZTV7ee53301[5]), 5,21},
+ {&(_ZTV7ee53301[11]), 11,21},
+ {&(_ZTV7ee53301[16]), 16,21},
+ {&(_ZTV7ee53301[20]), 20,21},
+ {&(_tg__ZTV6dd3301__7ee53301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd3301__7ee53301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3301__7ee53301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee53301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee53301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53301[];
+extern VTBL_ENTRY _ZTV7ee53301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53301[];
+static VTBL_ENTRY alt_thunk_names429[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53301 = { "ee53301", // class name
+ bases_ee53301, 4,
+ &(vtc_ee53301[0]), // expected_vtbl_contents
+ &(vtt_ee53301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53301),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names429,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63301 : dd3301 {
+ int e;
+ virtual void foo(); // _ZN7ee633013fooEv
+ virtual void bar(); // _ZN7ee633013barEv
+ ~ee63301(); // tgen
+ ee63301(); // tgen
+};
+//SIG(1 ee63301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63301 ::foo(){vfunc_called(this, "_ZN7ee633013fooEv");}
+void ee63301 ::bar(){vfunc_called(this, "_ZN7ee633013barEv");}
+ee63301 ::~ee63301(){ note_dtor("ee63301", this);} // tgen
+ee63301 ::ee63301(){ note_ctor("ee63301", this);} // tgen
+
+static void Test_ee63301()
+{
+ extern Class_Descriptor cd_ee63301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63301, buf);
+ ee63301 *dp, &lv = *(dp=new (buf) ee63301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee63301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee63301");
+ check_base_class_offset(lv, (cc301*)(dd3301*), ABISELECT(16,12), "ee63301");
+ check_base_class_offset(lv, (dd3301*), 0, "ee63301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63301.e");
+ test_class_info(&lv, &cd_ee63301);
+ dp->~ee63301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63301(Test_ee63301, "ee63301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63301C1Ev();
+extern void _ZN7ee63301D1Ev();
+Name_Map name_map_ee63301[] = {
+ NSPAIR(_ZN7ee63301C1Ev),
+ NSPAIR(_ZN7ee63301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd3301;
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static Base_Class bases_ee63301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63301[];
+extern void _ZN7ee633013fooEv();
+extern void _ZN7ee633013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633013fooEv,_ZTv0_n16_N7ee633013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633013fooEv,_ZThn12_N7ee633013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633013fooEv,_ZTv0_n12_N7ee633013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee633013fooEv,_ZThn20_N7ee633013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63301[0]),
+ (VTBL_ENTRY)&_ZN7ee633013fooEv,
+ (VTBL_ENTRY)&_ZN7ee633013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633013fooEv,_ZTv0_n16_N7ee633013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633013fooEv,_ZTv0_n12_N7ee633013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63301[];
+extern void _ZN6dd33013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3301__7ee63301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301__7ee63301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3301__7ee63301[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee63301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee63301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee63301[] = {
+ {&(_ZTV7ee63301[4]), 4,15},
+ {&(_tg__ZTV6dd3301__7ee63301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd3301__7ee63301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3301__7ee63301[3]), 3,4},
+ {&(_ZTV7ee63301[10]), 10,15},
+ {&(_ZTV7ee63301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee63301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee63301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63301[];
+extern VTBL_ENTRY _ZTV7ee63301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63301[];
+static VTBL_ENTRY alt_thunk_names430[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn20_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn12_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633013fooEv,_ZTv0_n12_N7ee633013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633013fooEv,_ZThn20_N7ee633013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633013fooEv,_ZTv0_n16_N7ee633013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633013fooEv,_ZThn12_N7ee633013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63301 = { "ee63301", // class name
+ bases_ee63301, 4,
+ &(vtc_ee63301[0]), // expected_vtbl_contents
+ &(vtt_ee63301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names430,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73301 : virtual dd3301 {
+ int e;
+ virtual void foo(); // _ZN7ee733013fooEv
+ virtual void bar(); // _ZN7ee733013barEv
+ ~ee73301(); // tgen
+ ee73301(); // tgen
+};
+//SIG(1 ee73301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73301 ::foo(){vfunc_called(this, "_ZN7ee733013fooEv");}
+void ee73301 ::bar(){vfunc_called(this, "_ZN7ee733013barEv");}
+ee73301 ::~ee73301(){ note_dtor("ee73301", this);} // tgen
+ee73301 ::ee73301(){ note_ctor("ee73301", this);} // tgen
+
+static void Test_ee73301()
+{
+ extern Class_Descriptor cd_ee73301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73301, buf);
+ ee73301 *dp, &lv = *(dp=new (buf) ee73301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee73301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee73301");
+ check_base_class_offset(lv, (cc301*)(dd3301*), ABISELECT(32,16), "ee73301");
+ check_base_class_offset(lv, (dd3301*), ABISELECT(16,8), "ee73301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73301.e");
+ test_class_info(&lv, &cd_ee73301);
+ dp->~ee73301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73301(Test_ee73301, "ee73301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73301C1Ev();
+extern void _ZN7ee73301D1Ev();
+Name_Map name_map_ee73301[] = {
+ NSPAIR(_ZN7ee73301C1Ev),
+ NSPAIR(_ZN7ee73301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd3301;
+extern VTBL_ENTRY _ZTI6dd3301[];
+extern VTBL_ENTRY _ZTV6dd3301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3301[];
+static Base_Class bases_ee73301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3301, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73301[];
+extern void _ZN7ee733013fooEv();
+extern void _ZN7ee733013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733013fooEv,_ZTv0_n20_N7ee733013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733013fooEv,_ZThn8_N7ee733013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733013fooEv,_ZTv0_n16_N7ee733013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733013fooEv,_ZThn16_N7ee733013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733013fooEv,_ZTv0_n12_N7ee733013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee733013fooEv,_ZThn24_N7ee733013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73301[0]),
+ (VTBL_ENTRY)&_ZN7ee733013fooEv,
+ (VTBL_ENTRY)&_ZN7ee733013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733013fooEv,_ZTv0_n20_N7ee733013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733013fooEv,_ZTv0_n16_N7ee733013fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733013fooEv,_ZTv0_n12_N7ee733013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73301[];
+extern void _ZN6dd33013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3301__7ee73301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&_ZN6dd33013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd3301__7ee73301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3301__7ee73301[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee73301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee73301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee73301[] = {
+ {&(_ZTV7ee73301[5]), 5,22},
+ {&(_ZTV7ee73301[12]), 12,22},
+ {&(_ZTV7ee73301[17]), 17,22},
+ {&(_ZTV7ee73301[21]), 21,22},
+ {&(_tg__ZTV6dd3301__7ee73301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd3301__7ee73301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3301__7ee73301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee73301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee73301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73301[];
+extern VTBL_ENTRY _ZTV7ee73301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73301[];
+static VTBL_ENTRY alt_thunk_names431[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33013fooEv,_ZTv0_n12_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33013fooEv,_ZThn16_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33013fooEv,_ZTv0_n16_N6dd33013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33013fooEv,_ZThn8_N6dd33013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733013fooEv,_ZTv0_n12_N7ee733013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733013fooEv,_ZThn24_N7ee733013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733013fooEv,_ZTv0_n16_N7ee733013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733013fooEv,_ZThn16_N7ee733013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733013fooEv,_ZTv0_n20_N7ee733013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733013fooEv,_ZThn8_N7ee733013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73301 = { "ee73301", // class name
+ bases_ee73301, 4,
+ &(vtc_ee73301[0]), // expected_vtbl_contents
+ &(vtt_ee73301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73301),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names431,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4301 : cc301 {
+ int d;
+ virtual void bar(); // _ZN6dd43013barEv
+ ~dd4301(); // tgen
+ dd4301(); // tgen
+};
+//SIG(-1 dd4301) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd4301 ::bar(){vfunc_called(this, "_ZN6dd43013barEv");}
+dd4301 ::~dd4301(){ note_dtor("dd4301", this);} // tgen
+dd4301 ::dd4301(){ note_ctor("dd4301", this);} // tgen
+
+static void Test_dd4301()
+{
+ extern Class_Descriptor cd_dd4301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4301, buf);
+ dd4301 *dp, &lv = *(dp=new (buf) dd4301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd4301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(16,12), "dd4301");
+ check_base_class_offset(lv, (cc301*), 0, "dd4301");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4301.d");
+ test_class_info(&lv, &cd_dd4301);
+ dp->~dd4301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4301(Test_dd4301, "dd4301", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4301C1Ev();
+extern void _ZN6dd4301D1Ev();
+Name_Map name_map_dd4301[] = {
+ NSPAIR(_ZN6dd4301C1Ev),
+ NSPAIR(_ZN6dd4301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static Base_Class bases_dd4301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd4301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__6dd4301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_dd4301[] = {
+ {&(_ZTV6dd4301[3]), 3,9},
+ {&(_tg__ZTV5cc301__6dd4301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__6dd4301[3]), 3,4},
+ {&(_ZTV6dd4301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static VTBL_ENTRY alt_thunk_names432[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4301 = { "dd4301", // class name
+ bases_dd4301, 3,
+ &(vtc_dd4301[0]), // expected_vtbl_contents
+ &(vtt_dd4301[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4301),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names432,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04301 : dd4301 {
+ int e;
+ ~ee04301(); // tgen
+ ee04301(); // tgen
+};
+//SIG(1 ee04301) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04301 ::~ee04301(){ note_dtor("ee04301", this);} // tgen
+ee04301 ::ee04301(){ note_ctor("ee04301", this);} // tgen
+
+static void Test_ee04301()
+{
+ extern Class_Descriptor cd_ee04301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04301, buf);
+ ee04301 *dp, &lv = *(dp=new (buf) ee04301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee04301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd4301*), ABISELECT(24,16), "ee04301");
+ check_base_class_offset(lv, (cc301*)(dd4301*), 0, "ee04301");
+ check_base_class_offset(lv, (dd4301*), 0, "ee04301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04301.e");
+ test_class_info(&lv, &cd_ee04301);
+ dp->~ee04301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04301(Test_ee04301, "ee04301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04301C1Ev();
+extern void _ZN7ee04301D1Ev();
+Name_Map name_map_ee04301[] = {
+ NSPAIR(_ZN7ee04301C1Ev),
+ NSPAIR(_ZN7ee04301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd4301;
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static Base_Class bases_ee04301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4301__7ee04301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd4301__7ee04301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd4301__7ee04301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4301__7ee04301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee04301[] = {
+ {&(_ZTV7ee04301[3]), 3,9},
+ {&(_tg__ZTV6dd4301__7ee04301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd4301__7ee04301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd4301__7ee04301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4301__7ee04301[3]), 3,4},
+ {&(_ZTV7ee04301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee04301[];
+extern VTBL_ENTRY _ZTV7ee04301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04301[];
+static VTBL_ENTRY alt_thunk_names433[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04301 = { "ee04301", // class name
+ bases_ee04301, 4,
+ &(vtc_ee04301[0]), // expected_vtbl_contents
+ &(vtt_ee04301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names433,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14301 : virtual dd4301 {
+ int e;
+ ~ee14301(); // tgen
+ ee14301(); // tgen
+};
+//SIG(1 ee14301) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14301 ::~ee14301(){ note_dtor("ee14301", this);} // tgen
+ee14301 ::ee14301(){ note_ctor("ee14301", this);} // tgen
+
+static void Test_ee14301()
+{
+ extern Class_Descriptor cd_ee14301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14301, buf);
+ ee14301 *dp, &lv = *(dp=new (buf) ee14301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee14301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd4301*), ABISELECT(32,20), "ee14301");
+ check_base_class_offset(lv, (cc301*)(dd4301*), ABISELECT(16,8), "ee14301");
+ check_base_class_offset(lv, (dd4301*), ABISELECT(16,8), "ee14301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14301.e");
+ test_class_info(&lv, &cd_ee14301);
+ dp->~ee14301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14301(Test_ee14301, "ee14301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14301C1Ev();
+extern void _ZN7ee14301D1Ev();
+Name_Map name_map_ee14301[] = {
+ NSPAIR(_ZN7ee14301C1Ev),
+ NSPAIR(_ZN7ee14301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd4301;
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static Base_Class bases_ee14301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4301, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14301[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4301__7ee14301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd4301__7ee14301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd4301__7ee14301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4301__7ee14301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee14301[] = {
+ {&(_ZTV7ee14301[4]), 4,15},
+ {&(_ZTV7ee14301[9]), 9,15},
+ {&(_ZTV7ee14301[14]), 14,15},
+ {&(_tg__ZTV6dd4301__7ee14301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd4301__7ee14301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd4301__7ee14301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4301__7ee14301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14301[];
+extern VTBL_ENTRY _ZTV7ee14301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14301[];
+static VTBL_ENTRY alt_thunk_names434[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14301 = { "ee14301", // class name
+ bases_ee14301, 4,
+ &(vtc_ee14301[0]), // expected_vtbl_contents
+ &(vtt_ee14301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names434,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24301 : dd4301 {
+ int e;
+ virtual void foo(); // _ZN7ee243013fooEv
+ ~ee24301(); // tgen
+ ee24301(); // tgen
+};
+//SIG(1 ee24301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24301 ::foo(){vfunc_called(this, "_ZN7ee243013fooEv");}
+ee24301 ::~ee24301(){ note_dtor("ee24301", this);} // tgen
+ee24301 ::ee24301(){ note_ctor("ee24301", this);} // tgen
+
+static void Test_ee24301()
+{
+ extern Class_Descriptor cd_ee24301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24301, buf);
+ ee24301 *dp, &lv = *(dp=new (buf) ee24301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee24301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd4301*), ABISELECT(24,16), "ee24301");
+ check_base_class_offset(lv, (cc301*)(dd4301*), 0, "ee24301");
+ check_base_class_offset(lv, (dd4301*), 0, "ee24301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24301.e");
+ test_class_info(&lv, &cd_ee24301);
+ dp->~ee24301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24301(Test_ee24301, "ee24301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24301C1Ev();
+extern void _ZN7ee24301D1Ev();
+Name_Map name_map_ee24301[] = {
+ NSPAIR(_ZN7ee24301C1Ev),
+ NSPAIR(_ZN7ee24301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd4301;
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static Base_Class bases_ee24301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24301[];
+extern void _ZN7ee243013fooEv();
+extern void _ZN6dd43013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee243013fooEv,_ZTv0_n12_N7ee243013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee243013fooEv,_ZThn16_N7ee243013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24301[0]),
+ (VTBL_ENTRY)&_ZN7ee243013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243013fooEv,_ZTv0_n12_N7ee243013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4301__7ee24301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd4301__7ee24301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd4301__7ee24301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4301__7ee24301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee24301[] = {
+ {&(_ZTV7ee24301[3]), 3,9},
+ {&(_tg__ZTV6dd4301__7ee24301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd4301__7ee24301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd4301__7ee24301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4301__7ee24301[3]), 3,4},
+ {&(_ZTV7ee24301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24301[];
+extern VTBL_ENTRY _ZTV7ee24301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24301[];
+static VTBL_ENTRY alt_thunk_names435[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243013fooEv,_ZTv0_n12_N7ee243013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee243013fooEv,_ZThn16_N7ee243013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24301 = { "ee24301", // class name
+ bases_ee24301, 4,
+ &(vtc_ee24301[0]), // expected_vtbl_contents
+ &(vtt_ee24301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names435,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34301 : virtual dd4301 {
+ int e;
+ virtual void foo(); // _ZN7ee343013fooEv
+ ~ee34301(); // tgen
+ ee34301(); // tgen
+};
+//SIG(1 ee34301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34301 ::foo(){vfunc_called(this, "_ZN7ee343013fooEv");}
+ee34301 ::~ee34301(){ note_dtor("ee34301", this);} // tgen
+ee34301 ::ee34301(){ note_ctor("ee34301", this);} // tgen
+
+static void Test_ee34301()
+{
+ extern Class_Descriptor cd_ee34301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34301, buf);
+ ee34301 *dp, &lv = *(dp=new (buf) ee34301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee34301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd4301*), ABISELECT(32,20), "ee34301");
+ check_base_class_offset(lv, (cc301*)(dd4301*), ABISELECT(16,8), "ee34301");
+ check_base_class_offset(lv, (dd4301*), ABISELECT(16,8), "ee34301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34301.e");
+ test_class_info(&lv, &cd_ee34301);
+ dp->~ee34301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34301(Test_ee34301, "ee34301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34301C1Ev();
+extern void _ZN7ee34301D1Ev();
+Name_Map name_map_ee34301[] = {
+ NSPAIR(_ZN7ee34301C1Ev),
+ NSPAIR(_ZN7ee34301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd4301;
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static Base_Class bases_ee34301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34301[];
+extern void _ZN7ee343013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343013fooEv,_ZTv0_n16_N7ee343013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343013fooEv,_ZThn8_N7ee343013fooEv)() __attribute__((weak));
+extern void _ZN6dd43013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee343013fooEv,_ZTv0_n12_N7ee343013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee343013fooEv,_ZThn20_N7ee343013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34301[0]),
+ (VTBL_ENTRY)&_ZN7ee343013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343013fooEv,_ZTv0_n16_N7ee343013fooEv),
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343013fooEv,_ZTv0_n12_N7ee343013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4301__7ee34301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd4301__7ee34301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd4301__7ee34301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4301__7ee34301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee34301[] = {
+ {&(_ZTV7ee34301[4]), 4,16},
+ {&(_ZTV7ee34301[10]), 10,16},
+ {&(_ZTV7ee34301[15]), 15,16},
+ {&(_tg__ZTV6dd4301__7ee34301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd4301__7ee34301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd4301__7ee34301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4301__7ee34301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34301[];
+extern VTBL_ENTRY _ZTV7ee34301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34301[];
+static VTBL_ENTRY alt_thunk_names436[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343013fooEv,_ZTv0_n12_N7ee343013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee343013fooEv,_ZThn20_N7ee343013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343013fooEv,_ZTv0_n16_N7ee343013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343013fooEv,_ZThn8_N7ee343013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34301 = { "ee34301", // class name
+ bases_ee34301, 4,
+ &(vtc_ee34301[0]), // expected_vtbl_contents
+ &(vtt_ee34301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34301),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names436,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44301 : dd4301 {
+ int e;
+ virtual void bar(); // _ZN7ee443013barEv
+ ~ee44301(); // tgen
+ ee44301(); // tgen
+};
+//SIG(1 ee44301) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44301 ::bar(){vfunc_called(this, "_ZN7ee443013barEv");}
+ee44301 ::~ee44301(){ note_dtor("ee44301", this);} // tgen
+ee44301 ::ee44301(){ note_ctor("ee44301", this);} // tgen
+
+static void Test_ee44301()
+{
+ extern Class_Descriptor cd_ee44301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44301, buf);
+ ee44301 *dp, &lv = *(dp=new (buf) ee44301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee44301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd4301*), ABISELECT(24,16), "ee44301");
+ check_base_class_offset(lv, (cc301*)(dd4301*), 0, "ee44301");
+ check_base_class_offset(lv, (dd4301*), 0, "ee44301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44301.e");
+ test_class_info(&lv, &cd_ee44301);
+ dp->~ee44301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44301(Test_ee44301, "ee44301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44301C1Ev();
+extern void _ZN7ee44301D1Ev();
+Name_Map name_map_ee44301[] = {
+ NSPAIR(_ZN7ee44301C1Ev),
+ NSPAIR(_ZN7ee44301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd4301;
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static Base_Class bases_ee44301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN7ee443013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN7ee443013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4301__7ee44301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd4301__7ee44301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd4301__7ee44301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4301__7ee44301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee44301[] = {
+ {&(_ZTV7ee44301[3]), 3,9},
+ {&(_tg__ZTV6dd4301__7ee44301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd4301__7ee44301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd4301__7ee44301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4301__7ee44301[3]), 3,4},
+ {&(_ZTV7ee44301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee44301[];
+extern VTBL_ENTRY _ZTV7ee44301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44301[];
+static VTBL_ENTRY alt_thunk_names437[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44301 = { "ee44301", // class name
+ bases_ee44301, 4,
+ &(vtc_ee44301[0]), // expected_vtbl_contents
+ &(vtt_ee44301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names437,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54301 : virtual dd4301 {
+ int e;
+ virtual void bar(); // _ZN7ee543013barEv
+ ~ee54301(); // tgen
+ ee54301(); // tgen
+};
+//SIG(1 ee54301) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54301 ::bar(){vfunc_called(this, "_ZN7ee543013barEv");}
+ee54301 ::~ee54301(){ note_dtor("ee54301", this);} // tgen
+ee54301 ::ee54301(){ note_ctor("ee54301", this);} // tgen
+
+static void Test_ee54301()
+{
+ extern Class_Descriptor cd_ee54301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54301, buf);
+ ee54301 *dp, &lv = *(dp=new (buf) ee54301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee54301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd4301*), ABISELECT(32,20), "ee54301");
+ check_base_class_offset(lv, (cc301*)(dd4301*), ABISELECT(16,8), "ee54301");
+ check_base_class_offset(lv, (dd4301*), ABISELECT(16,8), "ee54301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54301.e");
+ test_class_info(&lv, &cd_ee54301);
+ dp->~ee54301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54301(Test_ee54301, "ee54301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54301C1Ev();
+extern void _ZN7ee54301D1Ev();
+Name_Map name_map_ee54301[] = {
+ NSPAIR(_ZN7ee54301C1Ev),
+ NSPAIR(_ZN7ee54301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd4301;
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static Base_Class bases_ee54301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54301[];
+extern void _ZN7ee543013barEv();
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543013barEv,_ZTv0_n20_N7ee543013barEv)();
+extern void ABISELECT(_ZThn16_N7ee543013barEv,_ZThn8_N7ee543013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54301[0]),
+ (VTBL_ENTRY)&_ZN7ee543013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543013barEv,_ZTv0_n20_N7ee543013barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4301__7ee54301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd4301__7ee54301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd4301__7ee54301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4301__7ee54301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee54301[] = {
+ {&(_ZTV7ee54301[4]), 4,16},
+ {&(_ZTV7ee54301[10]), 10,16},
+ {&(_ZTV7ee54301[15]), 15,16},
+ {&(_tg__ZTV6dd4301__7ee54301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd4301__7ee54301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd4301__7ee54301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4301__7ee54301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54301[];
+extern VTBL_ENTRY _ZTV7ee54301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54301[];
+static VTBL_ENTRY alt_thunk_names438[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543013barEv,_ZTv0_n20_N7ee543013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543013barEv,_ZThn8_N7ee543013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54301 = { "ee54301", // class name
+ bases_ee54301, 4,
+ &(vtc_ee54301[0]), // expected_vtbl_contents
+ &(vtt_ee54301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54301),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names438,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64301 : dd4301 {
+ int e;
+ virtual void foo(); // _ZN7ee643013fooEv
+ virtual void bar(); // _ZN7ee643013barEv
+ ~ee64301(); // tgen
+ ee64301(); // tgen
+};
+//SIG(1 ee64301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64301 ::foo(){vfunc_called(this, "_ZN7ee643013fooEv");}
+void ee64301 ::bar(){vfunc_called(this, "_ZN7ee643013barEv");}
+ee64301 ::~ee64301(){ note_dtor("ee64301", this);} // tgen
+ee64301 ::ee64301(){ note_ctor("ee64301", this);} // tgen
+
+static void Test_ee64301()
+{
+ extern Class_Descriptor cd_ee64301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64301, buf);
+ ee64301 *dp, &lv = *(dp=new (buf) ee64301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee64301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd4301*), ABISELECT(24,16), "ee64301");
+ check_base_class_offset(lv, (cc301*)(dd4301*), 0, "ee64301");
+ check_base_class_offset(lv, (dd4301*), 0, "ee64301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64301.e");
+ test_class_info(&lv, &cd_ee64301);
+ dp->~ee64301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64301(Test_ee64301, "ee64301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64301C1Ev();
+extern void _ZN7ee64301D1Ev();
+Name_Map name_map_ee64301[] = {
+ NSPAIR(_ZN7ee64301C1Ev),
+ NSPAIR(_ZN7ee64301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd4301;
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static Base_Class bases_ee64301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64301[];
+extern void _ZN7ee643013fooEv();
+extern void _ZN7ee643013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee643013fooEv,_ZTv0_n12_N7ee643013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee643013fooEv,_ZThn16_N7ee643013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64301[0]),
+ (VTBL_ENTRY)&_ZN7ee643013fooEv,
+ (VTBL_ENTRY)&_ZN7ee643013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643013fooEv,_ZTv0_n12_N7ee643013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4301__7ee64301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd4301__7ee64301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd4301__7ee64301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4301__7ee64301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee64301[] = {
+ {&(_ZTV7ee64301[3]), 3,9},
+ {&(_tg__ZTV6dd4301__7ee64301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd4301__7ee64301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd4301__7ee64301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4301__7ee64301[3]), 3,4},
+ {&(_ZTV7ee64301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64301[];
+extern VTBL_ENTRY _ZTV7ee64301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64301[];
+static VTBL_ENTRY alt_thunk_names439[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643013fooEv,_ZTv0_n12_N7ee643013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643013fooEv,_ZThn16_N7ee643013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64301 = { "ee64301", // class name
+ bases_ee64301, 4,
+ &(vtc_ee64301[0]), // expected_vtbl_contents
+ &(vtt_ee64301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names439,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74301 : virtual dd4301 {
+ int e;
+ virtual void foo(); // _ZN7ee743013fooEv
+ virtual void bar(); // _ZN7ee743013barEv
+ ~ee74301(); // tgen
+ ee74301(); // tgen
+};
+//SIG(1 ee74301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74301 ::foo(){vfunc_called(this, "_ZN7ee743013fooEv");}
+void ee74301 ::bar(){vfunc_called(this, "_ZN7ee743013barEv");}
+ee74301 ::~ee74301(){ note_dtor("ee74301", this);} // tgen
+ee74301 ::ee74301(){ note_ctor("ee74301", this);} // tgen
+
+static void Test_ee74301()
+{
+ extern Class_Descriptor cd_ee74301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74301, buf);
+ ee74301 *dp, &lv = *(dp=new (buf) ee74301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee74301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd4301*), ABISELECT(32,20), "ee74301");
+ check_base_class_offset(lv, (cc301*)(dd4301*), ABISELECT(16,8), "ee74301");
+ check_base_class_offset(lv, (dd4301*), ABISELECT(16,8), "ee74301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74301.e");
+ test_class_info(&lv, &cd_ee74301);
+ dp->~ee74301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74301(Test_ee74301, "ee74301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74301C1Ev();
+extern void _ZN7ee74301D1Ev();
+Name_Map name_map_ee74301[] = {
+ NSPAIR(_ZN7ee74301C1Ev),
+ NSPAIR(_ZN7ee74301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd4301;
+extern VTBL_ENTRY _ZTI6dd4301[];
+extern VTBL_ENTRY _ZTV6dd4301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4301[];
+static Base_Class bases_ee74301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74301[];
+extern void _ZN7ee743013fooEv();
+extern void _ZN7ee743013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743013fooEv,_ZTv0_n16_N7ee743013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743013fooEv,_ZThn8_N7ee743013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743013barEv,_ZTv0_n20_N7ee743013barEv)();
+extern void ABISELECT(_ZThn16_N7ee743013barEv,_ZThn8_N7ee743013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743013fooEv,_ZTv0_n12_N7ee743013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee743013fooEv,_ZThn20_N7ee743013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74301[0]),
+ (VTBL_ENTRY)&_ZN7ee743013fooEv,
+ (VTBL_ENTRY)&_ZN7ee743013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743013fooEv,_ZTv0_n16_N7ee743013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743013barEv,_ZTv0_n20_N7ee743013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743013fooEv,_ZTv0_n12_N7ee743013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74301[];
+extern void _ZN5cc3013fooEv();
+extern void _ZN6dd43013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4301__7ee74301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ (VTBL_ENTRY)&_ZN6dd43013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd4301__7ee74301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd4301__7ee74301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4301__7ee74301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee74301[] = {
+ {&(_ZTV7ee74301[4]), 4,17},
+ {&(_ZTV7ee74301[11]), 11,17},
+ {&(_ZTV7ee74301[16]), 16,17},
+ {&(_tg__ZTV6dd4301__7ee74301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd4301__7ee74301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd4301__7ee74301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4301__7ee74301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74301[];
+extern VTBL_ENTRY _ZTV7ee74301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74301[];
+static VTBL_ENTRY alt_thunk_names440[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743013fooEv,_ZTv0_n12_N7ee743013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743013fooEv,_ZThn20_N7ee743013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743013barEv,_ZTv0_n20_N7ee743013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743013barEv,_ZThn8_N7ee743013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743013fooEv,_ZTv0_n16_N7ee743013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743013fooEv,_ZThn8_N7ee743013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74301 = { "ee74301", // class name
+ bases_ee74301, 4,
+ &(vtc_ee74301[0]), // expected_vtbl_contents
+ &(vtt_ee74301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74301),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names440,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5301 : virtual cc301 {
+ int d;
+ virtual void bar(); // _ZN6dd53013barEv
+ ~dd5301(); // tgen
+ dd5301(); // tgen
+};
+//SIG(-1 dd5301) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd5301 ::bar(){vfunc_called(this, "_ZN6dd53013barEv");}
+dd5301 ::~dd5301(){ note_dtor("dd5301", this);} // tgen
+dd5301 ::dd5301(){ note_ctor("dd5301", this);} // tgen
+
+static void Test_dd5301()
+{
+ extern Class_Descriptor cd_dd5301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5301, buf);
+ dd5301 *dp, &lv = *(dp=new (buf) dd5301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd5301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,16), "dd5301");
+ check_base_class_offset(lv, (cc301*), ABISELECT(16,8), "dd5301");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5301.d");
+ test_class_info(&lv, &cd_dd5301);
+ dp->~dd5301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5301(Test_dd5301, "dd5301", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5301C1Ev();
+extern void _ZN6dd5301D1Ev();
+Name_Map name_map_dd5301[] = {
+ NSPAIR(_ZN6dd5301C1Ev),
+ NSPAIR(_ZN6dd5301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static Base_Class bases_dd5301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 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 _ZTI6dd5301[];
+extern void _ZN6dd53013barEv();
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__6dd5301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_dd5301[] = {
+ {&(_ZTV6dd5301[4]), 4,14},
+ {&(_ZTV6dd5301[9]), 9,14},
+ {&(_ZTV6dd5301[13]), 13,14},
+ {&(_tg__ZTV5cc301__6dd5301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__6dd5301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static VTBL_ENTRY alt_thunk_names441[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5301 = { "dd5301", // class name
+ bases_dd5301, 3,
+ &(vtc_dd5301[0]), // expected_vtbl_contents
+ &(vtt_dd5301[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5301),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names441,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05301 : dd5301 {
+ int e;
+ ~ee05301(); // tgen
+ ee05301(); // tgen
+};
+//SIG(1 ee05301) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05301 ::~ee05301(){ note_dtor("ee05301", this);} // tgen
+ee05301 ::ee05301(){ note_ctor("ee05301", this);} // tgen
+
+static void Test_ee05301()
+{
+ extern Class_Descriptor cd_ee05301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05301, buf);
+ ee05301 *dp, &lv = *(dp=new (buf) ee05301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee05301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee05301");
+ check_base_class_offset(lv, (cc301*)(dd5301*), ABISELECT(16,12), "ee05301");
+ check_base_class_offset(lv, (dd5301*), 0, "ee05301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05301.e");
+ test_class_info(&lv, &cd_ee05301);
+ dp->~ee05301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05301(Test_ee05301, "ee05301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05301C1Ev();
+extern void _ZN7ee05301D1Ev();
+Name_Map name_map_ee05301[] = {
+ NSPAIR(_ZN7ee05301C1Ev),
+ NSPAIR(_ZN7ee05301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd5301;
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static Base_Class bases_ee05301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05301[];
+extern void _ZN6dd53013barEv();
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05301[];
+extern void _ZN6dd53013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5301__7ee05301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301__7ee05301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5301__7ee05301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee05301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee05301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee05301[] = {
+ {&(_ZTV7ee05301[4]), 4,14},
+ {&(_tg__ZTV6dd5301__7ee05301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd5301__7ee05301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5301__7ee05301[3]), 3,4},
+ {&(_ZTV7ee05301[9]), 9,14},
+ {&(_ZTV7ee05301[13]), 13,14},
+ {&(_tg__ZTV5cc301__7ee05301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee05301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05301[];
+extern VTBL_ENTRY _ZTV7ee05301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05301[];
+static VTBL_ENTRY alt_thunk_names442[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05301 = { "ee05301", // class name
+ bases_ee05301, 4,
+ &(vtc_ee05301[0]), // expected_vtbl_contents
+ &(vtt_ee05301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names442,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15301 : virtual dd5301 {
+ int e;
+ ~ee15301(); // tgen
+ ee15301(); // tgen
+};
+//SIG(1 ee15301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15301 ::~ee15301(){ note_dtor("ee15301", this);} // tgen
+ee15301 ::ee15301(){ note_ctor("ee15301", this);} // tgen
+
+static void Test_ee15301()
+{
+ extern Class_Descriptor cd_ee15301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15301, buf);
+ ee15301 *dp, &lv = *(dp=new (buf) ee15301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee15301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee15301");
+ check_base_class_offset(lv, (cc301*)(dd5301*), ABISELECT(32,16), "ee15301");
+ check_base_class_offset(lv, (dd5301*), ABISELECT(16,8), "ee15301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15301.e");
+ test_class_info(&lv, &cd_ee15301);
+ dp->~ee15301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15301(Test_ee15301, "ee15301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15301C1Ev();
+extern void _ZN7ee15301D1Ev();
+Name_Map name_map_ee15301[] = {
+ NSPAIR(_ZN7ee15301C1Ev),
+ NSPAIR(_ZN7ee15301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd5301;
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static Base_Class bases_ee15301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15301[];
+extern void _ZN6dd53013barEv();
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15301[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15301[];
+extern void _ZN6dd53013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5301__7ee15301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301__7ee15301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5301__7ee15301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee15301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee15301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee15301[] = {
+ {&(_ZTV7ee15301[5]), 5,20},
+ {&(_ZTV7ee15301[10]), 10,20},
+ {&(_ZTV7ee15301[15]), 15,20},
+ {&(_ZTV7ee15301[19]), 19,20},
+ {&(_tg__ZTV6dd5301__7ee15301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd5301__7ee15301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5301__7ee15301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee15301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee15301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15301[];
+extern VTBL_ENTRY _ZTV7ee15301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15301[];
+static VTBL_ENTRY alt_thunk_names443[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15301 = { "ee15301", // class name
+ bases_ee15301, 4,
+ &(vtc_ee15301[0]), // expected_vtbl_contents
+ &(vtt_ee15301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15301),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names443,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25301 : dd5301 {
+ int e;
+ virtual void foo(); // _ZN7ee253013fooEv
+ ~ee25301(); // tgen
+ ee25301(); // tgen
+};
+//SIG(1 ee25301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25301 ::foo(){vfunc_called(this, "_ZN7ee253013fooEv");}
+ee25301 ::~ee25301(){ note_dtor("ee25301", this);} // tgen
+ee25301 ::ee25301(){ note_ctor("ee25301", this);} // tgen
+
+static void Test_ee25301()
+{
+ extern Class_Descriptor cd_ee25301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25301, buf);
+ ee25301 *dp, &lv = *(dp=new (buf) ee25301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee25301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee25301");
+ check_base_class_offset(lv, (cc301*)(dd5301*), ABISELECT(16,12), "ee25301");
+ check_base_class_offset(lv, (dd5301*), 0, "ee25301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25301.e");
+ test_class_info(&lv, &cd_ee25301);
+ dp->~ee25301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25301(Test_ee25301, "ee25301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25301C1Ev();
+extern void _ZN7ee25301D1Ev();
+Name_Map name_map_ee25301[] = {
+ NSPAIR(_ZN7ee25301C1Ev),
+ NSPAIR(_ZN7ee25301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd5301;
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static Base_Class bases_ee25301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25301[];
+extern void _ZN6dd53013barEv();
+extern void _ZN7ee253013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253013fooEv,_ZTv0_n16_N7ee253013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253013fooEv,_ZThn12_N7ee253013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253013fooEv,_ZTv0_n12_N7ee253013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee253013fooEv,_ZThn20_N7ee253013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+ (VTBL_ENTRY)&_ZN7ee253013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253013fooEv,_ZTv0_n16_N7ee253013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253013fooEv,_ZTv0_n12_N7ee253013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25301[];
+extern void _ZN6dd53013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5301__7ee25301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301__7ee25301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5301__7ee25301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee25301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee25301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee25301[] = {
+ {&(_ZTV7ee25301[4]), 4,15},
+ {&(_tg__ZTV6dd5301__7ee25301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd5301__7ee25301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5301__7ee25301[3]), 3,4},
+ {&(_ZTV7ee25301[10]), 10,15},
+ {&(_ZTV7ee25301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee25301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee25301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25301[];
+extern VTBL_ENTRY _ZTV7ee25301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25301[];
+static VTBL_ENTRY alt_thunk_names444[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253013fooEv,_ZTv0_n12_N7ee253013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee253013fooEv,_ZThn20_N7ee253013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253013fooEv,_ZTv0_n16_N7ee253013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253013fooEv,_ZThn12_N7ee253013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25301 = { "ee25301", // class name
+ bases_ee25301, 4,
+ &(vtc_ee25301[0]), // expected_vtbl_contents
+ &(vtt_ee25301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names444,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35301 : virtual dd5301 {
+ int e;
+ virtual void foo(); // _ZN7ee353013fooEv
+ ~ee35301(); // tgen
+ ee35301(); // tgen
+};
+//SIG(1 ee35301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35301 ::foo(){vfunc_called(this, "_ZN7ee353013fooEv");}
+ee35301 ::~ee35301(){ note_dtor("ee35301", this);} // tgen
+ee35301 ::ee35301(){ note_ctor("ee35301", this);} // tgen
+
+static void Test_ee35301()
+{
+ extern Class_Descriptor cd_ee35301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35301, buf);
+ ee35301 *dp, &lv = *(dp=new (buf) ee35301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee35301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee35301");
+ check_base_class_offset(lv, (cc301*)(dd5301*), ABISELECT(32,16), "ee35301");
+ check_base_class_offset(lv, (dd5301*), ABISELECT(16,8), "ee35301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35301.e");
+ test_class_info(&lv, &cd_ee35301);
+ dp->~ee35301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35301(Test_ee35301, "ee35301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35301C1Ev();
+extern void _ZN7ee35301D1Ev();
+Name_Map name_map_ee35301[] = {
+ NSPAIR(_ZN7ee35301C1Ev),
+ NSPAIR(_ZN7ee35301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd5301;
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static Base_Class bases_ee35301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35301[];
+extern void _ZN7ee353013fooEv();
+extern void _ZN6dd53013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353013fooEv,_ZTv0_n16_N7ee353013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353013fooEv,_ZThn16_N7ee353013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353013fooEv,_ZTv0_n12_N7ee353013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee353013fooEv,_ZThn24_N7ee353013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35301[0]),
+ (VTBL_ENTRY)&_ZN7ee353013fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353013fooEv,_ZTv0_n16_N7ee353013fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353013fooEv,_ZTv0_n12_N7ee353013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35301[];
+extern void _ZN6dd53013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5301__7ee35301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301__7ee35301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5301__7ee35301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee35301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee35301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee35301[] = {
+ {&(_ZTV7ee35301[5]), 5,21},
+ {&(_ZTV7ee35301[11]), 11,21},
+ {&(_ZTV7ee35301[16]), 16,21},
+ {&(_ZTV7ee35301[20]), 20,21},
+ {&(_tg__ZTV6dd5301__7ee35301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd5301__7ee35301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5301__7ee35301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee35301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee35301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35301[];
+extern VTBL_ENTRY _ZTV7ee35301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35301[];
+static VTBL_ENTRY alt_thunk_names445[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353013fooEv,_ZTv0_n12_N7ee353013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee353013fooEv,_ZThn24_N7ee353013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353013fooEv,_ZTv0_n16_N7ee353013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353013fooEv,_ZThn16_N7ee353013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35301 = { "ee35301", // class name
+ bases_ee35301, 4,
+ &(vtc_ee35301[0]), // expected_vtbl_contents
+ &(vtt_ee35301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35301),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names445,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45301 : dd5301 {
+ int e;
+ virtual void bar(); // _ZN7ee453013barEv
+ ~ee45301(); // tgen
+ ee45301(); // tgen
+};
+//SIG(1 ee45301) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45301 ::bar(){vfunc_called(this, "_ZN7ee453013barEv");}
+ee45301 ::~ee45301(){ note_dtor("ee45301", this);} // tgen
+ee45301 ::ee45301(){ note_ctor("ee45301", this);} // tgen
+
+static void Test_ee45301()
+{
+ extern Class_Descriptor cd_ee45301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45301, buf);
+ ee45301 *dp, &lv = *(dp=new (buf) ee45301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee45301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee45301");
+ check_base_class_offset(lv, (cc301*)(dd5301*), ABISELECT(16,12), "ee45301");
+ check_base_class_offset(lv, (dd5301*), 0, "ee45301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45301.e");
+ test_class_info(&lv, &cd_ee45301);
+ dp->~ee45301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45301(Test_ee45301, "ee45301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45301C1Ev();
+extern void _ZN7ee45301D1Ev();
+Name_Map name_map_ee45301[] = {
+ NSPAIR(_ZN7ee45301C1Ev),
+ NSPAIR(_ZN7ee45301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd5301;
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static Base_Class bases_ee45301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45301[];
+extern void _ZN7ee453013barEv();
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45301[0]),
+ (VTBL_ENTRY)&_ZN7ee453013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45301[];
+extern void _ZN6dd53013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5301__7ee45301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301__7ee45301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5301__7ee45301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee45301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee45301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee45301[] = {
+ {&(_ZTV7ee45301[4]), 4,14},
+ {&(_tg__ZTV6dd5301__7ee45301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd5301__7ee45301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5301__7ee45301[3]), 3,4},
+ {&(_ZTV7ee45301[9]), 9,14},
+ {&(_ZTV7ee45301[13]), 13,14},
+ {&(_tg__ZTV5cc301__7ee45301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee45301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45301[];
+extern VTBL_ENTRY _ZTV7ee45301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45301[];
+static VTBL_ENTRY alt_thunk_names446[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45301 = { "ee45301", // class name
+ bases_ee45301, 4,
+ &(vtc_ee45301[0]), // expected_vtbl_contents
+ &(vtt_ee45301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45301),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names446,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55301 : virtual dd5301 {
+ int e;
+ virtual void bar(); // _ZN7ee553013barEv
+ ~ee55301(); // tgen
+ ee55301(); // tgen
+};
+//SIG(1 ee55301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55301 ::bar(){vfunc_called(this, "_ZN7ee553013barEv");}
+ee55301 ::~ee55301(){ note_dtor("ee55301", this);} // tgen
+ee55301 ::ee55301(){ note_ctor("ee55301", this);} // tgen
+
+static void Test_ee55301()
+{
+ extern Class_Descriptor cd_ee55301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55301, buf);
+ ee55301 *dp, &lv = *(dp=new (buf) ee55301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee55301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee55301");
+ check_base_class_offset(lv, (cc301*)(dd5301*), ABISELECT(32,16), "ee55301");
+ check_base_class_offset(lv, (dd5301*), ABISELECT(16,8), "ee55301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55301.e");
+ test_class_info(&lv, &cd_ee55301);
+ dp->~ee55301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55301(Test_ee55301, "ee55301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55301C1Ev();
+extern void _ZN7ee55301D1Ev();
+Name_Map name_map_ee55301[] = {
+ NSPAIR(_ZN7ee55301C1Ev),
+ NSPAIR(_ZN7ee55301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd5301;
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static Base_Class bases_ee55301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55301[];
+extern void _ZN7ee553013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553013barEv,_ZTv0_n20_N7ee553013barEv)();
+extern void ABISELECT(_ZThn16_N7ee553013barEv,_ZThn8_N7ee553013barEv)() __attribute__((weak));
+extern void _ZN5cc3013fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55301[0]),
+ (VTBL_ENTRY)&_ZN7ee553013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553013barEv,_ZTv0_n20_N7ee553013barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55301[];
+extern void _ZN6dd53013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5301__7ee55301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301__7ee55301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5301__7ee55301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee55301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee55301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee55301[] = {
+ {&(_ZTV7ee55301[5]), 5,21},
+ {&(_ZTV7ee55301[11]), 11,21},
+ {&(_ZTV7ee55301[16]), 16,21},
+ {&(_ZTV7ee55301[20]), 20,21},
+ {&(_tg__ZTV6dd5301__7ee55301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd5301__7ee55301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5301__7ee55301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee55301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee55301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55301[];
+extern VTBL_ENTRY _ZTV7ee55301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55301[];
+static VTBL_ENTRY alt_thunk_names447[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553013barEv,_ZTv0_n20_N7ee553013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553013barEv,_ZThn8_N7ee553013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55301 = { "ee55301", // class name
+ bases_ee55301, 4,
+ &(vtc_ee55301[0]), // expected_vtbl_contents
+ &(vtt_ee55301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55301),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names447,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65301 : dd5301 {
+ int e;
+ virtual void foo(); // _ZN7ee653013fooEv
+ virtual void bar(); // _ZN7ee653013barEv
+ ~ee65301(); // tgen
+ ee65301(); // tgen
+};
+//SIG(1 ee65301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65301 ::foo(){vfunc_called(this, "_ZN7ee653013fooEv");}
+void ee65301 ::bar(){vfunc_called(this, "_ZN7ee653013barEv");}
+ee65301 ::~ee65301(){ note_dtor("ee65301", this);} // tgen
+ee65301 ::ee65301(){ note_ctor("ee65301", this);} // tgen
+
+static void Test_ee65301()
+{
+ extern Class_Descriptor cd_ee65301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65301, buf);
+ ee65301 *dp, &lv = *(dp=new (buf) ee65301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee65301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee65301");
+ check_base_class_offset(lv, (cc301*)(dd5301*), ABISELECT(16,12), "ee65301");
+ check_base_class_offset(lv, (dd5301*), 0, "ee65301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65301.e");
+ test_class_info(&lv, &cd_ee65301);
+ dp->~ee65301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65301(Test_ee65301, "ee65301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65301C1Ev();
+extern void _ZN7ee65301D1Ev();
+Name_Map name_map_ee65301[] = {
+ NSPAIR(_ZN7ee65301C1Ev),
+ NSPAIR(_ZN7ee65301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd5301;
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static Base_Class bases_ee65301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65301[];
+extern void _ZN7ee653013barEv();
+extern void _ZN7ee653013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653013fooEv,_ZTv0_n16_N7ee653013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653013fooEv,_ZThn12_N7ee653013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653013fooEv,_ZTv0_n12_N7ee653013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee653013fooEv,_ZThn20_N7ee653013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65301[0]),
+ (VTBL_ENTRY)&_ZN7ee653013barEv,
+ (VTBL_ENTRY)&_ZN7ee653013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653013fooEv,_ZTv0_n16_N7ee653013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653013fooEv,_ZTv0_n12_N7ee653013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65301[];
+extern void _ZN6dd53013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5301__7ee65301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301__7ee65301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5301__7ee65301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee65301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee65301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee65301[] = {
+ {&(_ZTV7ee65301[4]), 4,15},
+ {&(_tg__ZTV6dd5301__7ee65301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd5301__7ee65301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5301__7ee65301[3]), 3,4},
+ {&(_ZTV7ee65301[10]), 10,15},
+ {&(_ZTV7ee65301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee65301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee65301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65301[];
+extern VTBL_ENTRY _ZTV7ee65301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65301[];
+static VTBL_ENTRY alt_thunk_names448[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653013fooEv,_ZTv0_n12_N7ee653013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653013fooEv,_ZThn20_N7ee653013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653013fooEv,_ZTv0_n16_N7ee653013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653013fooEv,_ZThn12_N7ee653013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65301 = { "ee65301", // class name
+ bases_ee65301, 4,
+ &(vtc_ee65301[0]), // expected_vtbl_contents
+ &(vtt_ee65301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names448,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75301 : virtual dd5301 {
+ int e;
+ virtual void foo(); // _ZN7ee753013fooEv
+ virtual void bar(); // _ZN7ee753013barEv
+ ~ee75301(); // tgen
+ ee75301(); // tgen
+};
+//SIG(1 ee75301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75301 ::foo(){vfunc_called(this, "_ZN7ee753013fooEv");}
+void ee75301 ::bar(){vfunc_called(this, "_ZN7ee753013barEv");}
+ee75301 ::~ee75301(){ note_dtor("ee75301", this);} // tgen
+ee75301 ::ee75301(){ note_ctor("ee75301", this);} // tgen
+
+static void Test_ee75301()
+{
+ extern Class_Descriptor cd_ee75301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75301, buf);
+ ee75301 *dp, &lv = *(dp=new (buf) ee75301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee75301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee75301");
+ check_base_class_offset(lv, (cc301*)(dd5301*), ABISELECT(32,16), "ee75301");
+ check_base_class_offset(lv, (dd5301*), ABISELECT(16,8), "ee75301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75301.e");
+ test_class_info(&lv, &cd_ee75301);
+ dp->~ee75301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75301(Test_ee75301, "ee75301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75301C1Ev();
+extern void _ZN7ee75301D1Ev();
+Name_Map name_map_ee75301[] = {
+ NSPAIR(_ZN7ee75301C1Ev),
+ NSPAIR(_ZN7ee75301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd5301;
+extern VTBL_ENTRY _ZTI6dd5301[];
+extern VTBL_ENTRY _ZTV6dd5301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5301[];
+static Base_Class bases_ee75301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5301, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75301[];
+extern void _ZN7ee753013fooEv();
+extern void _ZN7ee753013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753013barEv,_ZTv0_n20_N7ee753013barEv)();
+extern void ABISELECT(_ZThn16_N7ee753013barEv,_ZThn8_N7ee753013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753013fooEv,_ZTv0_n16_N7ee753013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753013fooEv,_ZThn16_N7ee753013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753013fooEv,_ZTv0_n12_N7ee753013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee753013fooEv,_ZThn24_N7ee753013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75301[0]),
+ (VTBL_ENTRY)&_ZN7ee753013fooEv,
+ (VTBL_ENTRY)&_ZN7ee753013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753013barEv,_ZTv0_n20_N7ee753013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753013fooEv,_ZTv0_n16_N7ee753013fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753013fooEv,_ZTv0_n12_N7ee753013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75301[];
+extern void _ZN6dd53013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5301__7ee75301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN6dd53013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd5301__7ee75301[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5301__7ee75301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee75301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee75301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee75301[] = {
+ {&(_ZTV7ee75301[5]), 5,22},
+ {&(_ZTV7ee75301[12]), 12,22},
+ {&(_ZTV7ee75301[17]), 17,22},
+ {&(_ZTV7ee75301[21]), 21,22},
+ {&(_tg__ZTV6dd5301__7ee75301[4]), 4,5},
+ {&(_tg__ZTV5cc301__6dd5301__7ee75301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5301__7ee75301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee75301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee75301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75301[];
+extern VTBL_ENTRY _ZTV7ee75301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75301[];
+static VTBL_ENTRY alt_thunk_names449[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753013fooEv,_ZTv0_n12_N7ee753013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753013fooEv,_ZThn24_N7ee753013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753013fooEv,_ZTv0_n16_N7ee753013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753013fooEv,_ZThn16_N7ee753013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753013barEv,_ZTv0_n20_N7ee753013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753013barEv,_ZThn8_N7ee753013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75301 = { "ee75301", // class name
+ bases_ee75301, 4,
+ &(vtc_ee75301[0]), // expected_vtbl_contents
+ &(vtt_ee75301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75301),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names449,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6301 : cc301 {
+ int d;
+ virtual void bar(); // _ZN6dd63013barEv
+ virtual void foo(); // _ZN6dd63013fooEv
+ ~dd6301(); // tgen
+ dd6301(); // tgen
+};
+//SIG(-1 dd6301) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6301 ::bar(){vfunc_called(this, "_ZN6dd63013barEv");}
+void dd6301 ::foo(){vfunc_called(this, "_ZN6dd63013fooEv");}
+dd6301 ::~dd6301(){ note_dtor("dd6301", this);} // tgen
+dd6301 ::dd6301(){ note_ctor("dd6301", this);} // tgen
+
+static void Test_dd6301()
+{
+ extern Class_Descriptor cd_dd6301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6301, buf);
+ dd6301 *dp, &lv = *(dp=new (buf) dd6301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd6301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(16,12), "dd6301");
+ check_base_class_offset(lv, (cc301*), 0, "dd6301");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6301.d");
+ test_class_info(&lv, &cd_dd6301);
+ dp->~dd6301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6301(Test_dd6301, "dd6301", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6301C1Ev();
+extern void _ZN6dd6301D1Ev();
+Name_Map name_map_dd6301[] = {
+ NSPAIR(_ZN6dd6301C1Ev),
+ NSPAIR(_ZN6dd6301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static Base_Class bases_dd6301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd6301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__6dd6301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_dd6301[] = {
+ {&(_ZTV6dd6301[3]), 3,9},
+ {&(_tg__ZTV5cc301__6dd6301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__6dd6301[3]), 3,4},
+ {&(_ZTV6dd6301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static VTBL_ENTRY alt_thunk_names450[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6301 = { "dd6301", // class name
+ bases_dd6301, 3,
+ &(vtc_dd6301[0]), // expected_vtbl_contents
+ &(vtt_dd6301[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6301),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names450,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06301 : dd6301 {
+ int e;
+ ~ee06301(); // tgen
+ ee06301(); // tgen
+};
+//SIG(1 ee06301) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06301 ::~ee06301(){ note_dtor("ee06301", this);} // tgen
+ee06301 ::ee06301(){ note_ctor("ee06301", this);} // tgen
+
+static void Test_ee06301()
+{
+ extern Class_Descriptor cd_ee06301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06301, buf);
+ ee06301 *dp, &lv = *(dp=new (buf) ee06301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee06301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd6301*), ABISELECT(24,16), "ee06301");
+ check_base_class_offset(lv, (cc301*)(dd6301*), 0, "ee06301");
+ check_base_class_offset(lv, (dd6301*), 0, "ee06301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06301.e");
+ test_class_info(&lv, &cd_ee06301);
+ dp->~ee06301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06301(Test_ee06301, "ee06301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06301C1Ev();
+extern void _ZN7ee06301D1Ev();
+Name_Map name_map_ee06301[] = {
+ NSPAIR(_ZN7ee06301C1Ev),
+ NSPAIR(_ZN7ee06301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd6301;
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static Base_Class bases_ee06301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6301__7ee06301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd6301__7ee06301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd6301__7ee06301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6301__7ee06301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+static VTT_ENTRY vtt_ee06301[] = {
+ {&(_ZTV7ee06301[3]), 3,9},
+ {&(_tg__ZTV6dd6301__7ee06301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd6301__7ee06301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd6301__7ee06301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6301__7ee06301[3]), 3,4},
+ {&(_ZTV7ee06301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06301[];
+extern VTBL_ENTRY _ZTV7ee06301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06301[];
+static VTBL_ENTRY alt_thunk_names451[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06301 = { "ee06301", // class name
+ bases_ee06301, 4,
+ &(vtc_ee06301[0]), // expected_vtbl_contents
+ &(vtt_ee06301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names451,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16301 : virtual dd6301 {
+ int e;
+ ~ee16301(); // tgen
+ ee16301(); // tgen
+};
+//SIG(1 ee16301) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16301 ::~ee16301(){ note_dtor("ee16301", this);} // tgen
+ee16301 ::ee16301(){ note_ctor("ee16301", this);} // tgen
+
+static void Test_ee16301()
+{
+ extern Class_Descriptor cd_ee16301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16301, buf);
+ ee16301 *dp, &lv = *(dp=new (buf) ee16301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee16301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd6301*), ABISELECT(32,20), "ee16301");
+ check_base_class_offset(lv, (cc301*)(dd6301*), ABISELECT(16,8), "ee16301");
+ check_base_class_offset(lv, (dd6301*), ABISELECT(16,8), "ee16301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16301.e");
+ test_class_info(&lv, &cd_ee16301);
+ dp->~ee16301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16301(Test_ee16301, "ee16301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16301C1Ev();
+extern void _ZN7ee16301D1Ev();
+Name_Map name_map_ee16301[] = {
+ NSPAIR(_ZN7ee16301C1Ev),
+ NSPAIR(_ZN7ee16301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd6301;
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static Base_Class bases_ee16301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6301, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16301[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6301__7ee16301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd6301__7ee16301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd6301__7ee16301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6301__7ee16301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+static VTT_ENTRY vtt_ee16301[] = {
+ {&(_ZTV7ee16301[4]), 4,15},
+ {&(_ZTV7ee16301[9]), 9,15},
+ {&(_ZTV7ee16301[14]), 14,15},
+ {&(_tg__ZTV6dd6301__7ee16301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd6301__7ee16301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd6301__7ee16301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6301__7ee16301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16301[];
+extern VTBL_ENTRY _ZTV7ee16301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16301[];
+static VTBL_ENTRY alt_thunk_names452[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16301 = { "ee16301", // class name
+ bases_ee16301, 4,
+ &(vtc_ee16301[0]), // expected_vtbl_contents
+ &(vtt_ee16301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names452,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26301 : dd6301 {
+ int e;
+ virtual void foo(); // _ZN7ee263013fooEv
+ ~ee26301(); // tgen
+ ee26301(); // tgen
+};
+//SIG(1 ee26301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26301 ::foo(){vfunc_called(this, "_ZN7ee263013fooEv");}
+ee26301 ::~ee26301(){ note_dtor("ee26301", this);} // tgen
+ee26301 ::ee26301(){ note_ctor("ee26301", this);} // tgen
+
+static void Test_ee26301()
+{
+ extern Class_Descriptor cd_ee26301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26301, buf);
+ ee26301 *dp, &lv = *(dp=new (buf) ee26301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee26301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd6301*), ABISELECT(24,16), "ee26301");
+ check_base_class_offset(lv, (cc301*)(dd6301*), 0, "ee26301");
+ check_base_class_offset(lv, (dd6301*), 0, "ee26301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26301.e");
+ test_class_info(&lv, &cd_ee26301);
+ dp->~ee26301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26301(Test_ee26301, "ee26301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26301C1Ev();
+extern void _ZN7ee26301D1Ev();
+Name_Map name_map_ee26301[] = {
+ NSPAIR(_ZN7ee26301C1Ev),
+ NSPAIR(_ZN7ee26301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd6301;
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static Base_Class bases_ee26301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26301[];
+extern void _ZN7ee263013fooEv();
+extern void _ZN6dd63013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee263013fooEv,_ZTv0_n12_N7ee263013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee263013fooEv,_ZThn16_N7ee263013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26301[0]),
+ (VTBL_ENTRY)&_ZN7ee263013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263013fooEv,_ZTv0_n12_N7ee263013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6301__7ee26301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd6301__7ee26301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd6301__7ee26301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6301__7ee26301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+static VTT_ENTRY vtt_ee26301[] = {
+ {&(_ZTV7ee26301[3]), 3,9},
+ {&(_tg__ZTV6dd6301__7ee26301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd6301__7ee26301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd6301__7ee26301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6301__7ee26301[3]), 3,4},
+ {&(_ZTV7ee26301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26301[];
+extern VTBL_ENTRY _ZTV7ee26301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26301[];
+static VTBL_ENTRY alt_thunk_names453[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263013fooEv,_ZTv0_n12_N7ee263013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee263013fooEv,_ZThn16_N7ee263013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26301 = { "ee26301", // class name
+ bases_ee26301, 4,
+ &(vtc_ee26301[0]), // expected_vtbl_contents
+ &(vtt_ee26301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names453,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36301 : virtual dd6301 {
+ int e;
+ virtual void foo(); // _ZN7ee363013fooEv
+ ~ee36301(); // tgen
+ ee36301(); // tgen
+};
+//SIG(1 ee36301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36301 ::foo(){vfunc_called(this, "_ZN7ee363013fooEv");}
+ee36301 ::~ee36301(){ note_dtor("ee36301", this);} // tgen
+ee36301 ::ee36301(){ note_ctor("ee36301", this);} // tgen
+
+static void Test_ee36301()
+{
+ extern Class_Descriptor cd_ee36301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36301, buf);
+ ee36301 *dp, &lv = *(dp=new (buf) ee36301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee36301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd6301*), ABISELECT(32,20), "ee36301");
+ check_base_class_offset(lv, (cc301*)(dd6301*), ABISELECT(16,8), "ee36301");
+ check_base_class_offset(lv, (dd6301*), ABISELECT(16,8), "ee36301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36301.e");
+ test_class_info(&lv, &cd_ee36301);
+ dp->~ee36301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36301(Test_ee36301, "ee36301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36301C1Ev();
+extern void _ZN7ee36301D1Ev();
+Name_Map name_map_ee36301[] = {
+ NSPAIR(_ZN7ee36301C1Ev),
+ NSPAIR(_ZN7ee36301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd6301;
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static Base_Class bases_ee36301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36301[];
+extern void _ZN7ee363013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363013fooEv,_ZTv0_n16_N7ee363013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363013fooEv,_ZThn8_N7ee363013fooEv)() __attribute__((weak));
+extern void _ZN6dd63013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee363013fooEv,_ZTv0_n12_N7ee363013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee363013fooEv,_ZThn20_N7ee363013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36301[0]),
+ (VTBL_ENTRY)&_ZN7ee363013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363013fooEv,_ZTv0_n16_N7ee363013fooEv),
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363013fooEv,_ZTv0_n12_N7ee363013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6301__7ee36301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd6301__7ee36301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd6301__7ee36301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6301__7ee36301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+static VTT_ENTRY vtt_ee36301[] = {
+ {&(_ZTV7ee36301[4]), 4,16},
+ {&(_ZTV7ee36301[10]), 10,16},
+ {&(_ZTV7ee36301[15]), 15,16},
+ {&(_tg__ZTV6dd6301__7ee36301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd6301__7ee36301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd6301__7ee36301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6301__7ee36301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36301[];
+extern VTBL_ENTRY _ZTV7ee36301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36301[];
+static VTBL_ENTRY alt_thunk_names454[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363013fooEv,_ZTv0_n12_N7ee363013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee363013fooEv,_ZThn20_N7ee363013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363013fooEv,_ZTv0_n16_N7ee363013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363013fooEv,_ZThn8_N7ee363013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36301 = { "ee36301", // class name
+ bases_ee36301, 4,
+ &(vtc_ee36301[0]), // expected_vtbl_contents
+ &(vtt_ee36301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36301),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names454,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46301 : dd6301 {
+ int e;
+ virtual void bar(); // _ZN7ee463013barEv
+ ~ee46301(); // tgen
+ ee46301(); // tgen
+};
+//SIG(1 ee46301) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46301 ::bar(){vfunc_called(this, "_ZN7ee463013barEv");}
+ee46301 ::~ee46301(){ note_dtor("ee46301", this);} // tgen
+ee46301 ::ee46301(){ note_ctor("ee46301", this);} // tgen
+
+static void Test_ee46301()
+{
+ extern Class_Descriptor cd_ee46301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46301, buf);
+ ee46301 *dp, &lv = *(dp=new (buf) ee46301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee46301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd6301*), ABISELECT(24,16), "ee46301");
+ check_base_class_offset(lv, (cc301*)(dd6301*), 0, "ee46301");
+ check_base_class_offset(lv, (dd6301*), 0, "ee46301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46301.e");
+ test_class_info(&lv, &cd_ee46301);
+ dp->~ee46301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46301(Test_ee46301, "ee46301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46301C1Ev();
+extern void _ZN7ee46301D1Ev();
+Name_Map name_map_ee46301[] = {
+ NSPAIR(_ZN7ee46301C1Ev),
+ NSPAIR(_ZN7ee46301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd6301;
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static Base_Class bases_ee46301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN7ee463013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN7ee463013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6301__7ee46301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd6301__7ee46301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd6301__7ee46301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6301__7ee46301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+static VTT_ENTRY vtt_ee46301[] = {
+ {&(_ZTV7ee46301[3]), 3,9},
+ {&(_tg__ZTV6dd6301__7ee46301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd6301__7ee46301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd6301__7ee46301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6301__7ee46301[3]), 3,4},
+ {&(_ZTV7ee46301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46301[];
+extern VTBL_ENTRY _ZTV7ee46301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46301[];
+static VTBL_ENTRY alt_thunk_names455[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46301 = { "ee46301", // class name
+ bases_ee46301, 4,
+ &(vtc_ee46301[0]), // expected_vtbl_contents
+ &(vtt_ee46301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names455,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56301 : virtual dd6301 {
+ int e;
+ virtual void bar(); // _ZN7ee563013barEv
+ ~ee56301(); // tgen
+ ee56301(); // tgen
+};
+//SIG(1 ee56301) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56301 ::bar(){vfunc_called(this, "_ZN7ee563013barEv");}
+ee56301 ::~ee56301(){ note_dtor("ee56301", this);} // tgen
+ee56301 ::ee56301(){ note_ctor("ee56301", this);} // tgen
+
+static void Test_ee56301()
+{
+ extern Class_Descriptor cd_ee56301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56301, buf);
+ ee56301 *dp, &lv = *(dp=new (buf) ee56301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee56301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd6301*), ABISELECT(32,20), "ee56301");
+ check_base_class_offset(lv, (cc301*)(dd6301*), ABISELECT(16,8), "ee56301");
+ check_base_class_offset(lv, (dd6301*), ABISELECT(16,8), "ee56301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56301.e");
+ test_class_info(&lv, &cd_ee56301);
+ dp->~ee56301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56301(Test_ee56301, "ee56301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56301C1Ev();
+extern void _ZN7ee56301D1Ev();
+Name_Map name_map_ee56301[] = {
+ NSPAIR(_ZN7ee56301C1Ev),
+ NSPAIR(_ZN7ee56301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd6301;
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static Base_Class bases_ee56301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56301[];
+extern void _ZN7ee563013barEv();
+extern void _ZN6dd63013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563013barEv,_ZTv0_n20_N7ee563013barEv)();
+extern void ABISELECT(_ZThn16_N7ee563013barEv,_ZThn8_N7ee563013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56301[0]),
+ (VTBL_ENTRY)&_ZN7ee563013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563013barEv,_ZTv0_n20_N7ee563013barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6301__7ee56301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd6301__7ee56301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd6301__7ee56301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6301__7ee56301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+static VTT_ENTRY vtt_ee56301[] = {
+ {&(_ZTV7ee56301[4]), 4,16},
+ {&(_ZTV7ee56301[10]), 10,16},
+ {&(_ZTV7ee56301[15]), 15,16},
+ {&(_tg__ZTV6dd6301__7ee56301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd6301__7ee56301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd6301__7ee56301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6301__7ee56301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56301[];
+extern VTBL_ENTRY _ZTV7ee56301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56301[];
+static VTBL_ENTRY alt_thunk_names456[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563013barEv,_ZTv0_n20_N7ee563013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563013barEv,_ZThn8_N7ee563013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56301 = { "ee56301", // class name
+ bases_ee56301, 4,
+ &(vtc_ee56301[0]), // expected_vtbl_contents
+ &(vtt_ee56301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56301),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names456,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66301 : dd6301 {
+ int e;
+ virtual void foo(); // _ZN7ee663013fooEv
+ virtual void bar(); // _ZN7ee663013barEv
+ ~ee66301(); // tgen
+ ee66301(); // tgen
+};
+//SIG(1 ee66301) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66301 ::foo(){vfunc_called(this, "_ZN7ee663013fooEv");}
+void ee66301 ::bar(){vfunc_called(this, "_ZN7ee663013barEv");}
+ee66301 ::~ee66301(){ note_dtor("ee66301", this);} // tgen
+ee66301 ::ee66301(){ note_ctor("ee66301", this);} // tgen
+
+static void Test_ee66301()
+{
+ extern Class_Descriptor cd_ee66301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66301, buf);
+ ee66301 *dp, &lv = *(dp=new (buf) ee66301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee66301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd6301*), ABISELECT(24,16), "ee66301");
+ check_base_class_offset(lv, (cc301*)(dd6301*), 0, "ee66301");
+ check_base_class_offset(lv, (dd6301*), 0, "ee66301");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66301.e");
+ test_class_info(&lv, &cd_ee66301);
+ dp->~ee66301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66301(Test_ee66301, "ee66301", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66301C1Ev();
+extern void _ZN7ee66301D1Ev();
+Name_Map name_map_ee66301[] = {
+ NSPAIR(_ZN7ee66301C1Ev),
+ NSPAIR(_ZN7ee66301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd6301;
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static Base_Class bases_ee66301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66301[];
+extern void _ZN7ee663013fooEv();
+extern void _ZN7ee663013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee663013fooEv,_ZTv0_n12_N7ee663013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee663013fooEv,_ZThn16_N7ee663013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66301[0]),
+ (VTBL_ENTRY)&_ZN7ee663013fooEv,
+ (VTBL_ENTRY)&_ZN7ee663013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663013fooEv,_ZTv0_n12_N7ee663013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6301__7ee66301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd6301__7ee66301[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd6301__7ee66301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6301__7ee66301[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+static VTT_ENTRY vtt_ee66301[] = {
+ {&(_ZTV7ee66301[3]), 3,9},
+ {&(_tg__ZTV6dd6301__7ee66301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd6301__7ee66301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd6301__7ee66301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6301__7ee66301[3]), 3,4},
+ {&(_ZTV7ee66301[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66301[];
+extern VTBL_ENTRY _ZTV7ee66301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66301[];
+static VTBL_ENTRY alt_thunk_names457[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63013fooEv,_ZThn16_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3013fooEv,_ZThn16_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663013fooEv,_ZTv0_n12_N7ee663013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663013fooEv,_ZThn16_N7ee663013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66301 = { "ee66301", // class name
+ bases_ee66301, 4,
+ &(vtc_ee66301[0]), // expected_vtbl_contents
+ &(vtt_ee66301[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66301),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66301),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names457,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76301 : virtual dd6301 {
+ int e;
+ virtual void foo(); // _ZN7ee763013fooEv
+ virtual void bar(); // _ZN7ee763013barEv
+ ~ee76301(); // tgen
+ ee76301(); // tgen
+};
+//SIG(1 ee76301) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76301 ::foo(){vfunc_called(this, "_ZN7ee763013fooEv");}
+void ee76301 ::bar(){vfunc_called(this, "_ZN7ee763013barEv");}
+ee76301 ::~ee76301(){ note_dtor("ee76301", this);} // tgen
+ee76301 ::ee76301(){ note_ctor("ee76301", this);} // tgen
+
+static void Test_ee76301()
+{
+ extern Class_Descriptor cd_ee76301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76301, buf);
+ ee76301 *dp, &lv = *(dp=new (buf) ee76301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee76301");
+ check_base_class_offset(lv, (bb01*)(cc301*)(dd6301*), ABISELECT(32,20), "ee76301");
+ check_base_class_offset(lv, (cc301*)(dd6301*), ABISELECT(16,8), "ee76301");
+ check_base_class_offset(lv, (dd6301*), ABISELECT(16,8), "ee76301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76301.e");
+ test_class_info(&lv, &cd_ee76301);
+ dp->~ee76301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76301(Test_ee76301, "ee76301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76301C1Ev();
+extern void _ZN7ee76301D1Ev();
+Name_Map name_map_ee76301[] = {
+ NSPAIR(_ZN7ee76301C1Ev),
+ NSPAIR(_ZN7ee76301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd6301;
+extern VTBL_ENTRY _ZTI6dd6301[];
+extern VTBL_ENTRY _ZTV6dd6301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6301[];
+static Base_Class bases_ee76301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76301[];
+extern void _ZN7ee763013fooEv();
+extern void _ZN7ee763013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763013fooEv,_ZTv0_n16_N7ee763013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763013fooEv,_ZThn8_N7ee763013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763013barEv,_ZTv0_n20_N7ee763013barEv)();
+extern void ABISELECT(_ZThn16_N7ee763013barEv,_ZThn8_N7ee763013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763013fooEv,_ZTv0_n12_N7ee763013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee763013fooEv,_ZThn20_N7ee763013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76301[0]),
+ (VTBL_ENTRY)&_ZN7ee763013fooEv,
+ (VTBL_ENTRY)&_ZN7ee763013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763013fooEv,_ZTv0_n16_N7ee763013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763013barEv,_ZTv0_n20_N7ee763013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763013fooEv,_ZTv0_n12_N7ee763013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76301[];
+extern void _ZN6dd63013fooEv();
+extern void _ZN6dd63013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6301__7ee76301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&_ZN6dd63013fooEv,
+ (VTBL_ENTRY)&_ZN6dd63013barEv,
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3016dd6301__7ee76301[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc3016dd6301__7ee76301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6301__7ee76301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv),
+};
+static VTT_ENTRY vtt_ee76301[] = {
+ {&(_ZTV7ee76301[4]), 4,17},
+ {&(_ZTV7ee76301[11]), 11,17},
+ {&(_ZTV7ee76301[16]), 16,17},
+ {&(_tg__ZTV6dd6301__7ee76301[3]), 3,5},
+ {&(_tg__ZTV5cc3016dd6301__7ee76301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc3016dd6301__7ee76301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6301__7ee76301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76301[];
+extern VTBL_ENTRY _ZTV7ee76301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76301[];
+static VTBL_ENTRY alt_thunk_names458[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63013fooEv,_ZTv0_n12_N6dd63013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63013fooEv,_ZThn12_N6dd63013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn12_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763013fooEv,_ZTv0_n12_N7ee763013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763013fooEv,_ZThn20_N7ee763013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763013barEv,_ZTv0_n20_N7ee763013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763013barEv,_ZThn8_N7ee763013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763013fooEv,_ZTv0_n16_N7ee763013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763013fooEv,_ZThn8_N7ee763013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76301 = { "ee76301", // class name
+ bases_ee76301, 4,
+ &(vtc_ee76301[0]), // expected_vtbl_contents
+ &(vtt_ee76301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76301),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76301),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names458,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7301 : virtual cc301 {
+ int d;
+ virtual void bar(); // _ZN6dd73013barEv
+ virtual void foo(); // _ZN6dd73013fooEv
+ ~dd7301(); // tgen
+ dd7301(); // tgen
+};
+//SIG(-1 dd7301) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7301 ::bar(){vfunc_called(this, "_ZN6dd73013barEv");}
+void dd7301 ::foo(){vfunc_called(this, "_ZN6dd73013fooEv");}
+dd7301 ::~dd7301(){ note_dtor("dd7301", this);} // tgen
+dd7301 ::dd7301(){ note_ctor("dd7301", this);} // tgen
+
+static void Test_dd7301()
+{
+ extern Class_Descriptor cd_dd7301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7301, buf);
+ dd7301 *dp, &lv = *(dp=new (buf) dd7301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd7301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,16), "dd7301");
+ check_base_class_offset(lv, (cc301*), ABISELECT(16,8), "dd7301");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7301.d");
+ test_class_info(&lv, &cd_dd7301);
+ dp->~dd7301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7301(Test_dd7301, "dd7301", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7301C1Ev();
+extern void _ZN6dd7301D1Ev();
+Name_Map name_map_dd7301[] = {
+ NSPAIR(_ZN6dd7301C1Ev),
+ NSPAIR(_ZN6dd7301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+static Base_Class bases_dd7301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, 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 _ZTI6dd7301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__6dd7301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_dd7301[] = {
+ {&(_ZTV6dd7301[4]), 4,15},
+ {&(_ZTV6dd7301[10]), 10,15},
+ {&(_ZTV6dd7301[14]), 14,15},
+ {&(_tg__ZTV5cc301__6dd7301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__6dd7301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static VTBL_ENTRY alt_thunk_names459[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7301 = { "dd7301", // class name
+ bases_dd7301, 3,
+ &(vtc_dd7301[0]), // expected_vtbl_contents
+ &(vtt_dd7301[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7301),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names459,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07301 : dd7301 {
+ int e;
+ ~ee07301(); // tgen
+ ee07301(); // tgen
+};
+//SIG(1 ee07301) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07301 ::~ee07301(){ note_dtor("ee07301", this);} // tgen
+ee07301 ::ee07301(){ note_ctor("ee07301", this);} // tgen
+
+static void Test_ee07301()
+{
+ extern Class_Descriptor cd_ee07301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07301, buf);
+ ee07301 *dp, &lv = *(dp=new (buf) ee07301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee07301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee07301");
+ check_base_class_offset(lv, (cc301*)(dd7301*), ABISELECT(16,12), "ee07301");
+ check_base_class_offset(lv, (dd7301*), 0, "ee07301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07301.e");
+ test_class_info(&lv, &cd_ee07301);
+ dp->~ee07301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07301(Test_ee07301, "ee07301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07301C1Ev();
+extern void _ZN7ee07301D1Ev();
+Name_Map name_map_ee07301[] = {
+ NSPAIR(_ZN7ee07301C1Ev),
+ NSPAIR(_ZN7ee07301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd7301;
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static Base_Class bases_ee07301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7301__7ee07301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301__7ee07301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7301__7ee07301[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee07301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee07301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee07301[] = {
+ {&(_ZTV7ee07301[4]), 4,15},
+ {&(_tg__ZTV6dd7301__7ee07301[4]), 4,6},
+ {&(_tg__ZTV5cc301__6dd7301__7ee07301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7301__7ee07301[3]), 3,4},
+ {&(_ZTV7ee07301[10]), 10,15},
+ {&(_ZTV7ee07301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee07301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee07301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07301[];
+extern VTBL_ENTRY _ZTV7ee07301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07301[];
+static VTBL_ENTRY alt_thunk_names460[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07301 = { "ee07301", // class name
+ bases_ee07301, 4,
+ &(vtc_ee07301[0]), // expected_vtbl_contents
+ &(vtt_ee07301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names460,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17301 : virtual dd7301 {
+ int e;
+ ~ee17301(); // tgen
+ ee17301(); // tgen
+};
+//SIG(1 ee17301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17301 ::~ee17301(){ note_dtor("ee17301", this);} // tgen
+ee17301 ::ee17301(){ note_ctor("ee17301", this);} // tgen
+
+static void Test_ee17301()
+{
+ extern Class_Descriptor cd_ee17301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17301, buf);
+ ee17301 *dp, &lv = *(dp=new (buf) ee17301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee17301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee17301");
+ check_base_class_offset(lv, (cc301*)(dd7301*), ABISELECT(32,16), "ee17301");
+ check_base_class_offset(lv, (dd7301*), ABISELECT(16,8), "ee17301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17301.e");
+ test_class_info(&lv, &cd_ee17301);
+ dp->~ee17301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17301(Test_ee17301, "ee17301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17301C1Ev();
+extern void _ZN7ee17301D1Ev();
+Name_Map name_map_ee17301[] = {
+ NSPAIR(_ZN7ee17301C1Ev),
+ NSPAIR(_ZN7ee17301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd7301;
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static Base_Class bases_ee17301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7301, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17301[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7301__7ee17301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301__7ee17301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7301__7ee17301[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee17301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee17301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee17301[] = {
+ {&(_ZTV7ee17301[5]), 5,22},
+ {&(_ZTV7ee17301[11]), 11,22},
+ {&(_ZTV7ee17301[17]), 17,22},
+ {&(_ZTV7ee17301[21]), 21,22},
+ {&(_tg__ZTV6dd7301__7ee17301[4]), 4,6},
+ {&(_tg__ZTV5cc301__6dd7301__7ee17301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7301__7ee17301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee17301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee17301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17301[];
+extern VTBL_ENTRY _ZTV7ee17301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17301[];
+static VTBL_ENTRY alt_thunk_names461[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17301 = { "ee17301", // class name
+ bases_ee17301, 4,
+ &(vtc_ee17301[0]), // expected_vtbl_contents
+ &(vtt_ee17301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17301),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names461,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27301 : dd7301 {
+ int e;
+ virtual void foo(); // _ZN7ee273013fooEv
+ ~ee27301(); // tgen
+ ee27301(); // tgen
+};
+//SIG(1 ee27301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27301 ::foo(){vfunc_called(this, "_ZN7ee273013fooEv");}
+ee27301 ::~ee27301(){ note_dtor("ee27301", this);} // tgen
+ee27301 ::ee27301(){ note_ctor("ee27301", this);} // tgen
+
+static void Test_ee27301()
+{
+ extern Class_Descriptor cd_ee27301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27301, buf);
+ ee27301 *dp, &lv = *(dp=new (buf) ee27301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee27301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee27301");
+ check_base_class_offset(lv, (cc301*)(dd7301*), ABISELECT(16,12), "ee27301");
+ check_base_class_offset(lv, (dd7301*), 0, "ee27301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27301.e");
+ test_class_info(&lv, &cd_ee27301);
+ dp->~ee27301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27301(Test_ee27301, "ee27301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27301C1Ev();
+extern void _ZN7ee27301D1Ev();
+Name_Map name_map_ee27301[] = {
+ NSPAIR(_ZN7ee27301C1Ev),
+ NSPAIR(_ZN7ee27301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd7301;
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static Base_Class bases_ee27301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN7ee273013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273013fooEv,_ZTv0_n16_N7ee273013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273013fooEv,_ZThn12_N7ee273013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273013fooEv,_ZTv0_n12_N7ee273013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee273013fooEv,_ZThn20_N7ee273013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN7ee273013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273013fooEv,_ZTv0_n16_N7ee273013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273013fooEv,_ZTv0_n12_N7ee273013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7301__7ee27301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301__7ee27301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7301__7ee27301[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee27301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee27301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee27301[] = {
+ {&(_ZTV7ee27301[4]), 4,15},
+ {&(_tg__ZTV6dd7301__7ee27301[4]), 4,6},
+ {&(_tg__ZTV5cc301__6dd7301__7ee27301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7301__7ee27301[3]), 3,4},
+ {&(_ZTV7ee27301[10]), 10,15},
+ {&(_ZTV7ee27301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee27301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee27301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27301[];
+extern VTBL_ENTRY _ZTV7ee27301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27301[];
+static VTBL_ENTRY alt_thunk_names462[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273013fooEv,_ZTv0_n12_N7ee273013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee273013fooEv,_ZThn20_N7ee273013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273013fooEv,_ZTv0_n16_N7ee273013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273013fooEv,_ZThn12_N7ee273013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27301 = { "ee27301", // class name
+ bases_ee27301, 4,
+ &(vtc_ee27301[0]), // expected_vtbl_contents
+ &(vtt_ee27301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names462,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37301 : virtual dd7301 {
+ int e;
+ virtual void foo(); // _ZN7ee373013fooEv
+ ~ee37301(); // tgen
+ ee37301(); // tgen
+};
+//SIG(1 ee37301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37301 ::foo(){vfunc_called(this, "_ZN7ee373013fooEv");}
+ee37301 ::~ee37301(){ note_dtor("ee37301", this);} // tgen
+ee37301 ::ee37301(){ note_ctor("ee37301", this);} // tgen
+
+static void Test_ee37301()
+{
+ extern Class_Descriptor cd_ee37301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37301, buf);
+ ee37301 *dp, &lv = *(dp=new (buf) ee37301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee37301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee37301");
+ check_base_class_offset(lv, (cc301*)(dd7301*), ABISELECT(32,16), "ee37301");
+ check_base_class_offset(lv, (dd7301*), ABISELECT(16,8), "ee37301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37301.e");
+ test_class_info(&lv, &cd_ee37301);
+ dp->~ee37301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37301(Test_ee37301, "ee37301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37301C1Ev();
+extern void _ZN7ee37301D1Ev();
+Name_Map name_map_ee37301[] = {
+ NSPAIR(_ZN7ee37301C1Ev),
+ NSPAIR(_ZN7ee37301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd7301;
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static Base_Class bases_ee37301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37301[];
+extern void _ZN7ee373013fooEv();
+extern void _ZN6dd73013barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373013fooEv,_ZTv0_n24_N7ee373013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373013fooEv,_ZThn8_N7ee373013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373013fooEv,_ZTv0_n16_N7ee373013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373013fooEv,_ZThn16_N7ee373013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373013fooEv,_ZTv0_n12_N7ee373013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee373013fooEv,_ZThn24_N7ee373013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37301[0]),
+ (VTBL_ENTRY)&_ZN7ee373013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373013fooEv,_ZTv0_n24_N7ee373013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373013fooEv,_ZTv0_n16_N7ee373013fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373013fooEv,_ZTv0_n12_N7ee373013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7301__7ee37301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301__7ee37301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7301__7ee37301[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee37301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee37301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee37301[] = {
+ {&(_ZTV7ee37301[5]), 5,23},
+ {&(_ZTV7ee37301[12]), 12,23},
+ {&(_ZTV7ee37301[18]), 18,23},
+ {&(_ZTV7ee37301[22]), 22,23},
+ {&(_tg__ZTV6dd7301__7ee37301[4]), 4,6},
+ {&(_tg__ZTV5cc301__6dd7301__7ee37301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7301__7ee37301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee37301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee37301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37301[];
+extern VTBL_ENTRY _ZTV7ee37301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37301[];
+static VTBL_ENTRY alt_thunk_names463[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373013fooEv,_ZTv0_n12_N7ee373013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee373013fooEv,_ZThn24_N7ee373013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373013fooEv,_ZTv0_n16_N7ee373013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373013fooEv,_ZThn16_N7ee373013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373013fooEv,_ZTv0_n24_N7ee373013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373013fooEv,_ZThn8_N7ee373013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37301 = { "ee37301", // class name
+ bases_ee37301, 4,
+ &(vtc_ee37301[0]), // expected_vtbl_contents
+ &(vtt_ee37301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37301),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names463,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47301 : dd7301 {
+ int e;
+ virtual void bar(); // _ZN7ee473013barEv
+ ~ee47301(); // tgen
+ ee47301(); // tgen
+};
+//SIG(1 ee47301) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47301 ::bar(){vfunc_called(this, "_ZN7ee473013barEv");}
+ee47301 ::~ee47301(){ note_dtor("ee47301", this);} // tgen
+ee47301 ::ee47301(){ note_ctor("ee47301", this);} // tgen
+
+static void Test_ee47301()
+{
+ extern Class_Descriptor cd_ee47301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47301, buf);
+ ee47301 *dp, &lv = *(dp=new (buf) ee47301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee47301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee47301");
+ check_base_class_offset(lv, (cc301*)(dd7301*), ABISELECT(16,12), "ee47301");
+ check_base_class_offset(lv, (dd7301*), 0, "ee47301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47301.e");
+ test_class_info(&lv, &cd_ee47301);
+ dp->~ee47301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47301(Test_ee47301, "ee47301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47301C1Ev();
+extern void _ZN7ee47301D1Ev();
+Name_Map name_map_ee47301[] = {
+ NSPAIR(_ZN7ee47301C1Ev),
+ NSPAIR(_ZN7ee47301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd7301;
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static Base_Class bases_ee47301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47301[];
+extern void _ZN7ee473013barEv();
+extern void _ZN6dd73013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47301[0]),
+ (VTBL_ENTRY)&_ZN7ee473013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7301__7ee47301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301__7ee47301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7301__7ee47301[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee47301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee47301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee47301[] = {
+ {&(_ZTV7ee47301[4]), 4,15},
+ {&(_tg__ZTV6dd7301__7ee47301[4]), 4,6},
+ {&(_tg__ZTV5cc301__6dd7301__7ee47301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7301__7ee47301[3]), 3,4},
+ {&(_ZTV7ee47301[10]), 10,15},
+ {&(_ZTV7ee47301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee47301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee47301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47301[];
+extern VTBL_ENTRY _ZTV7ee47301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47301[];
+static VTBL_ENTRY alt_thunk_names464[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47301 = { "ee47301", // class name
+ bases_ee47301, 4,
+ &(vtc_ee47301[0]), // expected_vtbl_contents
+ &(vtt_ee47301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names464,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57301 : virtual dd7301 {
+ int e;
+ virtual void bar(); // _ZN7ee573013barEv
+ ~ee57301(); // tgen
+ ee57301(); // tgen
+};
+//SIG(1 ee57301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57301 ::bar(){vfunc_called(this, "_ZN7ee573013barEv");}
+ee57301 ::~ee57301(){ note_dtor("ee57301", this);} // tgen
+ee57301 ::ee57301(){ note_ctor("ee57301", this);} // tgen
+
+static void Test_ee57301()
+{
+ extern Class_Descriptor cd_ee57301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57301, buf);
+ ee57301 *dp, &lv = *(dp=new (buf) ee57301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee57301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee57301");
+ check_base_class_offset(lv, (cc301*)(dd7301*), ABISELECT(32,16), "ee57301");
+ check_base_class_offset(lv, (dd7301*), ABISELECT(16,8), "ee57301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57301.e");
+ test_class_info(&lv, &cd_ee57301);
+ dp->~ee57301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57301(Test_ee57301, "ee57301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57301C1Ev();
+extern void _ZN7ee57301D1Ev();
+Name_Map name_map_ee57301[] = {
+ NSPAIR(_ZN7ee57301C1Ev),
+ NSPAIR(_ZN7ee57301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd7301;
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static Base_Class bases_ee57301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7301, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57301[];
+extern void _ZN7ee573013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573013barEv,_ZTv0_n20_N7ee573013barEv)();
+extern void ABISELECT(_ZThn16_N7ee573013barEv,_ZThn8_N7ee573013barEv)() __attribute__((weak));
+extern void _ZN6dd73013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57301[0]),
+ (VTBL_ENTRY)&_ZN7ee573013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573013barEv,_ZTv0_n20_N7ee573013barEv),
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7301__7ee57301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301__7ee57301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7301__7ee57301[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee57301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee57301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee57301[] = {
+ {&(_ZTV7ee57301[5]), 5,23},
+ {&(_ZTV7ee57301[12]), 12,23},
+ {&(_ZTV7ee57301[18]), 18,23},
+ {&(_ZTV7ee57301[22]), 22,23},
+ {&(_tg__ZTV6dd7301__7ee57301[4]), 4,6},
+ {&(_tg__ZTV5cc301__6dd7301__7ee57301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7301__7ee57301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee57301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee57301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57301[];
+extern VTBL_ENTRY _ZTV7ee57301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57301[];
+static VTBL_ENTRY alt_thunk_names465[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573013barEv,_ZTv0_n20_N7ee573013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573013barEv,_ZThn8_N7ee573013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57301 = { "ee57301", // class name
+ bases_ee57301, 4,
+ &(vtc_ee57301[0]), // expected_vtbl_contents
+ &(vtt_ee57301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57301),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names465,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67301 : dd7301 {
+ int e;
+ virtual void foo(); // _ZN7ee673013fooEv
+ virtual void bar(); // _ZN7ee673013barEv
+ ~ee67301(); // tgen
+ ee67301(); // tgen
+};
+//SIG(1 ee67301) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67301 ::foo(){vfunc_called(this, "_ZN7ee673013fooEv");}
+void ee67301 ::bar(){vfunc_called(this, "_ZN7ee673013barEv");}
+ee67301 ::~ee67301(){ note_dtor("ee67301", this);} // tgen
+ee67301 ::ee67301(){ note_ctor("ee67301", this);} // tgen
+
+static void Test_ee67301()
+{
+ extern Class_Descriptor cd_ee67301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67301, buf);
+ ee67301 *dp, &lv = *(dp=new (buf) ee67301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee67301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(32,20), "ee67301");
+ check_base_class_offset(lv, (cc301*)(dd7301*), ABISELECT(16,12), "ee67301");
+ check_base_class_offset(lv, (dd7301*), 0, "ee67301");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67301.e");
+ test_class_info(&lv, &cd_ee67301);
+ dp->~ee67301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67301(Test_ee67301, "ee67301", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67301C1Ev();
+extern void _ZN7ee67301D1Ev();
+Name_Map name_map_ee67301[] = {
+ NSPAIR(_ZN7ee67301C1Ev),
+ NSPAIR(_ZN7ee67301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd7301;
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static Base_Class bases_ee67301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7301, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67301[];
+extern void _ZN7ee673013barEv();
+extern void _ZN7ee673013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673013fooEv,_ZTv0_n16_N7ee673013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673013fooEv,_ZThn12_N7ee673013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673013fooEv,_ZTv0_n12_N7ee673013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee673013fooEv,_ZThn20_N7ee673013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67301[0]),
+ (VTBL_ENTRY)&_ZN7ee673013barEv,
+ (VTBL_ENTRY)&_ZN7ee673013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673013fooEv,_ZTv0_n16_N7ee673013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673013fooEv,_ZTv0_n12_N7ee673013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7301__7ee67301[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301__7ee67301[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7301__7ee67301[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee67301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee67301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee67301[] = {
+ {&(_ZTV7ee67301[4]), 4,15},
+ {&(_tg__ZTV6dd7301__7ee67301[4]), 4,6},
+ {&(_tg__ZTV5cc301__6dd7301__7ee67301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7301__7ee67301[3]), 3,4},
+ {&(_ZTV7ee67301[10]), 10,15},
+ {&(_ZTV7ee67301[14]), 14,15},
+ {&(_tg__ZTV5cc301__7ee67301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee67301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67301[];
+extern VTBL_ENTRY _ZTV7ee67301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67301[];
+static VTBL_ENTRY alt_thunk_names466[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn20_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn12_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673013fooEv,_ZTv0_n12_N7ee673013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673013fooEv,_ZThn20_N7ee673013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673013fooEv,_ZTv0_n16_N7ee673013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673013fooEv,_ZThn12_N7ee673013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67301 = { "ee67301", // class name
+ bases_ee67301, 4,
+ &(vtc_ee67301[0]), // expected_vtbl_contents
+ &(vtt_ee67301[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67301),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67301),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67301),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names466,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77301 : virtual dd7301 {
+ int e;
+ virtual void foo(); // _ZN7ee773013fooEv
+ virtual void bar(); // _ZN7ee773013barEv
+ ~ee77301(); // tgen
+ ee77301(); // tgen
+};
+//SIG(1 ee77301) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77301 ::foo(){vfunc_called(this, "_ZN7ee773013fooEv");}
+void ee77301 ::bar(){vfunc_called(this, "_ZN7ee773013barEv");}
+ee77301 ::~ee77301(){ note_dtor("ee77301", this);} // tgen
+ee77301 ::ee77301(){ note_ctor("ee77301", this);} // tgen
+
+static void Test_ee77301()
+{
+ extern Class_Descriptor cd_ee77301;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77301, buf);
+ ee77301 *dp, &lv = *(dp=new (buf) ee77301());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77301)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77301)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee77301");
+ check_base_class_offset(lv, (bb01*)(cc301*), ABISELECT(48,24), "ee77301");
+ check_base_class_offset(lv, (cc301*)(dd7301*), ABISELECT(32,16), "ee77301");
+ check_base_class_offset(lv, (dd7301*), ABISELECT(16,8), "ee77301");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77301.e");
+ test_class_info(&lv, &cd_ee77301);
+ dp->~ee77301();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77301(Test_ee77301, "ee77301", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77301C1Ev();
+extern void _ZN7ee77301D1Ev();
+Name_Map name_map_ee77301[] = {
+ NSPAIR(_ZN7ee77301C1Ev),
+ NSPAIR(_ZN7ee77301D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc301;
+extern VTBL_ENTRY _ZTI5cc301[];
+extern VTBL_ENTRY _ZTV5cc301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc301[];
+extern Class_Descriptor cd_dd7301;
+extern VTBL_ENTRY _ZTI6dd7301[];
+extern VTBL_ENTRY _ZTV6dd7301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7301[];
+static Base_Class bases_ee77301[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc301, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7301, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77301[];
+extern void _ZN7ee773013fooEv();
+extern void _ZN7ee773013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773013barEv,_ZTv0_n20_N7ee773013barEv)();
+extern void ABISELECT(_ZThn16_N7ee773013barEv,_ZThn8_N7ee773013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773013fooEv,_ZTv0_n24_N7ee773013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773013fooEv,_ZThn8_N7ee773013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773013fooEv,_ZTv0_n16_N7ee773013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773013fooEv,_ZThn16_N7ee773013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773013fooEv,_ZTv0_n12_N7ee773013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee773013fooEv,_ZThn24_N7ee773013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77301[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77301[0]),
+ (VTBL_ENTRY)&_ZN7ee773013fooEv,
+ (VTBL_ENTRY)&_ZN7ee773013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773013barEv,_ZTv0_n20_N7ee773013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773013fooEv,_ZTv0_n24_N7ee773013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773013fooEv,_ZTv0_n16_N7ee773013fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773013fooEv,_ZTv0_n12_N7ee773013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77301[];
+extern void _ZN6dd73013barEv();
+extern void _ZN6dd73013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7301__7ee77301[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&_ZN6dd73013barEv,
+ (VTBL_ENTRY)&_ZN6dd73013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc301__6dd7301__7ee77301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7301__7ee77301[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv),
+};
+extern void _ZN5cc3013fooEv();
+static VTBL_ENTRY _tg__ZTV5cc301__7ee77301[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&_ZN5cc3013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc301__7ee77301[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc301[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv),
+};
+static VTT_ENTRY vtt_ee77301[] = {
+ {&(_ZTV7ee77301[5]), 5,24},
+ {&(_ZTV7ee77301[13]), 13,24},
+ {&(_ZTV7ee77301[19]), 19,24},
+ {&(_ZTV7ee77301[23]), 23,24},
+ {&(_tg__ZTV6dd7301__7ee77301[4]), 4,6},
+ {&(_tg__ZTV5cc301__6dd7301__7ee77301[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7301__7ee77301[3]), 3,4},
+ {&(_tg__ZTV5cc301__7ee77301[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc301__7ee77301[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77301[];
+extern VTBL_ENTRY _ZTV7ee77301[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77301[];
+static VTBL_ENTRY alt_thunk_names467[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3013fooEv,_ZTv0_n12_N5cc3013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3013fooEv,_ZThn8_N5cc3013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73013fooEv,_ZTv0_n12_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73013fooEv,_ZThn16_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73013fooEv,_ZTv0_n16_N6dd73013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73013fooEv,_ZThn8_N6dd73013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773013fooEv,_ZTv0_n12_N7ee773013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773013fooEv,_ZThn24_N7ee773013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773013fooEv,_ZTv0_n16_N7ee773013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773013fooEv,_ZThn16_N7ee773013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773013fooEv,_ZTv0_n24_N7ee773013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773013fooEv,_ZThn8_N7ee773013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773013barEv,_ZTv0_n20_N7ee773013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773013barEv,_ZThn8_N7ee773013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77301 = { "ee77301", // class name
+ bases_ee77301, 4,
+ &(vtc_ee77301[0]), // expected_vtbl_contents
+ &(vtt_ee77301[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77301),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77301),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77301),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names467,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc401 : bb01 {
+ int c;
+ virtual void bar(); // _ZN5cc4013barEv
+ ~cc401(); // tgen
+ cc401(); // tgen
+};
+//SIG(-1 cc401) C1{ BC2{ BC3{ v2 Fi} Fi} v1 Fi}
+
+
+void cc401 ::bar(){vfunc_called(this, "_ZN5cc4013barEv");}
+cc401 ::~cc401(){ note_dtor("cc401", this);} // tgen
+cc401 ::cc401(){ note_ctor("cc401", this);} // tgen
+
+static void Test_cc401()
+{
+ extern Class_Descriptor cd_cc401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc401, buf);
+ cc401 *dp, &lv = *(dp=new (buf) cc401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc401)");
+ check_base_class_offset(lv, (aa1*)(bb01*), 0, "cc401");
+ check_base_class_offset(lv, (bb01*), 0, "cc401");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc401.c");
+ test_class_info(&lv, &cd_cc401);
+ dp->~cc401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc401(Test_cc401, "cc401", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc401C1Ev();
+extern void _ZN5cc401D1Ev();
+Name_Map name_map_cc401[] = {
+ NSPAIR(_ZN5cc401C1Ev),
+ NSPAIR(_ZN5cc401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+static Base_Class bases_cc401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_cc401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+Class_Descriptor cd_cc401 = { "cc401", // class name
+ bases_cc401, 2,
+ &(vtc_cc401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0401 : cc401 {
+ int d;
+ ~dd0401(); // tgen
+ dd0401(); // tgen
+};
+//SIG(-1 dd0401) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} v1 Fi} Fi}
+
+
+dd0401 ::~dd0401(){ note_dtor("dd0401", this);} // tgen
+dd0401 ::dd0401(){ note_ctor("dd0401", this);} // tgen
+
+static void Test_dd0401()
+{
+ extern Class_Descriptor cd_dd0401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0401, buf);
+ dd0401 *dp, &lv = *(dp=new (buf) dd0401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), 0, "dd0401");
+ check_base_class_offset(lv, (bb01*)(cc401*), 0, "dd0401");
+ check_base_class_offset(lv, (cc401*), 0, "dd0401");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0401.d");
+ test_class_info(&lv, &cd_dd0401);
+ dp->~dd0401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0401(Test_dd0401, "dd0401", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0401C1Ev();
+extern void _ZN6dd0401D1Ev();
+Name_Map name_map_dd0401[] = {
+ NSPAIR(_ZN6dd0401C1Ev),
+ NSPAIR(_ZN6dd0401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+static Base_Class bases_dd0401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_dd0401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+Class_Descriptor cd_dd0401 = { "dd0401", // class name
+ bases_dd0401, 3,
+ &(vtc_dd0401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00401 : dd0401 {
+ int e;
+ ~ee00401(); // tgen
+ ee00401(); // tgen
+};
+//SIG(1 ee00401) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00401 ::~ee00401(){ note_dtor("ee00401", this);} // tgen
+ee00401 ::ee00401(){ note_ctor("ee00401", this);} // tgen
+
+static void Test_ee00401()
+{
+ extern Class_Descriptor cd_ee00401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00401, buf);
+ ee00401 *dp, &lv = *(dp=new (buf) ee00401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd0401*), 0, "ee00401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd0401*), 0, "ee00401");
+ check_base_class_offset(lv, (cc401*)(dd0401*), 0, "ee00401");
+ check_base_class_offset(lv, (dd0401*), 0, "ee00401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00401.e");
+ test_class_info(&lv, &cd_ee00401);
+ dp->~ee00401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00401(Test_ee00401, "ee00401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00401C1Ev();
+extern void _ZN7ee00401D1Ev();
+Name_Map name_map_ee00401[] = {
+ NSPAIR(_ZN7ee00401C1Ev),
+ NSPAIR(_ZN7ee00401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd0401;
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+static Base_Class bases_ee00401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee00401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00401[];
+extern VTBL_ENTRY _ZTV7ee00401[];
+Class_Descriptor cd_ee00401 = { "ee00401", // class name
+ bases_ee00401, 4,
+ &(vtc_ee00401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10401 : virtual dd0401 {
+ int e;
+ ~ee10401(); // tgen
+ ee10401(); // tgen
+};
+//SIG(1 ee10401) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10401 ::~ee10401(){ note_dtor("ee10401", this);} // tgen
+ee10401 ::ee10401(){ note_ctor("ee10401", this);} // tgen
+
+static void Test_ee10401()
+{
+ extern Class_Descriptor cd_ee10401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10401, buf);
+ ee10401 *dp, &lv = *(dp=new (buf) ee10401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd0401*), ABISELECT(16,8), "ee10401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd0401*), ABISELECT(16,8), "ee10401");
+ check_base_class_offset(lv, (cc401*)(dd0401*), ABISELECT(16,8), "ee10401");
+ check_base_class_offset(lv, (dd0401*), ABISELECT(16,8), "ee10401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10401.e");
+ test_class_info(&lv, &cd_ee10401);
+ dp->~ee10401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10401(Test_ee10401, "ee10401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10401C1Ev();
+extern void _ZN7ee10401D1Ev();
+Name_Map name_map_ee10401[] = {
+ NSPAIR(_ZN7ee10401C1Ev),
+ NSPAIR(_ZN7ee10401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd0401;
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+static Base_Class bases_ee10401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee10401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10401[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10401[];
+static VTT_ENTRY vtt_ee10401[] = {
+ {&(_ZTV7ee10401[3]), 3,9},
+ {&(_ZTV7ee10401[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10401[];
+extern VTBL_ENTRY _ZTV7ee10401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10401[];
+Class_Descriptor cd_ee10401 = { "ee10401", // class name
+ bases_ee10401, 4,
+ &(vtc_ee10401[0]), // expected_vtbl_contents
+ &(vtt_ee10401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10401),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20401 : dd0401 {
+ int e;
+ virtual void foo(); // _ZN7ee204013fooEv
+ ~ee20401(); // tgen
+ ee20401(); // tgen
+};
+//SIG(1 ee20401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20401 ::foo(){vfunc_called(this, "_ZN7ee204013fooEv");}
+ee20401 ::~ee20401(){ note_dtor("ee20401", this);} // tgen
+ee20401 ::ee20401(){ note_ctor("ee20401", this);} // tgen
+
+static void Test_ee20401()
+{
+ extern Class_Descriptor cd_ee20401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20401, buf);
+ ee20401 *dp, &lv = *(dp=new (buf) ee20401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd0401*), 0, "ee20401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd0401*), 0, "ee20401");
+ check_base_class_offset(lv, (cc401*)(dd0401*), 0, "ee20401");
+ check_base_class_offset(lv, (dd0401*), 0, "ee20401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20401.e");
+ test_class_info(&lv, &cd_ee20401);
+ dp->~ee20401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20401(Test_ee20401, "ee20401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20401C1Ev();
+extern void _ZN7ee20401D1Ev();
+Name_Map name_map_ee20401[] = {
+ NSPAIR(_ZN7ee20401C1Ev),
+ NSPAIR(_ZN7ee20401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd0401;
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+static Base_Class bases_ee20401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20401[];
+extern void _ZN7ee204013fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee20401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20401[0]),
+ (VTBL_ENTRY)&_ZN7ee204013fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20401[];
+extern VTBL_ENTRY _ZTV7ee20401[];
+Class_Descriptor cd_ee20401 = { "ee20401", // class name
+ bases_ee20401, 4,
+ &(vtc_ee20401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30401 : virtual dd0401 {
+ int e;
+ virtual void foo(); // _ZN7ee304013fooEv
+ ~ee30401(); // tgen
+ ee30401(); // tgen
+};
+//SIG(1 ee30401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30401 ::foo(){vfunc_called(this, "_ZN7ee304013fooEv");}
+ee30401 ::~ee30401(){ note_dtor("ee30401", this);} // tgen
+ee30401 ::ee30401(){ note_ctor("ee30401", this);} // tgen
+
+static void Test_ee30401()
+{
+ extern Class_Descriptor cd_ee30401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30401, buf);
+ ee30401 *dp, &lv = *(dp=new (buf) ee30401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd0401*), ABISELECT(16,8), "ee30401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd0401*), ABISELECT(16,8), "ee30401");
+ check_base_class_offset(lv, (cc401*)(dd0401*), ABISELECT(16,8), "ee30401");
+ check_base_class_offset(lv, (dd0401*), ABISELECT(16,8), "ee30401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30401.e");
+ test_class_info(&lv, &cd_ee30401);
+ dp->~ee30401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30401(Test_ee30401, "ee30401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30401C1Ev();
+extern void _ZN7ee30401D1Ev();
+Name_Map name_map_ee30401[] = {
+ NSPAIR(_ZN7ee30401C1Ev),
+ NSPAIR(_ZN7ee30401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd0401;
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+static Base_Class bases_ee30401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30401[];
+extern void _ZN7ee304013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304013fooEv,_ZTv0_n12_N7ee304013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee304013fooEv,_ZThn8_N7ee304013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee30401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30401[0]),
+ (VTBL_ENTRY)&_ZN7ee304013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304013fooEv,_ZTv0_n12_N7ee304013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30401[];
+static VTT_ENTRY vtt_ee30401[] = {
+ {&(_ZTV7ee30401[3]), 3,10},
+ {&(_ZTV7ee30401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30401[];
+extern VTBL_ENTRY _ZTV7ee30401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30401[];
+static VTBL_ENTRY alt_thunk_names468[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304013fooEv,_ZTv0_n12_N7ee304013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee304013fooEv,_ZThn8_N7ee304013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30401 = { "ee30401", // class name
+ bases_ee30401, 4,
+ &(vtc_ee30401[0]), // expected_vtbl_contents
+ &(vtt_ee30401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names468,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40401 : dd0401 {
+ int e;
+ virtual void bar(); // _ZN7ee404013barEv
+ ~ee40401(); // tgen
+ ee40401(); // tgen
+};
+//SIG(1 ee40401) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40401 ::bar(){vfunc_called(this, "_ZN7ee404013barEv");}
+ee40401 ::~ee40401(){ note_dtor("ee40401", this);} // tgen
+ee40401 ::ee40401(){ note_ctor("ee40401", this);} // tgen
+
+static void Test_ee40401()
+{
+ extern Class_Descriptor cd_ee40401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40401, buf);
+ ee40401 *dp, &lv = *(dp=new (buf) ee40401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd0401*), 0, "ee40401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd0401*), 0, "ee40401");
+ check_base_class_offset(lv, (cc401*)(dd0401*), 0, "ee40401");
+ check_base_class_offset(lv, (dd0401*), 0, "ee40401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40401.e");
+ test_class_info(&lv, &cd_ee40401);
+ dp->~ee40401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40401(Test_ee40401, "ee40401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40401C1Ev();
+extern void _ZN7ee40401D1Ev();
+Name_Map name_map_ee40401[] = {
+ NSPAIR(_ZN7ee40401C1Ev),
+ NSPAIR(_ZN7ee40401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd0401;
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+static Base_Class bases_ee40401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN7ee404013barEv();
+static VTBL_ENTRY vtc_ee40401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN7ee404013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40401[];
+extern VTBL_ENTRY _ZTV7ee40401[];
+Class_Descriptor cd_ee40401 = { "ee40401", // class name
+ bases_ee40401, 4,
+ &(vtc_ee40401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50401 : virtual dd0401 {
+ int e;
+ virtual void bar(); // _ZN7ee504013barEv
+ ~ee50401(); // tgen
+ ee50401(); // tgen
+};
+//SIG(1 ee50401) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50401 ::bar(){vfunc_called(this, "_ZN7ee504013barEv");}
+ee50401 ::~ee50401(){ note_dtor("ee50401", this);} // tgen
+ee50401 ::ee50401(){ note_ctor("ee50401", this);} // tgen
+
+static void Test_ee50401()
+{
+ extern Class_Descriptor cd_ee50401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50401, buf);
+ ee50401 *dp, &lv = *(dp=new (buf) ee50401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd0401*), ABISELECT(16,8), "ee50401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd0401*), ABISELECT(16,8), "ee50401");
+ check_base_class_offset(lv, (cc401*)(dd0401*), ABISELECT(16,8), "ee50401");
+ check_base_class_offset(lv, (dd0401*), ABISELECT(16,8), "ee50401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50401.e");
+ test_class_info(&lv, &cd_ee50401);
+ dp->~ee50401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50401(Test_ee50401, "ee50401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50401C1Ev();
+extern void _ZN7ee50401D1Ev();
+Name_Map name_map_ee50401[] = {
+ NSPAIR(_ZN7ee50401C1Ev),
+ NSPAIR(_ZN7ee50401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd0401;
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+static Base_Class bases_ee50401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50401[];
+extern void _ZN7ee504013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504013barEv,_ZTv0_n16_N7ee504013barEv)();
+extern void ABISELECT(_ZThn16_N7ee504013barEv,_ZThn8_N7ee504013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50401[0]),
+ (VTBL_ENTRY)&_ZN7ee504013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504013barEv,_ZTv0_n16_N7ee504013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50401[];
+static VTT_ENTRY vtt_ee50401[] = {
+ {&(_ZTV7ee50401[3]), 3,10},
+ {&(_ZTV7ee50401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50401[];
+extern VTBL_ENTRY _ZTV7ee50401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50401[];
+static VTBL_ENTRY alt_thunk_names469[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504013barEv,_ZTv0_n16_N7ee504013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504013barEv,_ZThn8_N7ee504013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50401 = { "ee50401", // class name
+ bases_ee50401, 4,
+ &(vtc_ee50401[0]), // expected_vtbl_contents
+ &(vtt_ee50401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names469,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60401 : dd0401 {
+ int e;
+ virtual void foo(); // _ZN7ee604013fooEv
+ virtual void bar(); // _ZN7ee604013barEv
+ ~ee60401(); // tgen
+ ee60401(); // tgen
+};
+//SIG(1 ee60401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60401 ::foo(){vfunc_called(this, "_ZN7ee604013fooEv");}
+void ee60401 ::bar(){vfunc_called(this, "_ZN7ee604013barEv");}
+ee60401 ::~ee60401(){ note_dtor("ee60401", this);} // tgen
+ee60401 ::ee60401(){ note_ctor("ee60401", this);} // tgen
+
+static void Test_ee60401()
+{
+ extern Class_Descriptor cd_ee60401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60401, buf);
+ ee60401 *dp, &lv = *(dp=new (buf) ee60401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd0401*), 0, "ee60401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd0401*), 0, "ee60401");
+ check_base_class_offset(lv, (cc401*)(dd0401*), 0, "ee60401");
+ check_base_class_offset(lv, (dd0401*), 0, "ee60401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60401.e");
+ test_class_info(&lv, &cd_ee60401);
+ dp->~ee60401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60401(Test_ee60401, "ee60401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60401C1Ev();
+extern void _ZN7ee60401D1Ev();
+Name_Map name_map_ee60401[] = {
+ NSPAIR(_ZN7ee60401C1Ev),
+ NSPAIR(_ZN7ee60401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd0401;
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+static Base_Class bases_ee60401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60401[];
+extern void _ZN7ee604013fooEv();
+extern void _ZN7ee604013barEv();
+static VTBL_ENTRY vtc_ee60401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60401[0]),
+ (VTBL_ENTRY)&_ZN7ee604013fooEv,
+ (VTBL_ENTRY)&_ZN7ee604013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60401[];
+extern VTBL_ENTRY _ZTV7ee60401[];
+Class_Descriptor cd_ee60401 = { "ee60401", // class name
+ bases_ee60401, 4,
+ &(vtc_ee60401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70401 : virtual dd0401 {
+ int e;
+ virtual void foo(); // _ZN7ee704013fooEv
+ virtual void bar(); // _ZN7ee704013barEv
+ ~ee70401(); // tgen
+ ee70401(); // tgen
+};
+//SIG(1 ee70401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70401 ::foo(){vfunc_called(this, "_ZN7ee704013fooEv");}
+void ee70401 ::bar(){vfunc_called(this, "_ZN7ee704013barEv");}
+ee70401 ::~ee70401(){ note_dtor("ee70401", this);} // tgen
+ee70401 ::ee70401(){ note_ctor("ee70401", this);} // tgen
+
+static void Test_ee70401()
+{
+ extern Class_Descriptor cd_ee70401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70401, buf);
+ ee70401 *dp, &lv = *(dp=new (buf) ee70401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd0401*), ABISELECT(16,8), "ee70401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd0401*), ABISELECT(16,8), "ee70401");
+ check_base_class_offset(lv, (cc401*)(dd0401*), ABISELECT(16,8), "ee70401");
+ check_base_class_offset(lv, (dd0401*), ABISELECT(16,8), "ee70401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70401.e");
+ test_class_info(&lv, &cd_ee70401);
+ dp->~ee70401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70401(Test_ee70401, "ee70401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70401C1Ev();
+extern void _ZN7ee70401D1Ev();
+Name_Map name_map_ee70401[] = {
+ NSPAIR(_ZN7ee70401C1Ev),
+ NSPAIR(_ZN7ee70401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd0401;
+extern VTBL_ENTRY _ZTI6dd0401[];
+extern VTBL_ENTRY _ZTV6dd0401[];
+static Base_Class bases_ee70401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70401[];
+extern void _ZN7ee704013fooEv();
+extern void _ZN7ee704013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704013fooEv,_ZTv0_n12_N7ee704013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee704013fooEv,_ZThn8_N7ee704013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704013barEv,_ZTv0_n16_N7ee704013barEv)();
+extern void ABISELECT(_ZThn16_N7ee704013barEv,_ZThn8_N7ee704013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70401[0]),
+ (VTBL_ENTRY)&_ZN7ee704013fooEv,
+ (VTBL_ENTRY)&_ZN7ee704013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704013fooEv,_ZTv0_n12_N7ee704013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704013barEv,_ZTv0_n16_N7ee704013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70401[];
+static VTT_ENTRY vtt_ee70401[] = {
+ {&(_ZTV7ee70401[3]), 3,11},
+ {&(_ZTV7ee70401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70401[];
+extern VTBL_ENTRY _ZTV7ee70401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70401[];
+static VTBL_ENTRY alt_thunk_names470[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704013barEv,_ZTv0_n16_N7ee704013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704013barEv,_ZThn8_N7ee704013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704013fooEv,_ZTv0_n12_N7ee704013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704013fooEv,_ZThn8_N7ee704013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70401 = { "ee70401", // class name
+ bases_ee70401, 4,
+ &(vtc_ee70401[0]), // expected_vtbl_contents
+ &(vtt_ee70401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names470,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1401 : virtual cc401 {
+ int d;
+ ~dd1401(); // tgen
+ dd1401(); // tgen
+};
+//SIG(-1 dd1401) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} v1 Fi} Fi}
+
+
+dd1401 ::~dd1401(){ note_dtor("dd1401", this);} // tgen
+dd1401 ::dd1401(){ note_ctor("dd1401", this);} // tgen
+
+static void Test_dd1401()
+{
+ extern Class_Descriptor cd_dd1401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1401, buf);
+ dd1401 *dp, &lv = *(dp=new (buf) dd1401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,8), "dd1401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,8), "dd1401");
+ check_base_class_offset(lv, (cc401*), ABISELECT(16,8), "dd1401");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1401.d");
+ test_class_info(&lv, &cd_dd1401);
+ dp->~dd1401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1401(Test_dd1401, "dd1401", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1401C1Ev();
+extern void _ZN6dd1401D1Ev();
+Name_Map name_map_dd1401[] = {
+ NSPAIR(_ZN6dd1401C1Ev),
+ NSPAIR(_ZN6dd1401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+static Base_Class bases_dd1401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_dd1401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1401[];
+static VTT_ENTRY vtt_dd1401[] = {
+ {&(_ZTV6dd1401[3]), 3,9},
+ {&(_ZTV6dd1401[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+Class_Descriptor cd_dd1401 = { "dd1401", // class name
+ bases_dd1401, 3,
+ &(vtc_dd1401[0]), // expected_vtbl_contents
+ &(vtt_dd1401[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1401),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1401),2, //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 ee01401 : dd1401 {
+ int e;
+ ~ee01401(); // tgen
+ ee01401(); // tgen
+};
+//SIG(1 ee01401) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01401 ::~ee01401(){ note_dtor("ee01401", this);} // tgen
+ee01401 ::ee01401(){ note_ctor("ee01401", this);} // tgen
+
+static void Test_ee01401()
+{
+ extern Class_Descriptor cd_ee01401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01401, buf);
+ ee01401 *dp, &lv = *(dp=new (buf) ee01401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee01401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee01401");
+ check_base_class_offset(lv, (cc401*)(dd1401*), ABISELECT(16,12), "ee01401");
+ check_base_class_offset(lv, (dd1401*), 0, "ee01401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01401.e");
+ test_class_info(&lv, &cd_ee01401);
+ dp->~ee01401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01401(Test_ee01401, "ee01401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01401C1Ev();
+extern void _ZN7ee01401D1Ev();
+Name_Map name_map_ee01401[] = {
+ NSPAIR(_ZN7ee01401C1Ev),
+ NSPAIR(_ZN7ee01401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd1401;
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+static Base_Class bases_ee01401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee01401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01401[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01401[];
+static VTBL_ENTRY _tg__ZTV6dd1401__7ee01401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+};
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd1401__7ee01401[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee01401[] = {
+ {&(_ZTV7ee01401[3]), 3,9},
+ {&(_tg__ZTV6dd1401__7ee01401[3]), 3,3},
+ {&(_tg__ZTV5cc401__6dd1401__7ee01401[4]), 4,6},
+ {&(_ZTV7ee01401[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01401[];
+extern VTBL_ENTRY _ZTV7ee01401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01401[];
+Class_Descriptor cd_ee01401 = { "ee01401", // class name
+ bases_ee01401, 4,
+ &(vtc_ee01401[0]), // expected_vtbl_contents
+ &(vtt_ee01401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01401),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11401 : virtual dd1401 {
+ int e;
+ ~ee11401(); // tgen
+ ee11401(); // tgen
+};
+//SIG(1 ee11401) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11401 ::~ee11401(){ note_dtor("ee11401", this);} // tgen
+ee11401 ::ee11401(){ note_ctor("ee11401", this);} // tgen
+
+static void Test_ee11401()
+{
+ extern Class_Descriptor cd_ee11401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11401, buf);
+ ee11401 *dp, &lv = *(dp=new (buf) ee11401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee11401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee11401");
+ check_base_class_offset(lv, (cc401*)(dd1401*), ABISELECT(32,16), "ee11401");
+ check_base_class_offset(lv, (dd1401*), ABISELECT(16,8), "ee11401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11401.e");
+ test_class_info(&lv, &cd_ee11401);
+ dp->~ee11401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11401(Test_ee11401, "ee11401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11401C1Ev();
+extern void _ZN7ee11401D1Ev();
+Name_Map name_map_ee11401[] = {
+ NSPAIR(_ZN7ee11401C1Ev),
+ NSPAIR(_ZN7ee11401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd1401;
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+static Base_Class bases_ee11401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee11401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11401[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11401[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11401[];
+static VTBL_ENTRY _tg__ZTV6dd1401__7ee11401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+};
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd1401__7ee11401[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee11401[] = {
+ {&(_ZTV7ee11401[4]), 4,13},
+ {&(_ZTV7ee11401[7]), 7,13},
+ {&(_ZTV7ee11401[11]), 11,13},
+ {&(_tg__ZTV6dd1401__7ee11401[3]), 3,3},
+ {&(_tg__ZTV5cc401__6dd1401__7ee11401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11401[];
+extern VTBL_ENTRY _ZTV7ee11401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11401[];
+Class_Descriptor cd_ee11401 = { "ee11401", // class name
+ bases_ee11401, 4,
+ &(vtc_ee11401[0]), // expected_vtbl_contents
+ &(vtt_ee11401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11401),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21401 : dd1401 {
+ int e;
+ virtual void foo(); // _ZN7ee214013fooEv
+ ~ee21401(); // tgen
+ ee21401(); // tgen
+};
+//SIG(1 ee21401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21401 ::foo(){vfunc_called(this, "_ZN7ee214013fooEv");}
+ee21401 ::~ee21401(){ note_dtor("ee21401", this);} // tgen
+ee21401 ::ee21401(){ note_ctor("ee21401", this);} // tgen
+
+static void Test_ee21401()
+{
+ extern Class_Descriptor cd_ee21401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21401, buf);
+ ee21401 *dp, &lv = *(dp=new (buf) ee21401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee21401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee21401");
+ check_base_class_offset(lv, (cc401*)(dd1401*), ABISELECT(16,12), "ee21401");
+ check_base_class_offset(lv, (dd1401*), 0, "ee21401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21401.e");
+ test_class_info(&lv, &cd_ee21401);
+ dp->~ee21401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21401(Test_ee21401, "ee21401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21401C1Ev();
+extern void _ZN7ee21401D1Ev();
+Name_Map name_map_ee21401[] = {
+ NSPAIR(_ZN7ee21401C1Ev),
+ NSPAIR(_ZN7ee21401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd1401;
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+static Base_Class bases_ee21401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21401[];
+extern void _ZN7ee214013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214013fooEv,_ZTv0_n12_N7ee214013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee214013fooEv,_ZThn12_N7ee214013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee21401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21401[0]),
+ (VTBL_ENTRY)&_ZN7ee214013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214013fooEv,_ZTv0_n12_N7ee214013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21401[];
+static VTBL_ENTRY _tg__ZTV6dd1401__7ee21401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+};
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd1401__7ee21401[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee21401[] = {
+ {&(_ZTV7ee21401[3]), 3,10},
+ {&(_tg__ZTV6dd1401__7ee21401[3]), 3,3},
+ {&(_tg__ZTV5cc401__6dd1401__7ee21401[4]), 4,6},
+ {&(_ZTV7ee21401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21401[];
+extern VTBL_ENTRY _ZTV7ee21401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21401[];
+static VTBL_ENTRY alt_thunk_names471[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214013fooEv,_ZTv0_n12_N7ee214013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee214013fooEv,_ZThn12_N7ee214013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21401 = { "ee21401", // class name
+ bases_ee21401, 4,
+ &(vtc_ee21401[0]), // expected_vtbl_contents
+ &(vtt_ee21401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names471,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31401 : virtual dd1401 {
+ int e;
+ virtual void foo(); // _ZN7ee314013fooEv
+ ~ee31401(); // tgen
+ ee31401(); // tgen
+};
+//SIG(1 ee31401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31401 ::foo(){vfunc_called(this, "_ZN7ee314013fooEv");}
+ee31401 ::~ee31401(){ note_dtor("ee31401", this);} // tgen
+ee31401 ::ee31401(){ note_ctor("ee31401", this);} // tgen
+
+static void Test_ee31401()
+{
+ extern Class_Descriptor cd_ee31401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31401, buf);
+ ee31401 *dp, &lv = *(dp=new (buf) ee31401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee31401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee31401");
+ check_base_class_offset(lv, (cc401*)(dd1401*), ABISELECT(32,16), "ee31401");
+ check_base_class_offset(lv, (dd1401*), ABISELECT(16,8), "ee31401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31401.e");
+ test_class_info(&lv, &cd_ee31401);
+ dp->~ee31401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31401(Test_ee31401, "ee31401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31401C1Ev();
+extern void _ZN7ee31401D1Ev();
+Name_Map name_map_ee31401[] = {
+ NSPAIR(_ZN7ee31401C1Ev),
+ NSPAIR(_ZN7ee31401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd1401;
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+static Base_Class bases_ee31401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31401[];
+extern void _ZN7ee314013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314013fooEv,_ZTv0_n12_N7ee314013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee314013fooEv,_ZThn16_N7ee314013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee31401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31401[0]),
+ (VTBL_ENTRY)&_ZN7ee314013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31401[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314013fooEv,_ZTv0_n12_N7ee314013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31401[];
+static VTBL_ENTRY _tg__ZTV6dd1401__7ee31401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+};
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd1401__7ee31401[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee31401[] = {
+ {&(_ZTV7ee31401[4]), 4,14},
+ {&(_ZTV7ee31401[8]), 8,14},
+ {&(_ZTV7ee31401[12]), 12,14},
+ {&(_tg__ZTV6dd1401__7ee31401[3]), 3,3},
+ {&(_tg__ZTV5cc401__6dd1401__7ee31401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31401[];
+extern VTBL_ENTRY _ZTV7ee31401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31401[];
+static VTBL_ENTRY alt_thunk_names472[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314013fooEv,_ZTv0_n12_N7ee314013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee314013fooEv,_ZThn16_N7ee314013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31401 = { "ee31401", // class name
+ bases_ee31401, 4,
+ &(vtc_ee31401[0]), // expected_vtbl_contents
+ &(vtt_ee31401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31401),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names472,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41401 : dd1401 {
+ int e;
+ virtual void bar(); // _ZN7ee414013barEv
+ ~ee41401(); // tgen
+ ee41401(); // tgen
+};
+//SIG(1 ee41401) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41401 ::bar(){vfunc_called(this, "_ZN7ee414013barEv");}
+ee41401 ::~ee41401(){ note_dtor("ee41401", this);} // tgen
+ee41401 ::ee41401(){ note_ctor("ee41401", this);} // tgen
+
+static void Test_ee41401()
+{
+ extern Class_Descriptor cd_ee41401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41401, buf);
+ ee41401 *dp, &lv = *(dp=new (buf) ee41401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee41401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee41401");
+ check_base_class_offset(lv, (cc401*)(dd1401*), ABISELECT(16,12), "ee41401");
+ check_base_class_offset(lv, (dd1401*), 0, "ee41401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41401.e");
+ test_class_info(&lv, &cd_ee41401);
+ dp->~ee41401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41401(Test_ee41401, "ee41401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41401C1Ev();
+extern void _ZN7ee41401D1Ev();
+Name_Map name_map_ee41401[] = {
+ NSPAIR(_ZN7ee41401C1Ev),
+ NSPAIR(_ZN7ee41401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd1401;
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+static Base_Class bases_ee41401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41401[];
+extern void _ZN7ee414013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414013barEv,_ZTv0_n16_N7ee414013barEv)();
+extern void ABISELECT(_ZThn16_N7ee414013barEv,_ZThn12_N7ee414013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41401[0]),
+ (VTBL_ENTRY)&_ZN7ee414013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414013barEv,_ZTv0_n16_N7ee414013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41401[];
+static VTBL_ENTRY _tg__ZTV6dd1401__7ee41401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+};
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd1401__7ee41401[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee41401[] = {
+ {&(_ZTV7ee41401[3]), 3,10},
+ {&(_tg__ZTV6dd1401__7ee41401[3]), 3,3},
+ {&(_tg__ZTV5cc401__6dd1401__7ee41401[4]), 4,6},
+ {&(_ZTV7ee41401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41401[];
+extern VTBL_ENTRY _ZTV7ee41401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41401[];
+static VTBL_ENTRY alt_thunk_names473[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414013barEv,_ZTv0_n16_N7ee414013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414013barEv,_ZThn12_N7ee414013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41401 = { "ee41401", // class name
+ bases_ee41401, 4,
+ &(vtc_ee41401[0]), // expected_vtbl_contents
+ &(vtt_ee41401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names473,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51401 : virtual dd1401 {
+ int e;
+ virtual void bar(); // _ZN7ee514013barEv
+ ~ee51401(); // tgen
+ ee51401(); // tgen
+};
+//SIG(1 ee51401) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51401 ::bar(){vfunc_called(this, "_ZN7ee514013barEv");}
+ee51401 ::~ee51401(){ note_dtor("ee51401", this);} // tgen
+ee51401 ::ee51401(){ note_ctor("ee51401", this);} // tgen
+
+static void Test_ee51401()
+{
+ extern Class_Descriptor cd_ee51401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51401, buf);
+ ee51401 *dp, &lv = *(dp=new (buf) ee51401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee51401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee51401");
+ check_base_class_offset(lv, (cc401*)(dd1401*), ABISELECT(32,16), "ee51401");
+ check_base_class_offset(lv, (dd1401*), ABISELECT(16,8), "ee51401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51401.e");
+ test_class_info(&lv, &cd_ee51401);
+ dp->~ee51401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51401(Test_ee51401, "ee51401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51401C1Ev();
+extern void _ZN7ee51401D1Ev();
+Name_Map name_map_ee51401[] = {
+ NSPAIR(_ZN7ee51401C1Ev),
+ NSPAIR(_ZN7ee51401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd1401;
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+static Base_Class bases_ee51401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51401[];
+extern void _ZN7ee514013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514013barEv,_ZTv0_n16_N7ee514013barEv)();
+extern void ABISELECT(_ZThn32_N7ee514013barEv,_ZThn16_N7ee514013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51401[0]),
+ (VTBL_ENTRY)&_ZN7ee514013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51401[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514013barEv,_ZTv0_n16_N7ee514013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51401[];
+static VTBL_ENTRY _tg__ZTV6dd1401__7ee51401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+};
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd1401__7ee51401[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee51401[] = {
+ {&(_ZTV7ee51401[4]), 4,14},
+ {&(_ZTV7ee51401[8]), 8,14},
+ {&(_ZTV7ee51401[12]), 12,14},
+ {&(_tg__ZTV6dd1401__7ee51401[3]), 3,3},
+ {&(_tg__ZTV5cc401__6dd1401__7ee51401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51401[];
+extern VTBL_ENTRY _ZTV7ee51401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51401[];
+static VTBL_ENTRY alt_thunk_names474[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514013barEv,_ZTv0_n16_N7ee514013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514013barEv,_ZThn16_N7ee514013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51401 = { "ee51401", // class name
+ bases_ee51401, 4,
+ &(vtc_ee51401[0]), // expected_vtbl_contents
+ &(vtt_ee51401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51401),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names474,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61401 : dd1401 {
+ int e;
+ virtual void foo(); // _ZN7ee614013fooEv
+ virtual void bar(); // _ZN7ee614013barEv
+ ~ee61401(); // tgen
+ ee61401(); // tgen
+};
+//SIG(1 ee61401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61401 ::foo(){vfunc_called(this, "_ZN7ee614013fooEv");}
+void ee61401 ::bar(){vfunc_called(this, "_ZN7ee614013barEv");}
+ee61401 ::~ee61401(){ note_dtor("ee61401", this);} // tgen
+ee61401 ::ee61401(){ note_ctor("ee61401", this);} // tgen
+
+static void Test_ee61401()
+{
+ extern Class_Descriptor cd_ee61401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61401, buf);
+ ee61401 *dp, &lv = *(dp=new (buf) ee61401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee61401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee61401");
+ check_base_class_offset(lv, (cc401*)(dd1401*), ABISELECT(16,12), "ee61401");
+ check_base_class_offset(lv, (dd1401*), 0, "ee61401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61401.e");
+ test_class_info(&lv, &cd_ee61401);
+ dp->~ee61401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61401(Test_ee61401, "ee61401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61401C1Ev();
+extern void _ZN7ee61401D1Ev();
+Name_Map name_map_ee61401[] = {
+ NSPAIR(_ZN7ee61401C1Ev),
+ NSPAIR(_ZN7ee61401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd1401;
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+static Base_Class bases_ee61401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61401[];
+extern void _ZN7ee614013fooEv();
+extern void _ZN7ee614013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614013fooEv,_ZTv0_n12_N7ee614013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee614013fooEv,_ZThn12_N7ee614013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614013barEv,_ZTv0_n16_N7ee614013barEv)();
+extern void ABISELECT(_ZThn16_N7ee614013barEv,_ZThn12_N7ee614013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61401[0]),
+ (VTBL_ENTRY)&_ZN7ee614013fooEv,
+ (VTBL_ENTRY)&_ZN7ee614013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614013fooEv,_ZTv0_n12_N7ee614013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614013barEv,_ZTv0_n16_N7ee614013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61401[];
+static VTBL_ENTRY _tg__ZTV6dd1401__7ee61401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+};
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd1401__7ee61401[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee61401[] = {
+ {&(_ZTV7ee61401[3]), 3,11},
+ {&(_tg__ZTV6dd1401__7ee61401[3]), 3,3},
+ {&(_tg__ZTV5cc401__6dd1401__7ee61401[4]), 4,6},
+ {&(_ZTV7ee61401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61401[];
+extern VTBL_ENTRY _ZTV7ee61401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61401[];
+static VTBL_ENTRY alt_thunk_names475[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614013barEv,_ZTv0_n16_N7ee614013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614013barEv,_ZThn12_N7ee614013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614013fooEv,_ZTv0_n12_N7ee614013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614013fooEv,_ZThn12_N7ee614013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61401 = { "ee61401", // class name
+ bases_ee61401, 4,
+ &(vtc_ee61401[0]), // expected_vtbl_contents
+ &(vtt_ee61401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names475,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71401 : virtual dd1401 {
+ int e;
+ virtual void foo(); // _ZN7ee714013fooEv
+ virtual void bar(); // _ZN7ee714013barEv
+ ~ee71401(); // tgen
+ ee71401(); // tgen
+};
+//SIG(1 ee71401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71401 ::foo(){vfunc_called(this, "_ZN7ee714013fooEv");}
+void ee71401 ::bar(){vfunc_called(this, "_ZN7ee714013barEv");}
+ee71401 ::~ee71401(){ note_dtor("ee71401", this);} // tgen
+ee71401 ::ee71401(){ note_ctor("ee71401", this);} // tgen
+
+static void Test_ee71401()
+{
+ extern Class_Descriptor cd_ee71401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71401, buf);
+ ee71401 *dp, &lv = *(dp=new (buf) ee71401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee71401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee71401");
+ check_base_class_offset(lv, (cc401*)(dd1401*), ABISELECT(32,16), "ee71401");
+ check_base_class_offset(lv, (dd1401*), ABISELECT(16,8), "ee71401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71401.e");
+ test_class_info(&lv, &cd_ee71401);
+ dp->~ee71401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71401(Test_ee71401, "ee71401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71401C1Ev();
+extern void _ZN7ee71401D1Ev();
+Name_Map name_map_ee71401[] = {
+ NSPAIR(_ZN7ee71401C1Ev),
+ NSPAIR(_ZN7ee71401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd1401;
+extern VTBL_ENTRY _ZTI6dd1401[];
+extern VTBL_ENTRY _ZTV6dd1401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1401[];
+static Base_Class bases_ee71401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1401, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71401[];
+extern void _ZN7ee714013fooEv();
+extern void _ZN7ee714013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714013fooEv,_ZTv0_n12_N7ee714013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee714013fooEv,_ZThn16_N7ee714013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714013barEv,_ZTv0_n16_N7ee714013barEv)();
+extern void ABISELECT(_ZThn32_N7ee714013barEv,_ZThn16_N7ee714013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71401[0]),
+ (VTBL_ENTRY)&_ZN7ee714013fooEv,
+ (VTBL_ENTRY)&_ZN7ee714013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71401[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714013fooEv,_ZTv0_n12_N7ee714013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714013barEv,_ZTv0_n16_N7ee714013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71401[];
+static VTBL_ENTRY _tg__ZTV6dd1401__7ee71401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+};
+extern void _ZN3aa13fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd1401__7ee71401[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee71401[] = {
+ {&(_ZTV7ee71401[4]), 4,15},
+ {&(_ZTV7ee71401[9]), 9,15},
+ {&(_ZTV7ee71401[13]), 13,15},
+ {&(_tg__ZTV6dd1401__7ee71401[3]), 3,3},
+ {&(_tg__ZTV5cc401__6dd1401__7ee71401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71401[];
+extern VTBL_ENTRY _ZTV7ee71401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71401[];
+static VTBL_ENTRY alt_thunk_names476[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714013barEv,_ZTv0_n16_N7ee714013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714013barEv,_ZThn16_N7ee714013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714013fooEv,_ZTv0_n12_N7ee714013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714013fooEv,_ZThn16_N7ee714013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71401 = { "ee71401", // class name
+ bases_ee71401, 4,
+ &(vtc_ee71401[0]), // expected_vtbl_contents
+ &(vtt_ee71401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71401),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names476,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2401 : cc401 {
+ int d;
+ virtual void foo(); // _ZN6dd24013fooEv
+ ~dd2401(); // tgen
+ dd2401(); // tgen
+};
+//SIG(-1 dd2401) C1{ BC2{ BC3{ BC4{ v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd2401 ::foo(){vfunc_called(this, "_ZN6dd24013fooEv");}
+dd2401 ::~dd2401(){ note_dtor("dd2401", this);} // tgen
+dd2401 ::dd2401(){ note_ctor("dd2401", this);} // tgen
+
+static void Test_dd2401()
+{
+ extern Class_Descriptor cd_dd2401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2401, buf);
+ dd2401 *dp, &lv = *(dp=new (buf) dd2401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), 0, "dd2401");
+ check_base_class_offset(lv, (bb01*)(cc401*), 0, "dd2401");
+ check_base_class_offset(lv, (cc401*), 0, "dd2401");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2401.d");
+ test_class_info(&lv, &cd_dd2401);
+ dp->~dd2401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2401(Test_dd2401, "dd2401", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2401C1Ev();
+extern void _ZN6dd2401D1Ev();
+Name_Map name_map_dd2401[] = {
+ NSPAIR(_ZN6dd2401C1Ev),
+ NSPAIR(_ZN6dd2401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+static Base_Class bases_dd2401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern void _ZN6dd24013fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_dd2401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2401[0]),
+ (VTBL_ENTRY)&_ZN6dd24013fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+Class_Descriptor cd_dd2401 = { "dd2401", // class name
+ bases_dd2401, 3,
+ &(vtc_dd2401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02401 : dd2401 {
+ int e;
+ ~ee02401(); // tgen
+ ee02401(); // tgen
+};
+//SIG(1 ee02401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02401 ::~ee02401(){ note_dtor("ee02401", this);} // tgen
+ee02401 ::ee02401(){ note_ctor("ee02401", this);} // tgen
+
+static void Test_ee02401()
+{
+ extern Class_Descriptor cd_ee02401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02401, buf);
+ ee02401 *dp, &lv = *(dp=new (buf) ee02401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd2401*), 0, "ee02401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd2401*), 0, "ee02401");
+ check_base_class_offset(lv, (cc401*)(dd2401*), 0, "ee02401");
+ check_base_class_offset(lv, (dd2401*), 0, "ee02401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02401.e");
+ test_class_info(&lv, &cd_ee02401);
+ dp->~ee02401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02401(Test_ee02401, "ee02401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02401C1Ev();
+extern void _ZN7ee02401D1Ev();
+Name_Map name_map_ee02401[] = {
+ NSPAIR(_ZN7ee02401C1Ev),
+ NSPAIR(_ZN7ee02401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd2401;
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+static Base_Class bases_ee02401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2401, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02401[];
+extern void _ZN6dd24013fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee02401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02401[0]),
+ (VTBL_ENTRY)&_ZN6dd24013fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02401[];
+extern VTBL_ENTRY _ZTV7ee02401[];
+Class_Descriptor cd_ee02401 = { "ee02401", // class name
+ bases_ee02401, 4,
+ &(vtc_ee02401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12401 : virtual dd2401 {
+ int e;
+ ~ee12401(); // tgen
+ ee12401(); // tgen
+};
+//SIG(1 ee12401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12401 ::~ee12401(){ note_dtor("ee12401", this);} // tgen
+ee12401 ::ee12401(){ note_ctor("ee12401", this);} // tgen
+
+static void Test_ee12401()
+{
+ extern Class_Descriptor cd_ee12401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12401, buf);
+ ee12401 *dp, &lv = *(dp=new (buf) ee12401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd2401*), ABISELECT(16,8), "ee12401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd2401*), ABISELECT(16,8), "ee12401");
+ check_base_class_offset(lv, (cc401*)(dd2401*), ABISELECT(16,8), "ee12401");
+ check_base_class_offset(lv, (dd2401*), ABISELECT(16,8), "ee12401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12401.e");
+ test_class_info(&lv, &cd_ee12401);
+ dp->~ee12401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12401(Test_ee12401, "ee12401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12401C1Ev();
+extern void _ZN7ee12401D1Ev();
+Name_Map name_map_ee12401[] = {
+ NSPAIR(_ZN7ee12401C1Ev),
+ NSPAIR(_ZN7ee12401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd2401;
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+static Base_Class bases_ee12401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2401, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12401[];
+extern void _ZN6dd24013fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee12401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12401[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12401[0]),
+ (VTBL_ENTRY)&_ZN6dd24013fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12401[];
+static VTT_ENTRY vtt_ee12401[] = {
+ {&(_ZTV7ee12401[3]), 3,9},
+ {&(_ZTV7ee12401[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12401[];
+extern VTBL_ENTRY _ZTV7ee12401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12401[];
+Class_Descriptor cd_ee12401 = { "ee12401", // class name
+ bases_ee12401, 4,
+ &(vtc_ee12401[0]), // expected_vtbl_contents
+ &(vtt_ee12401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12401),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22401 : dd2401 {
+ int e;
+ virtual void foo(); // _ZN7ee224013fooEv
+ ~ee22401(); // tgen
+ ee22401(); // tgen
+};
+//SIG(1 ee22401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22401 ::foo(){vfunc_called(this, "_ZN7ee224013fooEv");}
+ee22401 ::~ee22401(){ note_dtor("ee22401", this);} // tgen
+ee22401 ::ee22401(){ note_ctor("ee22401", this);} // tgen
+
+static void Test_ee22401()
+{
+ extern Class_Descriptor cd_ee22401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22401, buf);
+ ee22401 *dp, &lv = *(dp=new (buf) ee22401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd2401*), 0, "ee22401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd2401*), 0, "ee22401");
+ check_base_class_offset(lv, (cc401*)(dd2401*), 0, "ee22401");
+ check_base_class_offset(lv, (dd2401*), 0, "ee22401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22401.e");
+ test_class_info(&lv, &cd_ee22401);
+ dp->~ee22401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22401(Test_ee22401, "ee22401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22401C1Ev();
+extern void _ZN7ee22401D1Ev();
+Name_Map name_map_ee22401[] = {
+ NSPAIR(_ZN7ee22401C1Ev),
+ NSPAIR(_ZN7ee22401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd2401;
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+static Base_Class bases_ee22401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22401[];
+extern void _ZN7ee224013fooEv();
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee22401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22401[0]),
+ (VTBL_ENTRY)&_ZN7ee224013fooEv,
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22401[];
+extern VTBL_ENTRY _ZTV7ee22401[];
+Class_Descriptor cd_ee22401 = { "ee22401", // class name
+ bases_ee22401, 4,
+ &(vtc_ee22401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32401 : virtual dd2401 {
+ int e;
+ virtual void foo(); // _ZN7ee324013fooEv
+ ~ee32401(); // tgen
+ ee32401(); // tgen
+};
+//SIG(1 ee32401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32401 ::foo(){vfunc_called(this, "_ZN7ee324013fooEv");}
+ee32401 ::~ee32401(){ note_dtor("ee32401", this);} // tgen
+ee32401 ::ee32401(){ note_ctor("ee32401", this);} // tgen
+
+static void Test_ee32401()
+{
+ extern Class_Descriptor cd_ee32401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32401, buf);
+ ee32401 *dp, &lv = *(dp=new (buf) ee32401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd2401*), ABISELECT(16,8), "ee32401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd2401*), ABISELECT(16,8), "ee32401");
+ check_base_class_offset(lv, (cc401*)(dd2401*), ABISELECT(16,8), "ee32401");
+ check_base_class_offset(lv, (dd2401*), ABISELECT(16,8), "ee32401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32401.e");
+ test_class_info(&lv, &cd_ee32401);
+ dp->~ee32401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32401(Test_ee32401, "ee32401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32401C1Ev();
+extern void _ZN7ee32401D1Ev();
+Name_Map name_map_ee32401[] = {
+ NSPAIR(_ZN7ee32401C1Ev),
+ NSPAIR(_ZN7ee32401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd2401;
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+static Base_Class bases_ee32401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32401[];
+extern void _ZN7ee324013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee324013fooEv,_ZTv0_n12_N7ee324013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324013fooEv,_ZThn8_N7ee324013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee32401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32401[0]),
+ (VTBL_ENTRY)&_ZN7ee324013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324013fooEv,_ZTv0_n12_N7ee324013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32401[];
+static VTT_ENTRY vtt_ee32401[] = {
+ {&(_ZTV7ee32401[3]), 3,10},
+ {&(_ZTV7ee32401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32401[];
+extern VTBL_ENTRY _ZTV7ee32401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32401[];
+static VTBL_ENTRY alt_thunk_names477[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324013fooEv,_ZTv0_n12_N7ee324013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324013fooEv,_ZThn8_N7ee324013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32401 = { "ee32401", // class name
+ bases_ee32401, 4,
+ &(vtc_ee32401[0]), // expected_vtbl_contents
+ &(vtt_ee32401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names477,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42401 : dd2401 {
+ int e;
+ virtual void bar(); // _ZN7ee424013barEv
+ ~ee42401(); // tgen
+ ee42401(); // tgen
+};
+//SIG(1 ee42401) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42401 ::bar(){vfunc_called(this, "_ZN7ee424013barEv");}
+ee42401 ::~ee42401(){ note_dtor("ee42401", this);} // tgen
+ee42401 ::ee42401(){ note_ctor("ee42401", this);} // tgen
+
+static void Test_ee42401()
+{
+ extern Class_Descriptor cd_ee42401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42401, buf);
+ ee42401 *dp, &lv = *(dp=new (buf) ee42401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd2401*), 0, "ee42401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd2401*), 0, "ee42401");
+ check_base_class_offset(lv, (cc401*)(dd2401*), 0, "ee42401");
+ check_base_class_offset(lv, (dd2401*), 0, "ee42401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42401.e");
+ test_class_info(&lv, &cd_ee42401);
+ dp->~ee42401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42401(Test_ee42401, "ee42401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42401C1Ev();
+extern void _ZN7ee42401D1Ev();
+Name_Map name_map_ee42401[] = {
+ NSPAIR(_ZN7ee42401C1Ev),
+ NSPAIR(_ZN7ee42401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd2401;
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+static Base_Class bases_ee42401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42401[];
+extern void _ZN6dd24013fooEv();
+extern void _ZN7ee424013barEv();
+static VTBL_ENTRY vtc_ee42401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42401[0]),
+ (VTBL_ENTRY)&_ZN6dd24013fooEv,
+ (VTBL_ENTRY)&_ZN7ee424013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42401[];
+extern VTBL_ENTRY _ZTV7ee42401[];
+Class_Descriptor cd_ee42401 = { "ee42401", // class name
+ bases_ee42401, 4,
+ &(vtc_ee42401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52401 : virtual dd2401 {
+ int e;
+ virtual void bar(); // _ZN7ee524013barEv
+ ~ee52401(); // tgen
+ ee52401(); // tgen
+};
+//SIG(1 ee52401) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52401 ::bar(){vfunc_called(this, "_ZN7ee524013barEv");}
+ee52401 ::~ee52401(){ note_dtor("ee52401", this);} // tgen
+ee52401 ::ee52401(){ note_ctor("ee52401", this);} // tgen
+
+static void Test_ee52401()
+{
+ extern Class_Descriptor cd_ee52401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52401, buf);
+ ee52401 *dp, &lv = *(dp=new (buf) ee52401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd2401*), ABISELECT(16,8), "ee52401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd2401*), ABISELECT(16,8), "ee52401");
+ check_base_class_offset(lv, (cc401*)(dd2401*), ABISELECT(16,8), "ee52401");
+ check_base_class_offset(lv, (dd2401*), ABISELECT(16,8), "ee52401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52401.e");
+ test_class_info(&lv, &cd_ee52401);
+ dp->~ee52401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52401(Test_ee52401, "ee52401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52401C1Ev();
+extern void _ZN7ee52401D1Ev();
+Name_Map name_map_ee52401[] = {
+ NSPAIR(_ZN7ee52401C1Ev),
+ NSPAIR(_ZN7ee52401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd2401;
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+static Base_Class bases_ee52401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52401[];
+extern void _ZN7ee524013barEv();
+extern void _ZN6dd24013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524013barEv,_ZTv0_n16_N7ee524013barEv)();
+extern void ABISELECT(_ZThn16_N7ee524013barEv,_ZThn8_N7ee524013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52401[0]),
+ (VTBL_ENTRY)&_ZN7ee524013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52401[0]),
+ (VTBL_ENTRY)&_ZN6dd24013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524013barEv,_ZTv0_n16_N7ee524013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52401[];
+static VTT_ENTRY vtt_ee52401[] = {
+ {&(_ZTV7ee52401[3]), 3,10},
+ {&(_ZTV7ee52401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52401[];
+extern VTBL_ENTRY _ZTV7ee52401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52401[];
+static VTBL_ENTRY alt_thunk_names478[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524013barEv,_ZTv0_n16_N7ee524013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524013barEv,_ZThn8_N7ee524013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52401 = { "ee52401", // class name
+ bases_ee52401, 4,
+ &(vtc_ee52401[0]), // expected_vtbl_contents
+ &(vtt_ee52401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names478,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62401 : dd2401 {
+ int e;
+ virtual void foo(); // _ZN7ee624013fooEv
+ virtual void bar(); // _ZN7ee624013barEv
+ ~ee62401(); // tgen
+ ee62401(); // tgen
+};
+//SIG(1 ee62401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62401 ::foo(){vfunc_called(this, "_ZN7ee624013fooEv");}
+void ee62401 ::bar(){vfunc_called(this, "_ZN7ee624013barEv");}
+ee62401 ::~ee62401(){ note_dtor("ee62401", this);} // tgen
+ee62401 ::ee62401(){ note_ctor("ee62401", this);} // tgen
+
+static void Test_ee62401()
+{
+ extern Class_Descriptor cd_ee62401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62401, buf);
+ ee62401 *dp, &lv = *(dp=new (buf) ee62401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd2401*), 0, "ee62401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd2401*), 0, "ee62401");
+ check_base_class_offset(lv, (cc401*)(dd2401*), 0, "ee62401");
+ check_base_class_offset(lv, (dd2401*), 0, "ee62401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62401.e");
+ test_class_info(&lv, &cd_ee62401);
+ dp->~ee62401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62401(Test_ee62401, "ee62401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62401C1Ev();
+extern void _ZN7ee62401D1Ev();
+Name_Map name_map_ee62401[] = {
+ NSPAIR(_ZN7ee62401C1Ev),
+ NSPAIR(_ZN7ee62401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd2401;
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+static Base_Class bases_ee62401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62401[];
+extern void _ZN7ee624013fooEv();
+extern void _ZN7ee624013barEv();
+static VTBL_ENTRY vtc_ee62401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62401[0]),
+ (VTBL_ENTRY)&_ZN7ee624013fooEv,
+ (VTBL_ENTRY)&_ZN7ee624013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62401[];
+extern VTBL_ENTRY _ZTV7ee62401[];
+Class_Descriptor cd_ee62401 = { "ee62401", // class name
+ bases_ee62401, 4,
+ &(vtc_ee62401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72401 : virtual dd2401 {
+ int e;
+ virtual void foo(); // _ZN7ee724013fooEv
+ virtual void bar(); // _ZN7ee724013barEv
+ ~ee72401(); // tgen
+ ee72401(); // tgen
+};
+//SIG(1 ee72401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72401 ::foo(){vfunc_called(this, "_ZN7ee724013fooEv");}
+void ee72401 ::bar(){vfunc_called(this, "_ZN7ee724013barEv");}
+ee72401 ::~ee72401(){ note_dtor("ee72401", this);} // tgen
+ee72401 ::ee72401(){ note_ctor("ee72401", this);} // tgen
+
+static void Test_ee72401()
+{
+ extern Class_Descriptor cd_ee72401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72401, buf);
+ ee72401 *dp, &lv = *(dp=new (buf) ee72401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd2401*), ABISELECT(16,8), "ee72401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd2401*), ABISELECT(16,8), "ee72401");
+ check_base_class_offset(lv, (cc401*)(dd2401*), ABISELECT(16,8), "ee72401");
+ check_base_class_offset(lv, (dd2401*), ABISELECT(16,8), "ee72401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72401.e");
+ test_class_info(&lv, &cd_ee72401);
+ dp->~ee72401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72401(Test_ee72401, "ee72401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72401C1Ev();
+extern void _ZN7ee72401D1Ev();
+Name_Map name_map_ee72401[] = {
+ NSPAIR(_ZN7ee72401C1Ev),
+ NSPAIR(_ZN7ee72401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd2401;
+extern VTBL_ENTRY _ZTI6dd2401[];
+extern VTBL_ENTRY _ZTV6dd2401[];
+static Base_Class bases_ee72401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72401[];
+extern void _ZN7ee724013fooEv();
+extern void _ZN7ee724013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724013fooEv,_ZTv0_n12_N7ee724013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724013fooEv,_ZThn8_N7ee724013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724013barEv,_ZTv0_n16_N7ee724013barEv)();
+extern void ABISELECT(_ZThn16_N7ee724013barEv,_ZThn8_N7ee724013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72401[0]),
+ (VTBL_ENTRY)&_ZN7ee724013fooEv,
+ (VTBL_ENTRY)&_ZN7ee724013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724013fooEv,_ZTv0_n12_N7ee724013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724013barEv,_ZTv0_n16_N7ee724013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72401[];
+static VTT_ENTRY vtt_ee72401[] = {
+ {&(_ZTV7ee72401[3]), 3,11},
+ {&(_ZTV7ee72401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72401[];
+extern VTBL_ENTRY _ZTV7ee72401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72401[];
+static VTBL_ENTRY alt_thunk_names479[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724013barEv,_ZTv0_n16_N7ee724013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724013barEv,_ZThn8_N7ee724013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724013fooEv,_ZTv0_n12_N7ee724013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724013fooEv,_ZThn8_N7ee724013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72401 = { "ee72401", // class name
+ bases_ee72401, 4,
+ &(vtc_ee72401[0]), // expected_vtbl_contents
+ &(vtt_ee72401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names479,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3401 : virtual cc401 {
+ int d;
+ virtual void foo(); // _ZN6dd34013fooEv
+ ~dd3401(); // tgen
+ dd3401(); // tgen
+};
+//SIG(-1 dd3401) C1{ VBC2{ BC3{ BC4{ v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd3401 ::foo(){vfunc_called(this, "_ZN6dd34013fooEv");}
+dd3401 ::~dd3401(){ note_dtor("dd3401", this);} // tgen
+dd3401 ::dd3401(){ note_ctor("dd3401", this);} // tgen
+
+static void Test_dd3401()
+{
+ extern Class_Descriptor cd_dd3401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3401, buf);
+ dd3401 *dp, &lv = *(dp=new (buf) dd3401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,8), "dd3401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,8), "dd3401");
+ check_base_class_offset(lv, (cc401*), ABISELECT(16,8), "dd3401");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3401.d");
+ test_class_info(&lv, &cd_dd3401);
+ dp->~dd3401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3401(Test_dd3401, "dd3401", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3401C1Ev();
+extern void _ZN6dd3401D1Ev();
+Name_Map name_map_dd3401[] = {
+ NSPAIR(_ZN6dd3401C1Ev),
+ NSPAIR(_ZN6dd3401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+static Base_Class bases_dd3401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern void _ZN6dd34013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_dd3401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3401[];
+static VTT_ENTRY vtt_dd3401[] = {
+ {&(_ZTV6dd3401[3]), 3,10},
+ {&(_ZTV6dd3401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static VTBL_ENTRY alt_thunk_names480[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3401 = { "dd3401", // class name
+ bases_dd3401, 3,
+ &(vtc_dd3401[0]), // expected_vtbl_contents
+ &(vtt_dd3401[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3401),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names480,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03401 : dd3401 {
+ int e;
+ ~ee03401(); // tgen
+ ee03401(); // tgen
+};
+//SIG(1 ee03401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03401 ::~ee03401(){ note_dtor("ee03401", this);} // tgen
+ee03401 ::ee03401(){ note_ctor("ee03401", this);} // tgen
+
+static void Test_ee03401()
+{
+ extern Class_Descriptor cd_ee03401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03401, buf);
+ ee03401 *dp, &lv = *(dp=new (buf) ee03401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee03401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee03401");
+ check_base_class_offset(lv, (cc401*)(dd3401*), ABISELECT(16,12), "ee03401");
+ check_base_class_offset(lv, (dd3401*), 0, "ee03401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03401.e");
+ test_class_info(&lv, &cd_ee03401);
+ dp->~ee03401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03401(Test_ee03401, "ee03401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03401C1Ev();
+extern void _ZN7ee03401D1Ev();
+Name_Map name_map_ee03401[] = {
+ NSPAIR(_ZN7ee03401C1Ev),
+ NSPAIR(_ZN7ee03401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd3401;
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static Base_Class bases_ee03401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03401[];
+extern void _ZN6dd34013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee03401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03401[];
+extern void _ZN6dd34013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3401__7ee03401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd3401__7ee03401[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee03401[] = {
+ {&(_ZTV7ee03401[3]), 3,10},
+ {&(_tg__ZTV6dd3401__7ee03401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd3401__7ee03401[4]), 4,6},
+ {&(_ZTV7ee03401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03401[];
+extern VTBL_ENTRY _ZTV7ee03401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03401[];
+static VTBL_ENTRY alt_thunk_names481[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03401 = { "ee03401", // class name
+ bases_ee03401, 4,
+ &(vtc_ee03401[0]), // expected_vtbl_contents
+ &(vtt_ee03401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names481,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13401 : virtual dd3401 {
+ int e;
+ ~ee13401(); // tgen
+ ee13401(); // tgen
+};
+//SIG(1 ee13401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13401 ::~ee13401(){ note_dtor("ee13401", this);} // tgen
+ee13401 ::ee13401(){ note_ctor("ee13401", this);} // tgen
+
+static void Test_ee13401()
+{
+ extern Class_Descriptor cd_ee13401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13401, buf);
+ ee13401 *dp, &lv = *(dp=new (buf) ee13401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee13401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee13401");
+ check_base_class_offset(lv, (cc401*)(dd3401*), ABISELECT(32,16), "ee13401");
+ check_base_class_offset(lv, (dd3401*), ABISELECT(16,8), "ee13401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13401.e");
+ test_class_info(&lv, &cd_ee13401);
+ dp->~ee13401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13401(Test_ee13401, "ee13401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13401C1Ev();
+extern void _ZN7ee13401D1Ev();
+Name_Map name_map_ee13401[] = {
+ NSPAIR(_ZN7ee13401C1Ev),
+ NSPAIR(_ZN7ee13401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd3401;
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static Base_Class bases_ee13401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13401[];
+extern void _ZN6dd34013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee13401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13401[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13401[];
+extern void _ZN6dd34013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3401__7ee13401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd3401__7ee13401[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee13401[] = {
+ {&(_ZTV7ee13401[4]), 4,15},
+ {&(_ZTV7ee13401[8]), 8,15},
+ {&(_ZTV7ee13401[13]), 13,15},
+ {&(_tg__ZTV6dd3401__7ee13401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd3401__7ee13401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13401[];
+extern VTBL_ENTRY _ZTV7ee13401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13401[];
+static VTBL_ENTRY alt_thunk_names482[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13401 = { "ee13401", // class name
+ bases_ee13401, 4,
+ &(vtc_ee13401[0]), // expected_vtbl_contents
+ &(vtt_ee13401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13401),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names482,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23401 : dd3401 {
+ int e;
+ virtual void foo(); // _ZN7ee234013fooEv
+ ~ee23401(); // tgen
+ ee23401(); // tgen
+};
+//SIG(1 ee23401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23401 ::foo(){vfunc_called(this, "_ZN7ee234013fooEv");}
+ee23401 ::~ee23401(){ note_dtor("ee23401", this);} // tgen
+ee23401 ::ee23401(){ note_ctor("ee23401", this);} // tgen
+
+static void Test_ee23401()
+{
+ extern Class_Descriptor cd_ee23401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23401, buf);
+ ee23401 *dp, &lv = *(dp=new (buf) ee23401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee23401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee23401");
+ check_base_class_offset(lv, (cc401*)(dd3401*), ABISELECT(16,12), "ee23401");
+ check_base_class_offset(lv, (dd3401*), 0, "ee23401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23401.e");
+ test_class_info(&lv, &cd_ee23401);
+ dp->~ee23401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23401(Test_ee23401, "ee23401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23401C1Ev();
+extern void _ZN7ee23401D1Ev();
+Name_Map name_map_ee23401[] = {
+ NSPAIR(_ZN7ee23401C1Ev),
+ NSPAIR(_ZN7ee23401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd3401;
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static Base_Class bases_ee23401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23401[];
+extern void _ZN7ee234013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234013fooEv,_ZTv0_n12_N7ee234013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee234013fooEv,_ZThn12_N7ee234013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee23401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23401[0]),
+ (VTBL_ENTRY)&_ZN7ee234013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234013fooEv,_ZTv0_n12_N7ee234013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23401[];
+extern void _ZN6dd34013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3401__7ee23401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd3401__7ee23401[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee23401[] = {
+ {&(_ZTV7ee23401[3]), 3,10},
+ {&(_tg__ZTV6dd3401__7ee23401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd3401__7ee23401[4]), 4,6},
+ {&(_ZTV7ee23401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23401[];
+extern VTBL_ENTRY _ZTV7ee23401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23401[];
+static VTBL_ENTRY alt_thunk_names483[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234013fooEv,_ZTv0_n12_N7ee234013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee234013fooEv,_ZThn12_N7ee234013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23401 = { "ee23401", // class name
+ bases_ee23401, 4,
+ &(vtc_ee23401[0]), // expected_vtbl_contents
+ &(vtt_ee23401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names483,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33401 : virtual dd3401 {
+ int e;
+ virtual void foo(); // _ZN7ee334013fooEv
+ ~ee33401(); // tgen
+ ee33401(); // tgen
+};
+//SIG(1 ee33401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33401 ::foo(){vfunc_called(this, "_ZN7ee334013fooEv");}
+ee33401 ::~ee33401(){ note_dtor("ee33401", this);} // tgen
+ee33401 ::ee33401(){ note_ctor("ee33401", this);} // tgen
+
+static void Test_ee33401()
+{
+ extern Class_Descriptor cd_ee33401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33401, buf);
+ ee33401 *dp, &lv = *(dp=new (buf) ee33401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee33401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee33401");
+ check_base_class_offset(lv, (cc401*)(dd3401*), ABISELECT(32,16), "ee33401");
+ check_base_class_offset(lv, (dd3401*), ABISELECT(16,8), "ee33401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33401.e");
+ test_class_info(&lv, &cd_ee33401);
+ dp->~ee33401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33401(Test_ee33401, "ee33401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33401C1Ev();
+extern void _ZN7ee33401D1Ev();
+Name_Map name_map_ee33401[] = {
+ NSPAIR(_ZN7ee33401C1Ev),
+ NSPAIR(_ZN7ee33401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd3401;
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static Base_Class bases_ee33401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33401[];
+extern void _ZN7ee334013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334013fooEv,_ZTv0_n16_N7ee334013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334013fooEv,_ZThn8_N7ee334013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee334013fooEv,_ZTv0_n12_N7ee334013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee334013fooEv,_ZThn16_N7ee334013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY vtc_ee33401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33401[0]),
+ (VTBL_ENTRY)&_ZN7ee334013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334013fooEv,_ZTv0_n16_N7ee334013fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334013fooEv,_ZTv0_n12_N7ee334013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33401[];
+extern void _ZN6dd34013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3401__7ee33401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd3401__7ee33401[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee33401[] = {
+ {&(_ZTV7ee33401[4]), 4,16},
+ {&(_ZTV7ee33401[9]), 9,16},
+ {&(_ZTV7ee33401[14]), 14,16},
+ {&(_tg__ZTV6dd3401__7ee33401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd3401__7ee33401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33401[];
+extern VTBL_ENTRY _ZTV7ee33401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33401[];
+static VTBL_ENTRY alt_thunk_names484[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334013fooEv,_ZTv0_n12_N7ee334013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee334013fooEv,_ZThn16_N7ee334013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334013fooEv,_ZTv0_n16_N7ee334013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334013fooEv,_ZThn8_N7ee334013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33401 = { "ee33401", // class name
+ bases_ee33401, 4,
+ &(vtc_ee33401[0]), // expected_vtbl_contents
+ &(vtt_ee33401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33401),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names484,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43401 : dd3401 {
+ int e;
+ virtual void bar(); // _ZN7ee434013barEv
+ ~ee43401(); // tgen
+ ee43401(); // tgen
+};
+//SIG(1 ee43401) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43401 ::bar(){vfunc_called(this, "_ZN7ee434013barEv");}
+ee43401 ::~ee43401(){ note_dtor("ee43401", this);} // tgen
+ee43401 ::ee43401(){ note_ctor("ee43401", this);} // tgen
+
+static void Test_ee43401()
+{
+ extern Class_Descriptor cd_ee43401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43401, buf);
+ ee43401 *dp, &lv = *(dp=new (buf) ee43401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee43401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee43401");
+ check_base_class_offset(lv, (cc401*)(dd3401*), ABISELECT(16,12), "ee43401");
+ check_base_class_offset(lv, (dd3401*), 0, "ee43401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43401.e");
+ test_class_info(&lv, &cd_ee43401);
+ dp->~ee43401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43401(Test_ee43401, "ee43401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43401C1Ev();
+extern void _ZN7ee43401D1Ev();
+Name_Map name_map_ee43401[] = {
+ NSPAIR(_ZN7ee43401C1Ev),
+ NSPAIR(_ZN7ee43401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd3401;
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static Base_Class bases_ee43401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43401[];
+extern void _ZN6dd34013fooEv();
+extern void _ZN7ee434013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee434013barEv,_ZTv0_n16_N7ee434013barEv)();
+extern void ABISELECT(_ZThn16_N7ee434013barEv,_ZThn12_N7ee434013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+ (VTBL_ENTRY)&_ZN7ee434013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434013barEv,_ZTv0_n16_N7ee434013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43401[];
+extern void _ZN6dd34013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3401__7ee43401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd3401__7ee43401[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee43401[] = {
+ {&(_ZTV7ee43401[3]), 3,11},
+ {&(_tg__ZTV6dd3401__7ee43401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd3401__7ee43401[4]), 4,6},
+ {&(_ZTV7ee43401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43401[];
+extern VTBL_ENTRY _ZTV7ee43401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43401[];
+static VTBL_ENTRY alt_thunk_names485[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434013barEv,_ZTv0_n16_N7ee434013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434013barEv,_ZThn12_N7ee434013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43401 = { "ee43401", // class name
+ bases_ee43401, 4,
+ &(vtc_ee43401[0]), // expected_vtbl_contents
+ &(vtt_ee43401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names485,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53401 : virtual dd3401 {
+ int e;
+ virtual void bar(); // _ZN7ee534013barEv
+ ~ee53401(); // tgen
+ ee53401(); // tgen
+};
+//SIG(1 ee53401) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53401 ::bar(){vfunc_called(this, "_ZN7ee534013barEv");}
+ee53401 ::~ee53401(){ note_dtor("ee53401", this);} // tgen
+ee53401 ::ee53401(){ note_ctor("ee53401", this);} // tgen
+
+static void Test_ee53401()
+{
+ extern Class_Descriptor cd_ee53401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53401, buf);
+ ee53401 *dp, &lv = *(dp=new (buf) ee53401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee53401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee53401");
+ check_base_class_offset(lv, (cc401*)(dd3401*), ABISELECT(32,16), "ee53401");
+ check_base_class_offset(lv, (dd3401*), ABISELECT(16,8), "ee53401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53401.e");
+ test_class_info(&lv, &cd_ee53401);
+ dp->~ee53401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53401(Test_ee53401, "ee53401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53401C1Ev();
+extern void _ZN7ee53401D1Ev();
+Name_Map name_map_ee53401[] = {
+ NSPAIR(_ZN7ee53401C1Ev),
+ NSPAIR(_ZN7ee53401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd3401;
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static Base_Class bases_ee53401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53401[];
+extern void _ZN7ee534013barEv();
+extern void _ZN6dd34013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee534013barEv,_ZTv0_n16_N7ee534013barEv)();
+extern void ABISELECT(_ZThn32_N7ee534013barEv,_ZThn16_N7ee534013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53401[0]),
+ (VTBL_ENTRY)&_ZN7ee534013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534013barEv,_ZTv0_n16_N7ee534013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53401[];
+extern void _ZN6dd34013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3401__7ee53401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd3401__7ee53401[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee53401[] = {
+ {&(_ZTV7ee53401[4]), 4,16},
+ {&(_ZTV7ee53401[9]), 9,16},
+ {&(_ZTV7ee53401[14]), 14,16},
+ {&(_tg__ZTV6dd3401__7ee53401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd3401__7ee53401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53401[];
+extern VTBL_ENTRY _ZTV7ee53401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53401[];
+static VTBL_ENTRY alt_thunk_names486[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534013barEv,_ZTv0_n16_N7ee534013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534013barEv,_ZThn16_N7ee534013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53401 = { "ee53401", // class name
+ bases_ee53401, 4,
+ &(vtc_ee53401[0]), // expected_vtbl_contents
+ &(vtt_ee53401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53401),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names486,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63401 : dd3401 {
+ int e;
+ virtual void foo(); // _ZN7ee634013fooEv
+ virtual void bar(); // _ZN7ee634013barEv
+ ~ee63401(); // tgen
+ ee63401(); // tgen
+};
+//SIG(1 ee63401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63401 ::foo(){vfunc_called(this, "_ZN7ee634013fooEv");}
+void ee63401 ::bar(){vfunc_called(this, "_ZN7ee634013barEv");}
+ee63401 ::~ee63401(){ note_dtor("ee63401", this);} // tgen
+ee63401 ::ee63401(){ note_ctor("ee63401", this);} // tgen
+
+static void Test_ee63401()
+{
+ extern Class_Descriptor cd_ee63401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63401, buf);
+ ee63401 *dp, &lv = *(dp=new (buf) ee63401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee63401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee63401");
+ check_base_class_offset(lv, (cc401*)(dd3401*), ABISELECT(16,12), "ee63401");
+ check_base_class_offset(lv, (dd3401*), 0, "ee63401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63401.e");
+ test_class_info(&lv, &cd_ee63401);
+ dp->~ee63401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63401(Test_ee63401, "ee63401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63401C1Ev();
+extern void _ZN7ee63401D1Ev();
+Name_Map name_map_ee63401[] = {
+ NSPAIR(_ZN7ee63401C1Ev),
+ NSPAIR(_ZN7ee63401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd3401;
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static Base_Class bases_ee63401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63401[];
+extern void _ZN7ee634013fooEv();
+extern void _ZN7ee634013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634013fooEv,_ZTv0_n12_N7ee634013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee634013fooEv,_ZThn12_N7ee634013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634013barEv,_ZTv0_n16_N7ee634013barEv)();
+extern void ABISELECT(_ZThn16_N7ee634013barEv,_ZThn12_N7ee634013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63401[0]),
+ (VTBL_ENTRY)&_ZN7ee634013fooEv,
+ (VTBL_ENTRY)&_ZN7ee634013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634013fooEv,_ZTv0_n12_N7ee634013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634013barEv,_ZTv0_n16_N7ee634013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63401[];
+extern void _ZN6dd34013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3401__7ee63401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd3401__7ee63401[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee63401[] = {
+ {&(_ZTV7ee63401[3]), 3,11},
+ {&(_tg__ZTV6dd3401__7ee63401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd3401__7ee63401[4]), 4,6},
+ {&(_ZTV7ee63401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63401[];
+extern VTBL_ENTRY _ZTV7ee63401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63401[];
+static VTBL_ENTRY alt_thunk_names487[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn12_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634013barEv,_ZTv0_n16_N7ee634013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634013barEv,_ZThn12_N7ee634013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634013fooEv,_ZTv0_n12_N7ee634013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634013fooEv,_ZThn12_N7ee634013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63401 = { "ee63401", // class name
+ bases_ee63401, 4,
+ &(vtc_ee63401[0]), // expected_vtbl_contents
+ &(vtt_ee63401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names487,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73401 : virtual dd3401 {
+ int e;
+ virtual void foo(); // _ZN7ee734013fooEv
+ virtual void bar(); // _ZN7ee734013barEv
+ ~ee73401(); // tgen
+ ee73401(); // tgen
+};
+//SIG(1 ee73401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73401 ::foo(){vfunc_called(this, "_ZN7ee734013fooEv");}
+void ee73401 ::bar(){vfunc_called(this, "_ZN7ee734013barEv");}
+ee73401 ::~ee73401(){ note_dtor("ee73401", this);} // tgen
+ee73401 ::ee73401(){ note_ctor("ee73401", this);} // tgen
+
+static void Test_ee73401()
+{
+ extern Class_Descriptor cd_ee73401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73401, buf);
+ ee73401 *dp, &lv = *(dp=new (buf) ee73401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee73401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee73401");
+ check_base_class_offset(lv, (cc401*)(dd3401*), ABISELECT(32,16), "ee73401");
+ check_base_class_offset(lv, (dd3401*), ABISELECT(16,8), "ee73401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73401.e");
+ test_class_info(&lv, &cd_ee73401);
+ dp->~ee73401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73401(Test_ee73401, "ee73401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73401C1Ev();
+extern void _ZN7ee73401D1Ev();
+Name_Map name_map_ee73401[] = {
+ NSPAIR(_ZN7ee73401C1Ev),
+ NSPAIR(_ZN7ee73401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd3401;
+extern VTBL_ENTRY _ZTI6dd3401[];
+extern VTBL_ENTRY _ZTV6dd3401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3401[];
+static Base_Class bases_ee73401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3401, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73401[];
+extern void _ZN7ee734013fooEv();
+extern void _ZN7ee734013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734013fooEv,_ZTv0_n16_N7ee734013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734013fooEv,_ZThn8_N7ee734013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734013fooEv,_ZTv0_n12_N7ee734013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee734013fooEv,_ZThn16_N7ee734013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734013barEv,_ZTv0_n16_N7ee734013barEv)();
+extern void ABISELECT(_ZThn32_N7ee734013barEv,_ZThn16_N7ee734013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73401[0]),
+ (VTBL_ENTRY)&_ZN7ee734013fooEv,
+ (VTBL_ENTRY)&_ZN7ee734013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734013fooEv,_ZTv0_n16_N7ee734013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734013fooEv,_ZTv0_n12_N7ee734013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734013barEv,_ZTv0_n16_N7ee734013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73401[];
+extern void _ZN6dd34013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3401__7ee73401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&_ZN6dd34013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv)() __attribute__((weak));
+extern void _ZN5cc4013barEv();
+static VTBL_ENTRY _tg__ZTV5cc401__6dd3401__7ee73401[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv),
+ (VTBL_ENTRY)&_ZN5cc4013barEv,
+};
+static VTT_ENTRY vtt_ee73401[] = {
+ {&(_ZTV7ee73401[4]), 4,17},
+ {&(_ZTV7ee73401[10]), 10,17},
+ {&(_ZTV7ee73401[15]), 15,17},
+ {&(_tg__ZTV6dd3401__7ee73401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd3401__7ee73401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73401[];
+extern VTBL_ENTRY _ZTV7ee73401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73401[];
+static VTBL_ENTRY alt_thunk_names488[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34013fooEv,_ZTv0_n12_N6dd34013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34013fooEv,_ZThn8_N6dd34013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734013barEv,_ZTv0_n16_N7ee734013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734013barEv,_ZThn16_N7ee734013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734013fooEv,_ZTv0_n12_N7ee734013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734013fooEv,_ZThn16_N7ee734013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734013fooEv,_ZTv0_n16_N7ee734013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734013fooEv,_ZThn8_N7ee734013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73401 = { "ee73401", // class name
+ bases_ee73401, 4,
+ &(vtc_ee73401[0]), // expected_vtbl_contents
+ &(vtt_ee73401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73401),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names488,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4401 : cc401 {
+ int d;
+ virtual void bar(); // _ZN6dd44013barEv
+ ~dd4401(); // tgen
+ dd4401(); // tgen
+};
+//SIG(-1 dd4401) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd4401 ::bar(){vfunc_called(this, "_ZN6dd44013barEv");}
+dd4401 ::~dd4401(){ note_dtor("dd4401", this);} // tgen
+dd4401 ::dd4401(){ note_ctor("dd4401", this);} // tgen
+
+static void Test_dd4401()
+{
+ extern Class_Descriptor cd_dd4401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4401, buf);
+ dd4401 *dp, &lv = *(dp=new (buf) dd4401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), 0, "dd4401");
+ check_base_class_offset(lv, (bb01*)(cc401*), 0, "dd4401");
+ check_base_class_offset(lv, (cc401*), 0, "dd4401");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4401.d");
+ test_class_info(&lv, &cd_dd4401);
+ dp->~dd4401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4401(Test_dd4401, "dd4401", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4401C1Ev();
+extern void _ZN6dd4401D1Ev();
+Name_Map name_map_dd4401[] = {
+ NSPAIR(_ZN6dd4401C1Ev),
+ NSPAIR(_ZN6dd4401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+static Base_Class bases_dd4401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN6dd44013barEv();
+static VTBL_ENTRY vtc_dd4401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN6dd44013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+Class_Descriptor cd_dd4401 = { "dd4401", // class name
+ bases_dd4401, 3,
+ &(vtc_dd4401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04401 : dd4401 {
+ int e;
+ ~ee04401(); // tgen
+ ee04401(); // tgen
+};
+//SIG(1 ee04401) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04401 ::~ee04401(){ note_dtor("ee04401", this);} // tgen
+ee04401 ::ee04401(){ note_ctor("ee04401", this);} // tgen
+
+static void Test_ee04401()
+{
+ extern Class_Descriptor cd_ee04401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04401, buf);
+ ee04401 *dp, &lv = *(dp=new (buf) ee04401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd4401*), 0, "ee04401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd4401*), 0, "ee04401");
+ check_base_class_offset(lv, (cc401*)(dd4401*), 0, "ee04401");
+ check_base_class_offset(lv, (dd4401*), 0, "ee04401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04401.e");
+ test_class_info(&lv, &cd_ee04401);
+ dp->~ee04401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04401(Test_ee04401, "ee04401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04401C1Ev();
+extern void _ZN7ee04401D1Ev();
+Name_Map name_map_ee04401[] = {
+ NSPAIR(_ZN7ee04401C1Ev),
+ NSPAIR(_ZN7ee04401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd4401;
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+static Base_Class bases_ee04401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4401, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN6dd44013barEv();
+static VTBL_ENTRY vtc_ee04401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN6dd44013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04401[];
+extern VTBL_ENTRY _ZTV7ee04401[];
+Class_Descriptor cd_ee04401 = { "ee04401", // class name
+ bases_ee04401, 4,
+ &(vtc_ee04401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14401 : virtual dd4401 {
+ int e;
+ ~ee14401(); // tgen
+ ee14401(); // tgen
+};
+//SIG(1 ee14401) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14401 ::~ee14401(){ note_dtor("ee14401", this);} // tgen
+ee14401 ::ee14401(){ note_ctor("ee14401", this);} // tgen
+
+static void Test_ee14401()
+{
+ extern Class_Descriptor cd_ee14401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14401, buf);
+ ee14401 *dp, &lv = *(dp=new (buf) ee14401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd4401*), ABISELECT(16,8), "ee14401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd4401*), ABISELECT(16,8), "ee14401");
+ check_base_class_offset(lv, (cc401*)(dd4401*), ABISELECT(16,8), "ee14401");
+ check_base_class_offset(lv, (dd4401*), ABISELECT(16,8), "ee14401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14401.e");
+ test_class_info(&lv, &cd_ee14401);
+ dp->~ee14401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14401(Test_ee14401, "ee14401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14401C1Ev();
+extern void _ZN7ee14401D1Ev();
+Name_Map name_map_ee14401[] = {
+ NSPAIR(_ZN7ee14401C1Ev),
+ NSPAIR(_ZN7ee14401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd4401;
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+static Base_Class bases_ee14401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4401, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN6dd44013barEv();
+static VTBL_ENTRY vtc_ee14401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14401[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN6dd44013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14401[];
+static VTT_ENTRY vtt_ee14401[] = {
+ {&(_ZTV7ee14401[3]), 3,9},
+ {&(_ZTV7ee14401[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14401[];
+extern VTBL_ENTRY _ZTV7ee14401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14401[];
+Class_Descriptor cd_ee14401 = { "ee14401", // class name
+ bases_ee14401, 4,
+ &(vtc_ee14401[0]), // expected_vtbl_contents
+ &(vtt_ee14401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14401),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24401 : dd4401 {
+ int e;
+ virtual void foo(); // _ZN7ee244013fooEv
+ ~ee24401(); // tgen
+ ee24401(); // tgen
+};
+//SIG(1 ee24401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24401 ::foo(){vfunc_called(this, "_ZN7ee244013fooEv");}
+ee24401 ::~ee24401(){ note_dtor("ee24401", this);} // tgen
+ee24401 ::ee24401(){ note_ctor("ee24401", this);} // tgen
+
+static void Test_ee24401()
+{
+ extern Class_Descriptor cd_ee24401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24401, buf);
+ ee24401 *dp, &lv = *(dp=new (buf) ee24401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd4401*), 0, "ee24401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd4401*), 0, "ee24401");
+ check_base_class_offset(lv, (cc401*)(dd4401*), 0, "ee24401");
+ check_base_class_offset(lv, (dd4401*), 0, "ee24401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24401.e");
+ test_class_info(&lv, &cd_ee24401);
+ dp->~ee24401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24401(Test_ee24401, "ee24401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24401C1Ev();
+extern void _ZN7ee24401D1Ev();
+Name_Map name_map_ee24401[] = {
+ NSPAIR(_ZN7ee24401C1Ev),
+ NSPAIR(_ZN7ee24401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd4401;
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+static Base_Class bases_ee24401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24401[];
+extern void _ZN7ee244013fooEv();
+extern void _ZN6dd44013barEv();
+static VTBL_ENTRY vtc_ee24401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24401[0]),
+ (VTBL_ENTRY)&_ZN7ee244013fooEv,
+ (VTBL_ENTRY)&_ZN6dd44013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24401[];
+extern VTBL_ENTRY _ZTV7ee24401[];
+Class_Descriptor cd_ee24401 = { "ee24401", // class name
+ bases_ee24401, 4,
+ &(vtc_ee24401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34401 : virtual dd4401 {
+ int e;
+ virtual void foo(); // _ZN7ee344013fooEv
+ ~ee34401(); // tgen
+ ee34401(); // tgen
+};
+//SIG(1 ee34401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34401 ::foo(){vfunc_called(this, "_ZN7ee344013fooEv");}
+ee34401 ::~ee34401(){ note_dtor("ee34401", this);} // tgen
+ee34401 ::ee34401(){ note_ctor("ee34401", this);} // tgen
+
+static void Test_ee34401()
+{
+ extern Class_Descriptor cd_ee34401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34401, buf);
+ ee34401 *dp, &lv = *(dp=new (buf) ee34401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd4401*), ABISELECT(16,8), "ee34401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd4401*), ABISELECT(16,8), "ee34401");
+ check_base_class_offset(lv, (cc401*)(dd4401*), ABISELECT(16,8), "ee34401");
+ check_base_class_offset(lv, (dd4401*), ABISELECT(16,8), "ee34401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34401.e");
+ test_class_info(&lv, &cd_ee34401);
+ dp->~ee34401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34401(Test_ee34401, "ee34401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34401C1Ev();
+extern void _ZN7ee34401D1Ev();
+Name_Map name_map_ee34401[] = {
+ NSPAIR(_ZN7ee34401C1Ev),
+ NSPAIR(_ZN7ee34401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd4401;
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+static Base_Class bases_ee34401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34401[];
+extern void _ZN7ee344013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344013fooEv,_ZTv0_n12_N7ee344013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee344013fooEv,_ZThn8_N7ee344013fooEv)() __attribute__((weak));
+extern void _ZN6dd44013barEv();
+static VTBL_ENTRY vtc_ee34401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34401[0]),
+ (VTBL_ENTRY)&_ZN7ee344013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344013fooEv,_ZTv0_n12_N7ee344013fooEv),
+ (VTBL_ENTRY)&_ZN6dd44013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34401[];
+static VTT_ENTRY vtt_ee34401[] = {
+ {&(_ZTV7ee34401[3]), 3,10},
+ {&(_ZTV7ee34401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34401[];
+extern VTBL_ENTRY _ZTV7ee34401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34401[];
+static VTBL_ENTRY alt_thunk_names489[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344013fooEv,_ZTv0_n12_N7ee344013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee344013fooEv,_ZThn8_N7ee344013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34401 = { "ee34401", // class name
+ bases_ee34401, 4,
+ &(vtc_ee34401[0]), // expected_vtbl_contents
+ &(vtt_ee34401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names489,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44401 : dd4401 {
+ int e;
+ virtual void bar(); // _ZN7ee444013barEv
+ ~ee44401(); // tgen
+ ee44401(); // tgen
+};
+//SIG(1 ee44401) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44401 ::bar(){vfunc_called(this, "_ZN7ee444013barEv");}
+ee44401 ::~ee44401(){ note_dtor("ee44401", this);} // tgen
+ee44401 ::ee44401(){ note_ctor("ee44401", this);} // tgen
+
+static void Test_ee44401()
+{
+ extern Class_Descriptor cd_ee44401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44401, buf);
+ ee44401 *dp, &lv = *(dp=new (buf) ee44401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd4401*), 0, "ee44401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd4401*), 0, "ee44401");
+ check_base_class_offset(lv, (cc401*)(dd4401*), 0, "ee44401");
+ check_base_class_offset(lv, (dd4401*), 0, "ee44401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44401.e");
+ test_class_info(&lv, &cd_ee44401);
+ dp->~ee44401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44401(Test_ee44401, "ee44401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44401C1Ev();
+extern void _ZN7ee44401D1Ev();
+Name_Map name_map_ee44401[] = {
+ NSPAIR(_ZN7ee44401C1Ev),
+ NSPAIR(_ZN7ee44401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd4401;
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+static Base_Class bases_ee44401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44401[];
+extern void _ZN3aa13fooEv();
+extern void _ZN7ee444013barEv();
+static VTBL_ENTRY vtc_ee44401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&_ZN7ee444013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44401[];
+extern VTBL_ENTRY _ZTV7ee44401[];
+Class_Descriptor cd_ee44401 = { "ee44401", // class name
+ bases_ee44401, 4,
+ &(vtc_ee44401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54401 : virtual dd4401 {
+ int e;
+ virtual void bar(); // _ZN7ee544013barEv
+ ~ee54401(); // tgen
+ ee54401(); // tgen
+};
+//SIG(1 ee54401) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54401 ::bar(){vfunc_called(this, "_ZN7ee544013barEv");}
+ee54401 ::~ee54401(){ note_dtor("ee54401", this);} // tgen
+ee54401 ::ee54401(){ note_ctor("ee54401", this);} // tgen
+
+static void Test_ee54401()
+{
+ extern Class_Descriptor cd_ee54401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54401, buf);
+ ee54401 *dp, &lv = *(dp=new (buf) ee54401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd4401*), ABISELECT(16,8), "ee54401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd4401*), ABISELECT(16,8), "ee54401");
+ check_base_class_offset(lv, (cc401*)(dd4401*), ABISELECT(16,8), "ee54401");
+ check_base_class_offset(lv, (dd4401*), ABISELECT(16,8), "ee54401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54401.e");
+ test_class_info(&lv, &cd_ee54401);
+ dp->~ee54401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54401(Test_ee54401, "ee54401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54401C1Ev();
+extern void _ZN7ee54401D1Ev();
+Name_Map name_map_ee54401[] = {
+ NSPAIR(_ZN7ee54401C1Ev),
+ NSPAIR(_ZN7ee54401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd4401;
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+static Base_Class bases_ee54401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54401[];
+extern void _ZN7ee544013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544013barEv,_ZTv0_n16_N7ee544013barEv)();
+extern void ABISELECT(_ZThn16_N7ee544013barEv,_ZThn8_N7ee544013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54401[0]),
+ (VTBL_ENTRY)&_ZN7ee544013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544013barEv,_ZTv0_n16_N7ee544013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54401[];
+static VTT_ENTRY vtt_ee54401[] = {
+ {&(_ZTV7ee54401[3]), 3,10},
+ {&(_ZTV7ee54401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54401[];
+extern VTBL_ENTRY _ZTV7ee54401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54401[];
+static VTBL_ENTRY alt_thunk_names490[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544013barEv,_ZTv0_n16_N7ee544013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544013barEv,_ZThn8_N7ee544013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54401 = { "ee54401", // class name
+ bases_ee54401, 4,
+ &(vtc_ee54401[0]), // expected_vtbl_contents
+ &(vtt_ee54401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names490,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64401 : dd4401 {
+ int e;
+ virtual void foo(); // _ZN7ee644013fooEv
+ virtual void bar(); // _ZN7ee644013barEv
+ ~ee64401(); // tgen
+ ee64401(); // tgen
+};
+//SIG(1 ee64401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64401 ::foo(){vfunc_called(this, "_ZN7ee644013fooEv");}
+void ee64401 ::bar(){vfunc_called(this, "_ZN7ee644013barEv");}
+ee64401 ::~ee64401(){ note_dtor("ee64401", this);} // tgen
+ee64401 ::ee64401(){ note_ctor("ee64401", this);} // tgen
+
+static void Test_ee64401()
+{
+ extern Class_Descriptor cd_ee64401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64401, buf);
+ ee64401 *dp, &lv = *(dp=new (buf) ee64401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd4401*), 0, "ee64401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd4401*), 0, "ee64401");
+ check_base_class_offset(lv, (cc401*)(dd4401*), 0, "ee64401");
+ check_base_class_offset(lv, (dd4401*), 0, "ee64401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64401.e");
+ test_class_info(&lv, &cd_ee64401);
+ dp->~ee64401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64401(Test_ee64401, "ee64401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64401C1Ev();
+extern void _ZN7ee64401D1Ev();
+Name_Map name_map_ee64401[] = {
+ NSPAIR(_ZN7ee64401C1Ev),
+ NSPAIR(_ZN7ee64401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd4401;
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+static Base_Class bases_ee64401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64401[];
+extern void _ZN7ee644013fooEv();
+extern void _ZN7ee644013barEv();
+static VTBL_ENTRY vtc_ee64401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64401[0]),
+ (VTBL_ENTRY)&_ZN7ee644013fooEv,
+ (VTBL_ENTRY)&_ZN7ee644013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64401[];
+extern VTBL_ENTRY _ZTV7ee64401[];
+Class_Descriptor cd_ee64401 = { "ee64401", // class name
+ bases_ee64401, 4,
+ &(vtc_ee64401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74401 : virtual dd4401 {
+ int e;
+ virtual void foo(); // _ZN7ee744013fooEv
+ virtual void bar(); // _ZN7ee744013barEv
+ ~ee74401(); // tgen
+ ee74401(); // tgen
+};
+//SIG(1 ee74401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74401 ::foo(){vfunc_called(this, "_ZN7ee744013fooEv");}
+void ee74401 ::bar(){vfunc_called(this, "_ZN7ee744013barEv");}
+ee74401 ::~ee74401(){ note_dtor("ee74401", this);} // tgen
+ee74401 ::ee74401(){ note_ctor("ee74401", this);} // tgen
+
+static void Test_ee74401()
+{
+ extern Class_Descriptor cd_ee74401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74401, buf);
+ ee74401 *dp, &lv = *(dp=new (buf) ee74401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd4401*), ABISELECT(16,8), "ee74401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd4401*), ABISELECT(16,8), "ee74401");
+ check_base_class_offset(lv, (cc401*)(dd4401*), ABISELECT(16,8), "ee74401");
+ check_base_class_offset(lv, (dd4401*), ABISELECT(16,8), "ee74401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74401.e");
+ test_class_info(&lv, &cd_ee74401);
+ dp->~ee74401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74401(Test_ee74401, "ee74401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74401C1Ev();
+extern void _ZN7ee74401D1Ev();
+Name_Map name_map_ee74401[] = {
+ NSPAIR(_ZN7ee74401C1Ev),
+ NSPAIR(_ZN7ee74401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd4401;
+extern VTBL_ENTRY _ZTI6dd4401[];
+extern VTBL_ENTRY _ZTV6dd4401[];
+static Base_Class bases_ee74401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74401[];
+extern void _ZN7ee744013fooEv();
+extern void _ZN7ee744013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744013fooEv,_ZTv0_n12_N7ee744013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee744013fooEv,_ZThn8_N7ee744013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744013barEv,_ZTv0_n16_N7ee744013barEv)();
+extern void ABISELECT(_ZThn16_N7ee744013barEv,_ZThn8_N7ee744013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74401[0]),
+ (VTBL_ENTRY)&_ZN7ee744013fooEv,
+ (VTBL_ENTRY)&_ZN7ee744013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744013fooEv,_ZTv0_n12_N7ee744013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744013barEv,_ZTv0_n16_N7ee744013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74401[];
+static VTT_ENTRY vtt_ee74401[] = {
+ {&(_ZTV7ee74401[3]), 3,11},
+ {&(_ZTV7ee74401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74401[];
+extern VTBL_ENTRY _ZTV7ee74401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74401[];
+static VTBL_ENTRY alt_thunk_names491[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744013barEv,_ZTv0_n16_N7ee744013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744013barEv,_ZThn8_N7ee744013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744013fooEv,_ZTv0_n12_N7ee744013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744013fooEv,_ZThn8_N7ee744013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74401 = { "ee74401", // class name
+ bases_ee74401, 4,
+ &(vtc_ee74401[0]), // expected_vtbl_contents
+ &(vtt_ee74401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names491,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5401 : virtual cc401 {
+ int d;
+ virtual void bar(); // _ZN6dd54013barEv
+ ~dd5401(); // tgen
+ dd5401(); // tgen
+};
+//SIG(-1 dd5401) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd5401 ::bar(){vfunc_called(this, "_ZN6dd54013barEv");}
+dd5401 ::~dd5401(){ note_dtor("dd5401", this);} // tgen
+dd5401 ::dd5401(){ note_ctor("dd5401", this);} // tgen
+
+static void Test_dd5401()
+{
+ extern Class_Descriptor cd_dd5401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5401, buf);
+ dd5401 *dp, &lv = *(dp=new (buf) dd5401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,8), "dd5401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,8), "dd5401");
+ check_base_class_offset(lv, (cc401*), ABISELECT(16,8), "dd5401");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5401.d");
+ test_class_info(&lv, &cd_dd5401);
+ dp->~dd5401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5401(Test_dd5401, "dd5401", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5401C1Ev();
+extern void _ZN6dd5401D1Ev();
+Name_Map name_map_dd5401[] = {
+ NSPAIR(_ZN6dd5401C1Ev),
+ NSPAIR(_ZN6dd5401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+static Base_Class bases_dd5401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern void _ZN6dd54013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5401[];
+static VTT_ENTRY vtt_dd5401[] = {
+ {&(_ZTV6dd5401[3]), 3,10},
+ {&(_ZTV6dd5401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static VTBL_ENTRY alt_thunk_names492[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5401 = { "dd5401", // class name
+ bases_dd5401, 3,
+ &(vtc_dd5401[0]), // expected_vtbl_contents
+ &(vtt_dd5401[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5401),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names492,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05401 : dd5401 {
+ int e;
+ ~ee05401(); // tgen
+ ee05401(); // tgen
+};
+//SIG(1 ee05401) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05401 ::~ee05401(){ note_dtor("ee05401", this);} // tgen
+ee05401 ::ee05401(){ note_ctor("ee05401", this);} // tgen
+
+static void Test_ee05401()
+{
+ extern Class_Descriptor cd_ee05401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05401, buf);
+ ee05401 *dp, &lv = *(dp=new (buf) ee05401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee05401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee05401");
+ check_base_class_offset(lv, (cc401*)(dd5401*), ABISELECT(16,12), "ee05401");
+ check_base_class_offset(lv, (dd5401*), 0, "ee05401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05401.e");
+ test_class_info(&lv, &cd_ee05401);
+ dp->~ee05401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05401(Test_ee05401, "ee05401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05401C1Ev();
+extern void _ZN7ee05401D1Ev();
+Name_Map name_map_ee05401[] = {
+ NSPAIR(_ZN7ee05401C1Ev),
+ NSPAIR(_ZN7ee05401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd5401;
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static Base_Class bases_ee05401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05401[];
+extern void _ZN6dd54013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05401[];
+extern void _ZN6dd54013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5401__7ee05401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+};
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd5401__7ee05401[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+static VTT_ENTRY vtt_ee05401[] = {
+ {&(_ZTV7ee05401[3]), 3,10},
+ {&(_tg__ZTV6dd5401__7ee05401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd5401__7ee05401[4]), 4,6},
+ {&(_ZTV7ee05401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05401[];
+extern VTBL_ENTRY _ZTV7ee05401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05401[];
+static VTBL_ENTRY alt_thunk_names493[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05401 = { "ee05401", // class name
+ bases_ee05401, 4,
+ &(vtc_ee05401[0]), // expected_vtbl_contents
+ &(vtt_ee05401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names493,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15401 : virtual dd5401 {
+ int e;
+ ~ee15401(); // tgen
+ ee15401(); // tgen
+};
+//SIG(1 ee15401) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15401 ::~ee15401(){ note_dtor("ee15401", this);} // tgen
+ee15401 ::ee15401(){ note_ctor("ee15401", this);} // tgen
+
+static void Test_ee15401()
+{
+ extern Class_Descriptor cd_ee15401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15401, buf);
+ ee15401 *dp, &lv = *(dp=new (buf) ee15401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee15401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee15401");
+ check_base_class_offset(lv, (cc401*)(dd5401*), ABISELECT(32,16), "ee15401");
+ check_base_class_offset(lv, (dd5401*), ABISELECT(16,8), "ee15401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15401.e");
+ test_class_info(&lv, &cd_ee15401);
+ dp->~ee15401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15401(Test_ee15401, "ee15401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15401C1Ev();
+extern void _ZN7ee15401D1Ev();
+Name_Map name_map_ee15401[] = {
+ NSPAIR(_ZN7ee15401C1Ev),
+ NSPAIR(_ZN7ee15401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd5401;
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static Base_Class bases_ee15401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15401[];
+extern void _ZN6dd54013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15401[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15401[];
+extern void _ZN6dd54013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5401__7ee15401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+};
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd5401__7ee15401[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+static VTT_ENTRY vtt_ee15401[] = {
+ {&(_ZTV7ee15401[4]), 4,15},
+ {&(_ZTV7ee15401[8]), 8,15},
+ {&(_ZTV7ee15401[13]), 13,15},
+ {&(_tg__ZTV6dd5401__7ee15401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd5401__7ee15401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15401[];
+extern VTBL_ENTRY _ZTV7ee15401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15401[];
+static VTBL_ENTRY alt_thunk_names494[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15401 = { "ee15401", // class name
+ bases_ee15401, 4,
+ &(vtc_ee15401[0]), // expected_vtbl_contents
+ &(vtt_ee15401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15401),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names494,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25401 : dd5401 {
+ int e;
+ virtual void foo(); // _ZN7ee254013fooEv
+ ~ee25401(); // tgen
+ ee25401(); // tgen
+};
+//SIG(1 ee25401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25401 ::foo(){vfunc_called(this, "_ZN7ee254013fooEv");}
+ee25401 ::~ee25401(){ note_dtor("ee25401", this);} // tgen
+ee25401 ::ee25401(){ note_ctor("ee25401", this);} // tgen
+
+static void Test_ee25401()
+{
+ extern Class_Descriptor cd_ee25401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25401, buf);
+ ee25401 *dp, &lv = *(dp=new (buf) ee25401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee25401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee25401");
+ check_base_class_offset(lv, (cc401*)(dd5401*), ABISELECT(16,12), "ee25401");
+ check_base_class_offset(lv, (dd5401*), 0, "ee25401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25401.e");
+ test_class_info(&lv, &cd_ee25401);
+ dp->~ee25401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25401(Test_ee25401, "ee25401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25401C1Ev();
+extern void _ZN7ee25401D1Ev();
+Name_Map name_map_ee25401[] = {
+ NSPAIR(_ZN7ee25401C1Ev),
+ NSPAIR(_ZN7ee25401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd5401;
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static Base_Class bases_ee25401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25401[];
+extern void _ZN6dd54013barEv();
+extern void _ZN7ee254013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee254013fooEv,_ZTv0_n12_N7ee254013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee254013fooEv,_ZThn12_N7ee254013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+ (VTBL_ENTRY)&_ZN7ee254013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254013fooEv,_ZTv0_n12_N7ee254013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25401[];
+extern void _ZN6dd54013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5401__7ee25401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+};
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd5401__7ee25401[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+static VTT_ENTRY vtt_ee25401[] = {
+ {&(_ZTV7ee25401[3]), 3,11},
+ {&(_tg__ZTV6dd5401__7ee25401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd5401__7ee25401[4]), 4,6},
+ {&(_ZTV7ee25401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25401[];
+extern VTBL_ENTRY _ZTV7ee25401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25401[];
+static VTBL_ENTRY alt_thunk_names495[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254013fooEv,_ZTv0_n12_N7ee254013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee254013fooEv,_ZThn12_N7ee254013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25401 = { "ee25401", // class name
+ bases_ee25401, 4,
+ &(vtc_ee25401[0]), // expected_vtbl_contents
+ &(vtt_ee25401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names495,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35401 : virtual dd5401 {
+ int e;
+ virtual void foo(); // _ZN7ee354013fooEv
+ ~ee35401(); // tgen
+ ee35401(); // tgen
+};
+//SIG(1 ee35401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35401 ::foo(){vfunc_called(this, "_ZN7ee354013fooEv");}
+ee35401 ::~ee35401(){ note_dtor("ee35401", this);} // tgen
+ee35401 ::ee35401(){ note_ctor("ee35401", this);} // tgen
+
+static void Test_ee35401()
+{
+ extern Class_Descriptor cd_ee35401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35401, buf);
+ ee35401 *dp, &lv = *(dp=new (buf) ee35401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee35401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee35401");
+ check_base_class_offset(lv, (cc401*)(dd5401*), ABISELECT(32,16), "ee35401");
+ check_base_class_offset(lv, (dd5401*), ABISELECT(16,8), "ee35401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35401.e");
+ test_class_info(&lv, &cd_ee35401);
+ dp->~ee35401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35401(Test_ee35401, "ee35401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35401C1Ev();
+extern void _ZN7ee35401D1Ev();
+Name_Map name_map_ee35401[] = {
+ NSPAIR(_ZN7ee35401C1Ev),
+ NSPAIR(_ZN7ee35401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd5401;
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static Base_Class bases_ee35401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35401[];
+extern void _ZN7ee354013fooEv();
+extern void _ZN6dd54013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee354013fooEv,_ZTv0_n12_N7ee354013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee354013fooEv,_ZThn16_N7ee354013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35401[0]),
+ (VTBL_ENTRY)&_ZN7ee354013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354013fooEv,_ZTv0_n12_N7ee354013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35401[];
+extern void _ZN6dd54013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5401__7ee35401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+};
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd5401__7ee35401[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+static VTT_ENTRY vtt_ee35401[] = {
+ {&(_ZTV7ee35401[4]), 4,16},
+ {&(_ZTV7ee35401[9]), 9,16},
+ {&(_ZTV7ee35401[14]), 14,16},
+ {&(_tg__ZTV6dd5401__7ee35401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd5401__7ee35401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35401[];
+extern VTBL_ENTRY _ZTV7ee35401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35401[];
+static VTBL_ENTRY alt_thunk_names496[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354013fooEv,_ZTv0_n12_N7ee354013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee354013fooEv,_ZThn16_N7ee354013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35401 = { "ee35401", // class name
+ bases_ee35401, 4,
+ &(vtc_ee35401[0]), // expected_vtbl_contents
+ &(vtt_ee35401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35401),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names496,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45401 : dd5401 {
+ int e;
+ virtual void bar(); // _ZN7ee454013barEv
+ ~ee45401(); // tgen
+ ee45401(); // tgen
+};
+//SIG(1 ee45401) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45401 ::bar(){vfunc_called(this, "_ZN7ee454013barEv");}
+ee45401 ::~ee45401(){ note_dtor("ee45401", this);} // tgen
+ee45401 ::ee45401(){ note_ctor("ee45401", this);} // tgen
+
+static void Test_ee45401()
+{
+ extern Class_Descriptor cd_ee45401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45401, buf);
+ ee45401 *dp, &lv = *(dp=new (buf) ee45401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee45401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee45401");
+ check_base_class_offset(lv, (cc401*)(dd5401*), ABISELECT(16,12), "ee45401");
+ check_base_class_offset(lv, (dd5401*), 0, "ee45401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45401.e");
+ test_class_info(&lv, &cd_ee45401);
+ dp->~ee45401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45401(Test_ee45401, "ee45401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45401C1Ev();
+extern void _ZN7ee45401D1Ev();
+Name_Map name_map_ee45401[] = {
+ NSPAIR(_ZN7ee45401C1Ev),
+ NSPAIR(_ZN7ee45401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd5401;
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static Base_Class bases_ee45401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45401[];
+extern void _ZN7ee454013barEv();
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454013barEv,_ZTv0_n16_N7ee454013barEv)();
+extern void ABISELECT(_ZThn16_N7ee454013barEv,_ZThn12_N7ee454013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45401[0]),
+ (VTBL_ENTRY)&_ZN7ee454013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454013barEv,_ZTv0_n16_N7ee454013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45401[];
+extern void _ZN6dd54013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5401__7ee45401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+};
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd5401__7ee45401[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+static VTT_ENTRY vtt_ee45401[] = {
+ {&(_ZTV7ee45401[3]), 3,10},
+ {&(_tg__ZTV6dd5401__7ee45401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd5401__7ee45401[4]), 4,6},
+ {&(_ZTV7ee45401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45401[];
+extern VTBL_ENTRY _ZTV7ee45401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45401[];
+static VTBL_ENTRY alt_thunk_names497[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454013barEv,_ZTv0_n16_N7ee454013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454013barEv,_ZThn12_N7ee454013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45401 = { "ee45401", // class name
+ bases_ee45401, 4,
+ &(vtc_ee45401[0]), // expected_vtbl_contents
+ &(vtt_ee45401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names497,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55401 : virtual dd5401 {
+ int e;
+ virtual void bar(); // _ZN7ee554013barEv
+ ~ee55401(); // tgen
+ ee55401(); // tgen
+};
+//SIG(1 ee55401) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55401 ::bar(){vfunc_called(this, "_ZN7ee554013barEv");}
+ee55401 ::~ee55401(){ note_dtor("ee55401", this);} // tgen
+ee55401 ::ee55401(){ note_ctor("ee55401", this);} // tgen
+
+static void Test_ee55401()
+{
+ extern Class_Descriptor cd_ee55401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55401, buf);
+ ee55401 *dp, &lv = *(dp=new (buf) ee55401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee55401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee55401");
+ check_base_class_offset(lv, (cc401*)(dd5401*), ABISELECT(32,16), "ee55401");
+ check_base_class_offset(lv, (dd5401*), ABISELECT(16,8), "ee55401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55401.e");
+ test_class_info(&lv, &cd_ee55401);
+ dp->~ee55401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55401(Test_ee55401, "ee55401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55401C1Ev();
+extern void _ZN7ee55401D1Ev();
+Name_Map name_map_ee55401[] = {
+ NSPAIR(_ZN7ee55401C1Ev),
+ NSPAIR(_ZN7ee55401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd5401;
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static Base_Class bases_ee55401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55401[];
+extern void _ZN7ee554013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554013barEv,_ZTv0_n16_N7ee554013barEv)();
+extern void ABISELECT(_ZThn16_N7ee554013barEv,_ZThn8_N7ee554013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554013barEv,_ZTv0_n16_N7ee554013barEv)();
+extern void ABISELECT(_ZThn32_N7ee554013barEv,_ZThn16_N7ee554013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55401[0]),
+ (VTBL_ENTRY)&_ZN7ee554013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554013barEv,_ZTv0_n16_N7ee554013barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554013barEv,_ZTv0_n16_N7ee554013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55401[];
+extern void _ZN6dd54013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5401__7ee55401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+};
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd5401__7ee55401[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+static VTT_ENTRY vtt_ee55401[] = {
+ {&(_ZTV7ee55401[4]), 4,16},
+ {&(_ZTV7ee55401[9]), 9,16},
+ {&(_ZTV7ee55401[14]), 14,16},
+ {&(_tg__ZTV6dd5401__7ee55401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd5401__7ee55401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55401[];
+extern VTBL_ENTRY _ZTV7ee55401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55401[];
+static VTBL_ENTRY alt_thunk_names498[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554013barEv,_ZTv0_n16_N7ee554013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554013barEv,_ZThn16_N7ee554013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554013barEv,_ZThn8_N7ee554013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55401 = { "ee55401", // class name
+ bases_ee55401, 4,
+ &(vtc_ee55401[0]), // expected_vtbl_contents
+ &(vtt_ee55401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55401),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names498,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65401 : dd5401 {
+ int e;
+ virtual void foo(); // _ZN7ee654013fooEv
+ virtual void bar(); // _ZN7ee654013barEv
+ ~ee65401(); // tgen
+ ee65401(); // tgen
+};
+//SIG(1 ee65401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65401 ::foo(){vfunc_called(this, "_ZN7ee654013fooEv");}
+void ee65401 ::bar(){vfunc_called(this, "_ZN7ee654013barEv");}
+ee65401 ::~ee65401(){ note_dtor("ee65401", this);} // tgen
+ee65401 ::ee65401(){ note_ctor("ee65401", this);} // tgen
+
+static void Test_ee65401()
+{
+ extern Class_Descriptor cd_ee65401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65401, buf);
+ ee65401 *dp, &lv = *(dp=new (buf) ee65401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee65401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee65401");
+ check_base_class_offset(lv, (cc401*)(dd5401*), ABISELECT(16,12), "ee65401");
+ check_base_class_offset(lv, (dd5401*), 0, "ee65401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65401.e");
+ test_class_info(&lv, &cd_ee65401);
+ dp->~ee65401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65401(Test_ee65401, "ee65401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65401C1Ev();
+extern void _ZN7ee65401D1Ev();
+Name_Map name_map_ee65401[] = {
+ NSPAIR(_ZN7ee65401C1Ev),
+ NSPAIR(_ZN7ee65401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd5401;
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static Base_Class bases_ee65401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65401[];
+extern void _ZN7ee654013barEv();
+extern void _ZN7ee654013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654013fooEv,_ZTv0_n12_N7ee654013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee654013fooEv,_ZThn12_N7ee654013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654013barEv,_ZTv0_n16_N7ee654013barEv)();
+extern void ABISELECT(_ZThn16_N7ee654013barEv,_ZThn12_N7ee654013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65401[0]),
+ (VTBL_ENTRY)&_ZN7ee654013barEv,
+ (VTBL_ENTRY)&_ZN7ee654013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654013fooEv,_ZTv0_n12_N7ee654013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654013barEv,_ZTv0_n16_N7ee654013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65401[];
+extern void _ZN6dd54013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5401__7ee65401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+};
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd5401__7ee65401[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+static VTT_ENTRY vtt_ee65401[] = {
+ {&(_ZTV7ee65401[3]), 3,11},
+ {&(_tg__ZTV6dd5401__7ee65401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd5401__7ee65401[4]), 4,6},
+ {&(_ZTV7ee65401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65401[];
+extern VTBL_ENTRY _ZTV7ee65401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65401[];
+static VTBL_ENTRY alt_thunk_names499[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn12_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654013barEv,_ZTv0_n16_N7ee654013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654013barEv,_ZThn12_N7ee654013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654013fooEv,_ZTv0_n12_N7ee654013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654013fooEv,_ZThn12_N7ee654013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65401 = { "ee65401", // class name
+ bases_ee65401, 4,
+ &(vtc_ee65401[0]), // expected_vtbl_contents
+ &(vtt_ee65401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names499,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75401 : virtual dd5401 {
+ int e;
+ virtual void foo(); // _ZN7ee754013fooEv
+ virtual void bar(); // _ZN7ee754013barEv
+ ~ee75401(); // tgen
+ ee75401(); // tgen
+};
+//SIG(1 ee75401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75401 ::foo(){vfunc_called(this, "_ZN7ee754013fooEv");}
+void ee75401 ::bar(){vfunc_called(this, "_ZN7ee754013barEv");}
+ee75401 ::~ee75401(){ note_dtor("ee75401", this);} // tgen
+ee75401 ::ee75401(){ note_ctor("ee75401", this);} // tgen
+
+static void Test_ee75401()
+{
+ extern Class_Descriptor cd_ee75401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75401, buf);
+ ee75401 *dp, &lv = *(dp=new (buf) ee75401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee75401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee75401");
+ check_base_class_offset(lv, (cc401*)(dd5401*), ABISELECT(32,16), "ee75401");
+ check_base_class_offset(lv, (dd5401*), ABISELECT(16,8), "ee75401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75401.e");
+ test_class_info(&lv, &cd_ee75401);
+ dp->~ee75401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75401(Test_ee75401, "ee75401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75401C1Ev();
+extern void _ZN7ee75401D1Ev();
+Name_Map name_map_ee75401[] = {
+ NSPAIR(_ZN7ee75401C1Ev),
+ NSPAIR(_ZN7ee75401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd5401;
+extern VTBL_ENTRY _ZTI6dd5401[];
+extern VTBL_ENTRY _ZTV6dd5401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5401[];
+static Base_Class bases_ee75401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5401, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75401[];
+extern void _ZN7ee754013fooEv();
+extern void _ZN7ee754013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754013barEv,_ZTv0_n16_N7ee754013barEv)();
+extern void ABISELECT(_ZThn16_N7ee754013barEv,_ZThn8_N7ee754013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754013fooEv,_ZTv0_n12_N7ee754013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee754013fooEv,_ZThn16_N7ee754013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754013barEv,_ZTv0_n16_N7ee754013barEv)();
+extern void ABISELECT(_ZThn32_N7ee754013barEv,_ZThn16_N7ee754013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75401[0]),
+ (VTBL_ENTRY)&_ZN7ee754013fooEv,
+ (VTBL_ENTRY)&_ZN7ee754013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754013barEv,_ZTv0_n16_N7ee754013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754013fooEv,_ZTv0_n12_N7ee754013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754013barEv,_ZTv0_n16_N7ee754013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75401[];
+extern void _ZN6dd54013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5401__7ee75401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN6dd54013barEv,
+};
+extern void _ZN3aa13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv)();
+extern void ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd5401__7ee75401[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5401[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv),
+};
+static VTT_ENTRY vtt_ee75401[] = {
+ {&(_ZTV7ee75401[4]), 4,17},
+ {&(_ZTV7ee75401[10]), 10,17},
+ {&(_ZTV7ee75401[15]), 15,17},
+ {&(_tg__ZTV6dd5401__7ee75401[3]), 3,4},
+ {&(_tg__ZTV5cc401__6dd5401__7ee75401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75401[];
+extern VTBL_ENTRY _ZTV7ee75401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75401[];
+static VTBL_ENTRY alt_thunk_names500[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54013barEv,_ZTv0_n16_N6dd54013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54013barEv,_ZThn8_N6dd54013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754013fooEv,_ZTv0_n12_N7ee754013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754013fooEv,_ZThn16_N7ee754013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754013barEv,_ZTv0_n16_N7ee754013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754013barEv,_ZThn16_N7ee754013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754013barEv,_ZThn8_N7ee754013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75401 = { "ee75401", // class name
+ bases_ee75401, 4,
+ &(vtc_ee75401[0]), // expected_vtbl_contents
+ &(vtt_ee75401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75401),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names500,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6401 : cc401 {
+ int d;
+ virtual void bar(); // _ZN6dd64013barEv
+ virtual void foo(); // _ZN6dd64013fooEv
+ ~dd6401(); // tgen
+ dd6401(); // tgen
+};
+//SIG(-1 dd6401) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6401 ::bar(){vfunc_called(this, "_ZN6dd64013barEv");}
+void dd6401 ::foo(){vfunc_called(this, "_ZN6dd64013fooEv");}
+dd6401 ::~dd6401(){ note_dtor("dd6401", this);} // tgen
+dd6401 ::dd6401(){ note_ctor("dd6401", this);} // tgen
+
+static void Test_dd6401()
+{
+ extern Class_Descriptor cd_dd6401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6401, buf);
+ dd6401 *dp, &lv = *(dp=new (buf) dd6401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), 0, "dd6401");
+ check_base_class_offset(lv, (bb01*)(cc401*), 0, "dd6401");
+ check_base_class_offset(lv, (cc401*), 0, "dd6401");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6401.d");
+ test_class_info(&lv, &cd_dd6401);
+ dp->~dd6401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6401(Test_dd6401, "dd6401", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6401C1Ev();
+extern void _ZN6dd6401D1Ev();
+Name_Map name_map_dd6401[] = {
+ NSPAIR(_ZN6dd6401C1Ev),
+ NSPAIR(_ZN6dd6401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+static Base_Class bases_dd6401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern void _ZN6dd64013fooEv();
+extern void _ZN6dd64013barEv();
+static VTBL_ENTRY vtc_dd6401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6401[0]),
+ (VTBL_ENTRY)&_ZN6dd64013fooEv,
+ (VTBL_ENTRY)&_ZN6dd64013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+Class_Descriptor cd_dd6401 = { "dd6401", // class name
+ bases_dd6401, 3,
+ &(vtc_dd6401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06401 : dd6401 {
+ int e;
+ ~ee06401(); // tgen
+ ee06401(); // tgen
+};
+//SIG(1 ee06401) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06401 ::~ee06401(){ note_dtor("ee06401", this);} // tgen
+ee06401 ::ee06401(){ note_ctor("ee06401", this);} // tgen
+
+static void Test_ee06401()
+{
+ extern Class_Descriptor cd_ee06401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06401, buf);
+ ee06401 *dp, &lv = *(dp=new (buf) ee06401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd6401*), 0, "ee06401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd6401*), 0, "ee06401");
+ check_base_class_offset(lv, (cc401*)(dd6401*), 0, "ee06401");
+ check_base_class_offset(lv, (dd6401*), 0, "ee06401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06401.e");
+ test_class_info(&lv, &cd_ee06401);
+ dp->~ee06401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06401(Test_ee06401, "ee06401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06401C1Ev();
+extern void _ZN7ee06401D1Ev();
+Name_Map name_map_ee06401[] = {
+ NSPAIR(_ZN7ee06401C1Ev),
+ NSPAIR(_ZN7ee06401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd6401;
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+static Base_Class bases_ee06401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6401, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06401[];
+extern void _ZN6dd64013fooEv();
+extern void _ZN6dd64013barEv();
+static VTBL_ENTRY vtc_ee06401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06401[0]),
+ (VTBL_ENTRY)&_ZN6dd64013fooEv,
+ (VTBL_ENTRY)&_ZN6dd64013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06401[];
+extern VTBL_ENTRY _ZTV7ee06401[];
+Class_Descriptor cd_ee06401 = { "ee06401", // class name
+ bases_ee06401, 4,
+ &(vtc_ee06401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16401 : virtual dd6401 {
+ int e;
+ ~ee16401(); // tgen
+ ee16401(); // tgen
+};
+//SIG(1 ee16401) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16401 ::~ee16401(){ note_dtor("ee16401", this);} // tgen
+ee16401 ::ee16401(){ note_ctor("ee16401", this);} // tgen
+
+static void Test_ee16401()
+{
+ extern Class_Descriptor cd_ee16401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16401, buf);
+ ee16401 *dp, &lv = *(dp=new (buf) ee16401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd6401*), ABISELECT(16,8), "ee16401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd6401*), ABISELECT(16,8), "ee16401");
+ check_base_class_offset(lv, (cc401*)(dd6401*), ABISELECT(16,8), "ee16401");
+ check_base_class_offset(lv, (dd6401*), ABISELECT(16,8), "ee16401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16401.e");
+ test_class_info(&lv, &cd_ee16401);
+ dp->~ee16401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16401(Test_ee16401, "ee16401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16401C1Ev();
+extern void _ZN7ee16401D1Ev();
+Name_Map name_map_ee16401[] = {
+ NSPAIR(_ZN7ee16401C1Ev),
+ NSPAIR(_ZN7ee16401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd6401;
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+static Base_Class bases_ee16401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6401, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16401[];
+extern void _ZN6dd64013fooEv();
+extern void _ZN6dd64013barEv();
+static VTBL_ENTRY vtc_ee16401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16401[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16401[0]),
+ (VTBL_ENTRY)&_ZN6dd64013fooEv,
+ (VTBL_ENTRY)&_ZN6dd64013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16401[];
+static VTT_ENTRY vtt_ee16401[] = {
+ {&(_ZTV7ee16401[3]), 3,9},
+ {&(_ZTV7ee16401[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16401[];
+extern VTBL_ENTRY _ZTV7ee16401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16401[];
+Class_Descriptor cd_ee16401 = { "ee16401", // class name
+ bases_ee16401, 4,
+ &(vtc_ee16401[0]), // expected_vtbl_contents
+ &(vtt_ee16401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16401),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26401 : dd6401 {
+ int e;
+ virtual void foo(); // _ZN7ee264013fooEv
+ ~ee26401(); // tgen
+ ee26401(); // tgen
+};
+//SIG(1 ee26401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26401 ::foo(){vfunc_called(this, "_ZN7ee264013fooEv");}
+ee26401 ::~ee26401(){ note_dtor("ee26401", this);} // tgen
+ee26401 ::ee26401(){ note_ctor("ee26401", this);} // tgen
+
+static void Test_ee26401()
+{
+ extern Class_Descriptor cd_ee26401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26401, buf);
+ ee26401 *dp, &lv = *(dp=new (buf) ee26401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd6401*), 0, "ee26401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd6401*), 0, "ee26401");
+ check_base_class_offset(lv, (cc401*)(dd6401*), 0, "ee26401");
+ check_base_class_offset(lv, (dd6401*), 0, "ee26401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26401.e");
+ test_class_info(&lv, &cd_ee26401);
+ dp->~ee26401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26401(Test_ee26401, "ee26401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26401C1Ev();
+extern void _ZN7ee26401D1Ev();
+Name_Map name_map_ee26401[] = {
+ NSPAIR(_ZN7ee26401C1Ev),
+ NSPAIR(_ZN7ee26401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd6401;
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+static Base_Class bases_ee26401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26401[];
+extern void _ZN7ee264013fooEv();
+extern void _ZN6dd64013barEv();
+static VTBL_ENTRY vtc_ee26401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26401[0]),
+ (VTBL_ENTRY)&_ZN7ee264013fooEv,
+ (VTBL_ENTRY)&_ZN6dd64013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26401[];
+extern VTBL_ENTRY _ZTV7ee26401[];
+Class_Descriptor cd_ee26401 = { "ee26401", // class name
+ bases_ee26401, 4,
+ &(vtc_ee26401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36401 : virtual dd6401 {
+ int e;
+ virtual void foo(); // _ZN7ee364013fooEv
+ ~ee36401(); // tgen
+ ee36401(); // tgen
+};
+//SIG(1 ee36401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36401 ::foo(){vfunc_called(this, "_ZN7ee364013fooEv");}
+ee36401 ::~ee36401(){ note_dtor("ee36401", this);} // tgen
+ee36401 ::ee36401(){ note_ctor("ee36401", this);} // tgen
+
+static void Test_ee36401()
+{
+ extern Class_Descriptor cd_ee36401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36401, buf);
+ ee36401 *dp, &lv = *(dp=new (buf) ee36401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd6401*), ABISELECT(16,8), "ee36401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd6401*), ABISELECT(16,8), "ee36401");
+ check_base_class_offset(lv, (cc401*)(dd6401*), ABISELECT(16,8), "ee36401");
+ check_base_class_offset(lv, (dd6401*), ABISELECT(16,8), "ee36401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36401.e");
+ test_class_info(&lv, &cd_ee36401);
+ dp->~ee36401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36401(Test_ee36401, "ee36401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36401C1Ev();
+extern void _ZN7ee36401D1Ev();
+Name_Map name_map_ee36401[] = {
+ NSPAIR(_ZN7ee36401C1Ev),
+ NSPAIR(_ZN7ee36401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd6401;
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+static Base_Class bases_ee36401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36401[];
+extern void _ZN7ee364013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee364013fooEv,_ZTv0_n12_N7ee364013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364013fooEv,_ZThn8_N7ee364013fooEv)() __attribute__((weak));
+extern void _ZN6dd64013barEv();
+static VTBL_ENTRY vtc_ee36401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36401[0]),
+ (VTBL_ENTRY)&_ZN7ee364013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364013fooEv,_ZTv0_n12_N7ee364013fooEv),
+ (VTBL_ENTRY)&_ZN6dd64013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36401[];
+static VTT_ENTRY vtt_ee36401[] = {
+ {&(_ZTV7ee36401[3]), 3,10},
+ {&(_ZTV7ee36401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36401[];
+extern VTBL_ENTRY _ZTV7ee36401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36401[];
+static VTBL_ENTRY alt_thunk_names501[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364013fooEv,_ZTv0_n12_N7ee364013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364013fooEv,_ZThn8_N7ee364013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36401 = { "ee36401", // class name
+ bases_ee36401, 4,
+ &(vtc_ee36401[0]), // expected_vtbl_contents
+ &(vtt_ee36401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names501,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46401 : dd6401 {
+ int e;
+ virtual void bar(); // _ZN7ee464013barEv
+ ~ee46401(); // tgen
+ ee46401(); // tgen
+};
+//SIG(1 ee46401) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46401 ::bar(){vfunc_called(this, "_ZN7ee464013barEv");}
+ee46401 ::~ee46401(){ note_dtor("ee46401", this);} // tgen
+ee46401 ::ee46401(){ note_ctor("ee46401", this);} // tgen
+
+static void Test_ee46401()
+{
+ extern Class_Descriptor cd_ee46401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46401, buf);
+ ee46401 *dp, &lv = *(dp=new (buf) ee46401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd6401*), 0, "ee46401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd6401*), 0, "ee46401");
+ check_base_class_offset(lv, (cc401*)(dd6401*), 0, "ee46401");
+ check_base_class_offset(lv, (dd6401*), 0, "ee46401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46401.e");
+ test_class_info(&lv, &cd_ee46401);
+ dp->~ee46401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46401(Test_ee46401, "ee46401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46401C1Ev();
+extern void _ZN7ee46401D1Ev();
+Name_Map name_map_ee46401[] = {
+ NSPAIR(_ZN7ee46401C1Ev),
+ NSPAIR(_ZN7ee46401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd6401;
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+static Base_Class bases_ee46401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46401[];
+extern void _ZN6dd64013fooEv();
+extern void _ZN7ee464013barEv();
+static VTBL_ENTRY vtc_ee46401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46401[0]),
+ (VTBL_ENTRY)&_ZN6dd64013fooEv,
+ (VTBL_ENTRY)&_ZN7ee464013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46401[];
+extern VTBL_ENTRY _ZTV7ee46401[];
+Class_Descriptor cd_ee46401 = { "ee46401", // class name
+ bases_ee46401, 4,
+ &(vtc_ee46401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56401 : virtual dd6401 {
+ int e;
+ virtual void bar(); // _ZN7ee564013barEv
+ ~ee56401(); // tgen
+ ee56401(); // tgen
+};
+//SIG(1 ee56401) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56401 ::bar(){vfunc_called(this, "_ZN7ee564013barEv");}
+ee56401 ::~ee56401(){ note_dtor("ee56401", this);} // tgen
+ee56401 ::ee56401(){ note_ctor("ee56401", this);} // tgen
+
+static void Test_ee56401()
+{
+ extern Class_Descriptor cd_ee56401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56401, buf);
+ ee56401 *dp, &lv = *(dp=new (buf) ee56401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd6401*), ABISELECT(16,8), "ee56401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd6401*), ABISELECT(16,8), "ee56401");
+ check_base_class_offset(lv, (cc401*)(dd6401*), ABISELECT(16,8), "ee56401");
+ check_base_class_offset(lv, (dd6401*), ABISELECT(16,8), "ee56401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56401.e");
+ test_class_info(&lv, &cd_ee56401);
+ dp->~ee56401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56401(Test_ee56401, "ee56401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56401C1Ev();
+extern void _ZN7ee56401D1Ev();
+Name_Map name_map_ee56401[] = {
+ NSPAIR(_ZN7ee56401C1Ev),
+ NSPAIR(_ZN7ee56401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd6401;
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+static Base_Class bases_ee56401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56401[];
+extern void _ZN7ee564013barEv();
+extern void _ZN6dd64013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564013barEv,_ZTv0_n16_N7ee564013barEv)();
+extern void ABISELECT(_ZThn16_N7ee564013barEv,_ZThn8_N7ee564013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56401[0]),
+ (VTBL_ENTRY)&_ZN7ee564013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56401[0]),
+ (VTBL_ENTRY)&_ZN6dd64013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564013barEv,_ZTv0_n16_N7ee564013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56401[];
+static VTT_ENTRY vtt_ee56401[] = {
+ {&(_ZTV7ee56401[3]), 3,10},
+ {&(_ZTV7ee56401[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56401[];
+extern VTBL_ENTRY _ZTV7ee56401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56401[];
+static VTBL_ENTRY alt_thunk_names502[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564013barEv,_ZTv0_n16_N7ee564013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564013barEv,_ZThn8_N7ee564013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56401 = { "ee56401", // class name
+ bases_ee56401, 4,
+ &(vtc_ee56401[0]), // expected_vtbl_contents
+ &(vtt_ee56401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56401),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names502,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66401 : dd6401 {
+ int e;
+ virtual void foo(); // _ZN7ee664013fooEv
+ virtual void bar(); // _ZN7ee664013barEv
+ ~ee66401(); // tgen
+ ee66401(); // tgen
+};
+//SIG(1 ee66401) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66401 ::foo(){vfunc_called(this, "_ZN7ee664013fooEv");}
+void ee66401 ::bar(){vfunc_called(this, "_ZN7ee664013barEv");}
+ee66401 ::~ee66401(){ note_dtor("ee66401", this);} // tgen
+ee66401 ::ee66401(){ note_ctor("ee66401", this);} // tgen
+
+static void Test_ee66401()
+{
+ extern Class_Descriptor cd_ee66401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66401, buf);
+ ee66401 *dp, &lv = *(dp=new (buf) ee66401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd6401*), 0, "ee66401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd6401*), 0, "ee66401");
+ check_base_class_offset(lv, (cc401*)(dd6401*), 0, "ee66401");
+ check_base_class_offset(lv, (dd6401*), 0, "ee66401");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66401.e");
+ test_class_info(&lv, &cd_ee66401);
+ dp->~ee66401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66401(Test_ee66401, "ee66401", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66401C1Ev();
+extern void _ZN7ee66401D1Ev();
+Name_Map name_map_ee66401[] = {
+ NSPAIR(_ZN7ee66401C1Ev),
+ NSPAIR(_ZN7ee66401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd6401;
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+static Base_Class bases_ee66401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66401[];
+extern void _ZN7ee664013fooEv();
+extern void _ZN7ee664013barEv();
+static VTBL_ENTRY vtc_ee66401[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66401[0]),
+ (VTBL_ENTRY)&_ZN7ee664013fooEv,
+ (VTBL_ENTRY)&_ZN7ee664013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66401[];
+extern VTBL_ENTRY _ZTV7ee66401[];
+Class_Descriptor cd_ee66401 = { "ee66401", // class name
+ bases_ee66401, 4,
+ &(vtc_ee66401[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66401),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76401 : virtual dd6401 {
+ int e;
+ virtual void foo(); // _ZN7ee764013fooEv
+ virtual void bar(); // _ZN7ee764013barEv
+ ~ee76401(); // tgen
+ ee76401(); // tgen
+};
+//SIG(1 ee76401) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76401 ::foo(){vfunc_called(this, "_ZN7ee764013fooEv");}
+void ee76401 ::bar(){vfunc_called(this, "_ZN7ee764013barEv");}
+ee76401 ::~ee76401(){ note_dtor("ee76401", this);} // tgen
+ee76401 ::ee76401(){ note_ctor("ee76401", this);} // tgen
+
+static void Test_ee76401()
+{
+ extern Class_Descriptor cd_ee76401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76401, buf);
+ ee76401 *dp, &lv = *(dp=new (buf) ee76401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*)(dd6401*), ABISELECT(16,8), "ee76401");
+ check_base_class_offset(lv, (bb01*)(cc401*)(dd6401*), ABISELECT(16,8), "ee76401");
+ check_base_class_offset(lv, (cc401*)(dd6401*), ABISELECT(16,8), "ee76401");
+ check_base_class_offset(lv, (dd6401*), ABISELECT(16,8), "ee76401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76401.e");
+ test_class_info(&lv, &cd_ee76401);
+ dp->~ee76401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76401(Test_ee76401, "ee76401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76401C1Ev();
+extern void _ZN7ee76401D1Ev();
+Name_Map name_map_ee76401[] = {
+ NSPAIR(_ZN7ee76401C1Ev),
+ NSPAIR(_ZN7ee76401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd6401;
+extern VTBL_ENTRY _ZTI6dd6401[];
+extern VTBL_ENTRY _ZTV6dd6401[];
+static Base_Class bases_ee76401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76401[];
+extern void _ZN7ee764013fooEv();
+extern void _ZN7ee764013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764013fooEv,_ZTv0_n12_N7ee764013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764013fooEv,_ZThn8_N7ee764013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764013barEv,_ZTv0_n16_N7ee764013barEv)();
+extern void ABISELECT(_ZThn16_N7ee764013barEv,_ZThn8_N7ee764013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76401[0]),
+ (VTBL_ENTRY)&_ZN7ee764013fooEv,
+ (VTBL_ENTRY)&_ZN7ee764013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764013fooEv,_ZTv0_n12_N7ee764013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764013barEv,_ZTv0_n16_N7ee764013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76401[];
+static VTT_ENTRY vtt_ee76401[] = {
+ {&(_ZTV7ee76401[3]), 3,11},
+ {&(_ZTV7ee76401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76401[];
+extern VTBL_ENTRY _ZTV7ee76401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76401[];
+static VTBL_ENTRY alt_thunk_names503[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764013barEv,_ZTv0_n16_N7ee764013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764013barEv,_ZThn8_N7ee764013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764013fooEv,_ZTv0_n12_N7ee764013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764013fooEv,_ZThn8_N7ee764013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76401 = { "ee76401", // class name
+ bases_ee76401, 4,
+ &(vtc_ee76401[0]), // expected_vtbl_contents
+ &(vtt_ee76401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76401),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names503,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7401 : virtual cc401 {
+ int d;
+ virtual void bar(); // _ZN6dd74013barEv
+ virtual void foo(); // _ZN6dd74013fooEv
+ ~dd7401(); // tgen
+ dd7401(); // tgen
+};
+//SIG(-1 dd7401) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7401 ::bar(){vfunc_called(this, "_ZN6dd74013barEv");}
+void dd7401 ::foo(){vfunc_called(this, "_ZN6dd74013fooEv");}
+dd7401 ::~dd7401(){ note_dtor("dd7401", this);} // tgen
+dd7401 ::dd7401(){ note_ctor("dd7401", this);} // tgen
+
+static void Test_dd7401()
+{
+ extern Class_Descriptor cd_dd7401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7401, buf);
+ dd7401 *dp, &lv = *(dp=new (buf) dd7401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,8), "dd7401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,8), "dd7401");
+ check_base_class_offset(lv, (cc401*), ABISELECT(16,8), "dd7401");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7401.d");
+ test_class_info(&lv, &cd_dd7401);
+ dp->~dd7401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7401(Test_dd7401, "dd7401", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7401C1Ev();
+extern void _ZN6dd7401D1Ev();
+Name_Map name_map_dd7401[] = {
+ NSPAIR(_ZN6dd7401C1Ev),
+ NSPAIR(_ZN6dd7401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+static Base_Class bases_dd7401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7401[];
+static VTT_ENTRY vtt_dd7401[] = {
+ {&(_ZTV6dd7401[3]), 3,11},
+ {&(_ZTV6dd7401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static VTBL_ENTRY alt_thunk_names504[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7401 = { "dd7401", // class name
+ bases_dd7401, 3,
+ &(vtc_dd7401[0]), // expected_vtbl_contents
+ &(vtt_dd7401[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7401),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names504,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07401 : dd7401 {
+ int e;
+ ~ee07401(); // tgen
+ ee07401(); // tgen
+};
+//SIG(1 ee07401) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07401 ::~ee07401(){ note_dtor("ee07401", this);} // tgen
+ee07401 ::ee07401(){ note_ctor("ee07401", this);} // tgen
+
+static void Test_ee07401()
+{
+ extern Class_Descriptor cd_ee07401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07401, buf);
+ ee07401 *dp, &lv = *(dp=new (buf) ee07401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee07401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee07401");
+ check_base_class_offset(lv, (cc401*)(dd7401*), ABISELECT(16,12), "ee07401");
+ check_base_class_offset(lv, (dd7401*), 0, "ee07401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07401.e");
+ test_class_info(&lv, &cd_ee07401);
+ dp->~ee07401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07401(Test_ee07401, "ee07401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07401C1Ev();
+extern void _ZN7ee07401D1Ev();
+Name_Map name_map_ee07401[] = {
+ NSPAIR(_ZN7ee07401C1Ev),
+ NSPAIR(_ZN7ee07401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd7401;
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static Base_Class bases_ee07401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7401__7ee07401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd7401__7ee07401[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+static VTT_ENTRY vtt_ee07401[] = {
+ {&(_ZTV7ee07401[3]), 3,11},
+ {&(_tg__ZTV6dd7401__7ee07401[3]), 3,5},
+ {&(_tg__ZTV5cc401__6dd7401__7ee07401[4]), 4,6},
+ {&(_ZTV7ee07401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07401[];
+extern VTBL_ENTRY _ZTV7ee07401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07401[];
+static VTBL_ENTRY alt_thunk_names505[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07401 = { "ee07401", // class name
+ bases_ee07401, 4,
+ &(vtc_ee07401[0]), // expected_vtbl_contents
+ &(vtt_ee07401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names505,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17401 : virtual dd7401 {
+ int e;
+ ~ee17401(); // tgen
+ ee17401(); // tgen
+};
+//SIG(1 ee17401) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17401 ::~ee17401(){ note_dtor("ee17401", this);} // tgen
+ee17401 ::ee17401(){ note_ctor("ee17401", this);} // tgen
+
+static void Test_ee17401()
+{
+ extern Class_Descriptor cd_ee17401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17401, buf);
+ ee17401 *dp, &lv = *(dp=new (buf) ee17401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee17401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee17401");
+ check_base_class_offset(lv, (cc401*)(dd7401*), ABISELECT(32,16), "ee17401");
+ check_base_class_offset(lv, (dd7401*), ABISELECT(16,8), "ee17401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17401.e");
+ test_class_info(&lv, &cd_ee17401);
+ dp->~ee17401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17401(Test_ee17401, "ee17401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17401C1Ev();
+extern void _ZN7ee17401D1Ev();
+Name_Map name_map_ee17401[] = {
+ NSPAIR(_ZN7ee17401C1Ev),
+ NSPAIR(_ZN7ee17401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd7401;
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static Base_Class bases_ee17401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7401, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17401[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7401__7ee17401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd7401__7ee17401[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+static VTT_ENTRY vtt_ee17401[] = {
+ {&(_ZTV7ee17401[4]), 4,17},
+ {&(_ZTV7ee17401[9]), 9,17},
+ {&(_ZTV7ee17401[15]), 15,17},
+ {&(_tg__ZTV6dd7401__7ee17401[3]), 3,5},
+ {&(_tg__ZTV5cc401__6dd7401__7ee17401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17401[];
+extern VTBL_ENTRY _ZTV7ee17401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17401[];
+static VTBL_ENTRY alt_thunk_names506[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17401 = { "ee17401", // class name
+ bases_ee17401, 4,
+ &(vtc_ee17401[0]), // expected_vtbl_contents
+ &(vtt_ee17401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17401),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names506,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27401 : dd7401 {
+ int e;
+ virtual void foo(); // _ZN7ee274013fooEv
+ ~ee27401(); // tgen
+ ee27401(); // tgen
+};
+//SIG(1 ee27401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27401 ::foo(){vfunc_called(this, "_ZN7ee274013fooEv");}
+ee27401 ::~ee27401(){ note_dtor("ee27401", this);} // tgen
+ee27401 ::ee27401(){ note_ctor("ee27401", this);} // tgen
+
+static void Test_ee27401()
+{
+ extern Class_Descriptor cd_ee27401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27401, buf);
+ ee27401 *dp, &lv = *(dp=new (buf) ee27401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee27401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee27401");
+ check_base_class_offset(lv, (cc401*)(dd7401*), ABISELECT(16,12), "ee27401");
+ check_base_class_offset(lv, (dd7401*), 0, "ee27401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27401.e");
+ test_class_info(&lv, &cd_ee27401);
+ dp->~ee27401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27401(Test_ee27401, "ee27401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27401C1Ev();
+extern void _ZN7ee27401D1Ev();
+Name_Map name_map_ee27401[] = {
+ NSPAIR(_ZN7ee27401C1Ev),
+ NSPAIR(_ZN7ee27401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd7401;
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static Base_Class bases_ee27401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN7ee274013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee274013fooEv,_ZTv0_n12_N7ee274013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee274013fooEv,_ZThn12_N7ee274013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN7ee274013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274013fooEv,_ZTv0_n12_N7ee274013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7401__7ee27401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd7401__7ee27401[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+static VTT_ENTRY vtt_ee27401[] = {
+ {&(_ZTV7ee27401[3]), 3,11},
+ {&(_tg__ZTV6dd7401__7ee27401[3]), 3,5},
+ {&(_tg__ZTV5cc401__6dd7401__7ee27401[4]), 4,6},
+ {&(_ZTV7ee27401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27401[];
+extern VTBL_ENTRY _ZTV7ee27401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27401[];
+static VTBL_ENTRY alt_thunk_names507[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274013fooEv,_ZTv0_n12_N7ee274013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee274013fooEv,_ZThn12_N7ee274013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27401 = { "ee27401", // class name
+ bases_ee27401, 4,
+ &(vtc_ee27401[0]), // expected_vtbl_contents
+ &(vtt_ee27401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names507,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37401 : virtual dd7401 {
+ int e;
+ virtual void foo(); // _ZN7ee374013fooEv
+ ~ee37401(); // tgen
+ ee37401(); // tgen
+};
+//SIG(1 ee37401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37401 ::foo(){vfunc_called(this, "_ZN7ee374013fooEv");}
+ee37401 ::~ee37401(){ note_dtor("ee37401", this);} // tgen
+ee37401 ::ee37401(){ note_ctor("ee37401", this);} // tgen
+
+static void Test_ee37401()
+{
+ extern Class_Descriptor cd_ee37401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37401, buf);
+ ee37401 *dp, &lv = *(dp=new (buf) ee37401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee37401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee37401");
+ check_base_class_offset(lv, (cc401*)(dd7401*), ABISELECT(32,16), "ee37401");
+ check_base_class_offset(lv, (dd7401*), ABISELECT(16,8), "ee37401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37401.e");
+ test_class_info(&lv, &cd_ee37401);
+ dp->~ee37401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37401(Test_ee37401, "ee37401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37401C1Ev();
+extern void _ZN7ee37401D1Ev();
+Name_Map name_map_ee37401[] = {
+ NSPAIR(_ZN7ee37401C1Ev),
+ NSPAIR(_ZN7ee37401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd7401;
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static Base_Class bases_ee37401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37401[];
+extern void _ZN7ee374013fooEv();
+extern void _ZN6dd74013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374013fooEv,_ZTv0_n20_N7ee374013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374013fooEv,_ZThn8_N7ee374013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374013fooEv,_ZTv0_n12_N7ee374013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee374013fooEv,_ZThn16_N7ee374013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37401[0]),
+ (VTBL_ENTRY)&_ZN7ee374013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374013fooEv,_ZTv0_n20_N7ee374013fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374013fooEv,_ZTv0_n12_N7ee374013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7401__7ee37401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd7401__7ee37401[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+static VTT_ENTRY vtt_ee37401[] = {
+ {&(_ZTV7ee37401[4]), 4,18},
+ {&(_ZTV7ee37401[10]), 10,18},
+ {&(_ZTV7ee37401[16]), 16,18},
+ {&(_tg__ZTV6dd7401__7ee37401[3]), 3,5},
+ {&(_tg__ZTV5cc401__6dd7401__7ee37401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37401[];
+extern VTBL_ENTRY _ZTV7ee37401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37401[];
+static VTBL_ENTRY alt_thunk_names508[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374013fooEv,_ZTv0_n12_N7ee374013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee374013fooEv,_ZThn16_N7ee374013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374013fooEv,_ZTv0_n20_N7ee374013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374013fooEv,_ZThn8_N7ee374013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37401 = { "ee37401", // class name
+ bases_ee37401, 4,
+ &(vtc_ee37401[0]), // expected_vtbl_contents
+ &(vtt_ee37401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37401),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names508,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47401 : dd7401 {
+ int e;
+ virtual void bar(); // _ZN7ee474013barEv
+ ~ee47401(); // tgen
+ ee47401(); // tgen
+};
+//SIG(1 ee47401) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47401 ::bar(){vfunc_called(this, "_ZN7ee474013barEv");}
+ee47401 ::~ee47401(){ note_dtor("ee47401", this);} // tgen
+ee47401 ::ee47401(){ note_ctor("ee47401", this);} // tgen
+
+static void Test_ee47401()
+{
+ extern Class_Descriptor cd_ee47401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47401, buf);
+ ee47401 *dp, &lv = *(dp=new (buf) ee47401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee47401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee47401");
+ check_base_class_offset(lv, (cc401*)(dd7401*), ABISELECT(16,12), "ee47401");
+ check_base_class_offset(lv, (dd7401*), 0, "ee47401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47401.e");
+ test_class_info(&lv, &cd_ee47401);
+ dp->~ee47401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47401(Test_ee47401, "ee47401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47401C1Ev();
+extern void _ZN7ee47401D1Ev();
+Name_Map name_map_ee47401[] = {
+ NSPAIR(_ZN7ee47401C1Ev),
+ NSPAIR(_ZN7ee47401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd7401;
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static Base_Class bases_ee47401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47401[];
+extern void _ZN7ee474013barEv();
+extern void _ZN6dd74013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee474013barEv,_ZTv0_n16_N7ee474013barEv)();
+extern void ABISELECT(_ZThn16_N7ee474013barEv,_ZThn12_N7ee474013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47401[0]),
+ (VTBL_ENTRY)&_ZN7ee474013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474013barEv,_ZTv0_n16_N7ee474013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7401__7ee47401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd7401__7ee47401[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+static VTT_ENTRY vtt_ee47401[] = {
+ {&(_ZTV7ee47401[3]), 3,11},
+ {&(_tg__ZTV6dd7401__7ee47401[3]), 3,5},
+ {&(_tg__ZTV5cc401__6dd7401__7ee47401[4]), 4,6},
+ {&(_ZTV7ee47401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47401[];
+extern VTBL_ENTRY _ZTV7ee47401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47401[];
+static VTBL_ENTRY alt_thunk_names509[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474013barEv,_ZTv0_n16_N7ee474013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474013barEv,_ZThn12_N7ee474013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47401 = { "ee47401", // class name
+ bases_ee47401, 4,
+ &(vtc_ee47401[0]), // expected_vtbl_contents
+ &(vtt_ee47401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names509,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57401 : virtual dd7401 {
+ int e;
+ virtual void bar(); // _ZN7ee574013barEv
+ ~ee57401(); // tgen
+ ee57401(); // tgen
+};
+//SIG(1 ee57401) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57401 ::bar(){vfunc_called(this, "_ZN7ee574013barEv");}
+ee57401 ::~ee57401(){ note_dtor("ee57401", this);} // tgen
+ee57401 ::ee57401(){ note_ctor("ee57401", this);} // tgen
+
+static void Test_ee57401()
+{
+ extern Class_Descriptor cd_ee57401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57401, buf);
+ ee57401 *dp, &lv = *(dp=new (buf) ee57401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee57401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee57401");
+ check_base_class_offset(lv, (cc401*)(dd7401*), ABISELECT(32,16), "ee57401");
+ check_base_class_offset(lv, (dd7401*), ABISELECT(16,8), "ee57401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57401.e");
+ test_class_info(&lv, &cd_ee57401);
+ dp->~ee57401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57401(Test_ee57401, "ee57401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57401C1Ev();
+extern void _ZN7ee57401D1Ev();
+Name_Map name_map_ee57401[] = {
+ NSPAIR(_ZN7ee57401C1Ev),
+ NSPAIR(_ZN7ee57401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd7401;
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static Base_Class bases_ee57401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7401, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57401[];
+extern void _ZN7ee574013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574013barEv,_ZTv0_n16_N7ee574013barEv)();
+extern void ABISELECT(_ZThn16_N7ee574013barEv,_ZThn8_N7ee574013barEv)() __attribute__((weak));
+extern void _ZN6dd74013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee574013barEv,_ZTv0_n16_N7ee574013barEv)();
+extern void ABISELECT(_ZThn32_N7ee574013barEv,_ZThn16_N7ee574013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57401[0]),
+ (VTBL_ENTRY)&_ZN7ee574013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574013barEv,_ZTv0_n16_N7ee574013barEv),
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574013barEv,_ZTv0_n16_N7ee574013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7401__7ee57401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd7401__7ee57401[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+static VTT_ENTRY vtt_ee57401[] = {
+ {&(_ZTV7ee57401[4]), 4,18},
+ {&(_ZTV7ee57401[10]), 10,18},
+ {&(_ZTV7ee57401[16]), 16,18},
+ {&(_tg__ZTV6dd7401__7ee57401[3]), 3,5},
+ {&(_tg__ZTV5cc401__6dd7401__7ee57401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57401[];
+extern VTBL_ENTRY _ZTV7ee57401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57401[];
+static VTBL_ENTRY alt_thunk_names510[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574013barEv,_ZTv0_n16_N7ee574013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574013barEv,_ZThn16_N7ee574013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574013barEv,_ZThn8_N7ee574013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57401 = { "ee57401", // class name
+ bases_ee57401, 4,
+ &(vtc_ee57401[0]), // expected_vtbl_contents
+ &(vtt_ee57401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57401),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names510,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67401 : dd7401 {
+ int e;
+ virtual void foo(); // _ZN7ee674013fooEv
+ virtual void bar(); // _ZN7ee674013barEv
+ ~ee67401(); // tgen
+ ee67401(); // tgen
+};
+//SIG(1 ee67401) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67401 ::foo(){vfunc_called(this, "_ZN7ee674013fooEv");}
+void ee67401 ::bar(){vfunc_called(this, "_ZN7ee674013barEv");}
+ee67401 ::~ee67401(){ note_dtor("ee67401", this);} // tgen
+ee67401 ::ee67401(){ note_ctor("ee67401", this);} // tgen
+
+static void Test_ee67401()
+{
+ extern Class_Descriptor cd_ee67401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67401, buf);
+ ee67401 *dp, &lv = *(dp=new (buf) ee67401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(16,12), "ee67401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(16,12), "ee67401");
+ check_base_class_offset(lv, (cc401*)(dd7401*), ABISELECT(16,12), "ee67401");
+ check_base_class_offset(lv, (dd7401*), 0, "ee67401");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67401.e");
+ test_class_info(&lv, &cd_ee67401);
+ dp->~ee67401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67401(Test_ee67401, "ee67401", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67401C1Ev();
+extern void _ZN7ee67401D1Ev();
+Name_Map name_map_ee67401[] = {
+ NSPAIR(_ZN7ee67401C1Ev),
+ NSPAIR(_ZN7ee67401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd7401;
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static Base_Class bases_ee67401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7401, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67401[];
+extern void _ZN7ee674013barEv();
+extern void _ZN7ee674013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674013fooEv,_ZTv0_n12_N7ee674013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee674013fooEv,_ZThn12_N7ee674013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674013barEv,_ZTv0_n16_N7ee674013barEv)();
+extern void ABISELECT(_ZThn16_N7ee674013barEv,_ZThn12_N7ee674013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67401[0]),
+ (VTBL_ENTRY)&_ZN7ee674013barEv,
+ (VTBL_ENTRY)&_ZN7ee674013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674013fooEv,_ZTv0_n12_N7ee674013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674013barEv,_ZTv0_n16_N7ee674013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7401__7ee67401[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd7401__7ee67401[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+static VTT_ENTRY vtt_ee67401[] = {
+ {&(_ZTV7ee67401[3]), 3,11},
+ {&(_tg__ZTV6dd7401__7ee67401[3]), 3,5},
+ {&(_tg__ZTV5cc401__6dd7401__7ee67401[4]), 4,6},
+ {&(_ZTV7ee67401[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67401[];
+extern VTBL_ENTRY _ZTV7ee67401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67401[];
+static VTBL_ENTRY alt_thunk_names511[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn12_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn12_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674013barEv,_ZTv0_n16_N7ee674013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674013barEv,_ZThn12_N7ee674013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674013fooEv,_ZTv0_n12_N7ee674013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674013fooEv,_ZThn12_N7ee674013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67401 = { "ee67401", // class name
+ bases_ee67401, 4,
+ &(vtc_ee67401[0]), // expected_vtbl_contents
+ &(vtt_ee67401[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67401),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67401),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67401),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names511,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77401 : virtual dd7401 {
+ int e;
+ virtual void foo(); // _ZN7ee774013fooEv
+ virtual void bar(); // _ZN7ee774013barEv
+ ~ee77401(); // tgen
+ ee77401(); // tgen
+};
+//SIG(1 ee77401) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77401 ::foo(){vfunc_called(this, "_ZN7ee774013fooEv");}
+void ee77401 ::bar(){vfunc_called(this, "_ZN7ee774013barEv");}
+ee77401 ::~ee77401(){ note_dtor("ee77401", this);} // tgen
+ee77401 ::ee77401(){ note_ctor("ee77401", this);} // tgen
+
+static void Test_ee77401()
+{
+ extern Class_Descriptor cd_ee77401;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77401, buf);
+ ee77401 *dp, &lv = *(dp=new (buf) ee77401());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77401)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77401)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc401*), ABISELECT(32,16), "ee77401");
+ check_base_class_offset(lv, (bb01*)(cc401*), ABISELECT(32,16), "ee77401");
+ check_base_class_offset(lv, (cc401*)(dd7401*), ABISELECT(32,16), "ee77401");
+ check_base_class_offset(lv, (dd7401*), ABISELECT(16,8), "ee77401");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77401.e");
+ test_class_info(&lv, &cd_ee77401);
+ dp->~ee77401();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77401(Test_ee77401, "ee77401", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77401C1Ev();
+extern void _ZN7ee77401D1Ev();
+Name_Map name_map_ee77401[] = {
+ NSPAIR(_ZN7ee77401C1Ev),
+ NSPAIR(_ZN7ee77401D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc401;
+extern VTBL_ENTRY _ZTI5cc401[];
+extern VTBL_ENTRY _ZTV5cc401[];
+extern Class_Descriptor cd_dd7401;
+extern VTBL_ENTRY _ZTI6dd7401[];
+extern VTBL_ENTRY _ZTV6dd7401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7401[];
+static Base_Class bases_ee77401[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc401, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7401, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77401[];
+extern void _ZN7ee774013fooEv();
+extern void _ZN7ee774013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774013barEv,_ZTv0_n16_N7ee774013barEv)();
+extern void ABISELECT(_ZThn16_N7ee774013barEv,_ZThn8_N7ee774013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774013fooEv,_ZTv0_n20_N7ee774013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774013fooEv,_ZThn8_N7ee774013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774013fooEv,_ZTv0_n12_N7ee774013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee774013fooEv,_ZThn16_N7ee774013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774013barEv,_ZTv0_n16_N7ee774013barEv)();
+extern void ABISELECT(_ZThn32_N7ee774013barEv,_ZThn16_N7ee774013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77401[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77401[0]),
+ (VTBL_ENTRY)&_ZN7ee774013fooEv,
+ (VTBL_ENTRY)&_ZN7ee774013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774013barEv,_ZTv0_n16_N7ee774013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774013fooEv,_ZTv0_n20_N7ee774013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774013fooEv,_ZTv0_n12_N7ee774013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774013barEv,_ZTv0_n16_N7ee774013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77401[];
+extern void _ZN6dd74013barEv();
+extern void _ZN6dd74013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7401__7ee77401[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&_ZN6dd74013barEv,
+ (VTBL_ENTRY)&_ZN6dd74013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv)();
+extern void ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc401__6dd7401__7ee77401[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7401[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv),
+};
+static VTT_ENTRY vtt_ee77401[] = {
+ {&(_ZTV7ee77401[4]), 4,19},
+ {&(_ZTV7ee77401[11]), 11,19},
+ {&(_ZTV7ee77401[17]), 17,19},
+ {&(_tg__ZTV6dd7401__7ee77401[3]), 3,5},
+ {&(_tg__ZTV5cc401__6dd7401__7ee77401[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77401[];
+extern VTBL_ENTRY _ZTV7ee77401[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77401[];
+static VTBL_ENTRY alt_thunk_names512[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74013barEv,_ZTv0_n16_N6dd74013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013barEv,_ZThn8_N6dd74013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74013fooEv,_ZTv0_n12_N6dd74013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74013fooEv,_ZThn8_N6dd74013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774013fooEv,_ZTv0_n12_N7ee774013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774013fooEv,_ZThn16_N7ee774013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774013fooEv,_ZTv0_n20_N7ee774013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774013fooEv,_ZThn8_N7ee774013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774013barEv,_ZTv0_n16_N7ee774013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774013barEv,_ZThn16_N7ee774013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774013barEv,_ZThn8_N7ee774013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77401 = { "ee77401", // class name
+ bases_ee77401, 4,
+ &(vtc_ee77401[0]), // expected_vtbl_contents
+ &(vtt_ee77401[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77401),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77401),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77401),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names512,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc501 : virtual bb01 {
+ int c;
+ virtual void bar(); // _ZN5cc5013barEv
+ ~cc501(); // tgen
+ cc501(); // tgen
+};
+//SIG(-1 cc501) C1{ VBC2{ BC3{ v2 Fi} Fi} v1 Fi}
+
+
+void cc501 ::bar(){vfunc_called(this, "_ZN5cc5013barEv");}
+cc501 ::~cc501(){ note_dtor("cc501", this);} // tgen
+cc501 ::cc501(){ note_ctor("cc501", this);} // tgen
+
+static void Test_cc501()
+{
+ extern Class_Descriptor cd_cc501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc501, buf);
+ cc501 *dp, &lv = *(dp=new (buf) cc501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,8), "cc501");
+ check_base_class_offset(lv, (bb01*), ABISELECT(16,8), "cc501");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc501.c");
+ test_class_info(&lv, &cd_cc501);
+ dp->~cc501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc501(Test_cc501, "cc501", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc501C1Ev();
+extern void _ZN5cc501D1Ev();
+Name_Map name_map_cc501[] = {
+ NSPAIR(_ZN5cc501C1Ev),
+ NSPAIR(_ZN5cc501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+static Base_Class bases_cc501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_cc501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc501[];
+static VTT_ENTRY vtt_cc501[] = {
+ {&(_ZTV5cc501[3]), 3,8},
+ {&(_ZTV5cc501[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+Class_Descriptor cd_cc501 = { "cc501", // class name
+ bases_cc501, 2,
+ &(vtc_cc501[0]), // expected_vtbl_contents
+ &(vtt_cc501[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc501),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc501),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0501 : cc501 {
+ int d;
+ ~dd0501(); // tgen
+ dd0501(); // tgen
+};
+//SIG(-1 dd0501) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} v1 Fi} Fi}
+
+
+dd0501 ::~dd0501(){ note_dtor("dd0501", this);} // tgen
+dd0501 ::dd0501(){ note_ctor("dd0501", this);} // tgen
+
+static void Test_dd0501()
+{
+ extern Class_Descriptor cd_dd0501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0501, buf);
+ dd0501 *dp, &lv = *(dp=new (buf) dd0501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd0501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(16,12), "dd0501");
+ check_base_class_offset(lv, (cc501*), 0, "dd0501");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0501.d");
+ test_class_info(&lv, &cd_dd0501);
+ dp->~dd0501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0501(Test_dd0501, "dd0501", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0501C1Ev();
+extern void _ZN6dd0501D1Ev();
+Name_Map name_map_dd0501[] = {
+ NSPAIR(_ZN6dd0501C1Ev),
+ NSPAIR(_ZN6dd0501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+static Base_Class bases_dd0501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd0501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd0501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__6dd0501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd0501[] = {
+ {&(_ZTV6dd0501[3]), 3,8},
+ {&(_tg__ZTV5cc501__6dd0501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__6dd0501[3]), 3,4},
+ {&(_ZTV6dd0501[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+Class_Descriptor cd_dd0501 = { "dd0501", // class name
+ bases_dd0501, 3,
+ &(vtc_dd0501[0]), // expected_vtbl_contents
+ &(vtt_dd0501[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0501),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0501),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 ee00501 : dd0501 {
+ int e;
+ ~ee00501(); // tgen
+ ee00501(); // tgen
+};
+//SIG(1 ee00501) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00501 ::~ee00501(){ note_dtor("ee00501", this);} // tgen
+ee00501 ::ee00501(){ note_ctor("ee00501", this);} // tgen
+
+static void Test_ee00501()
+{
+ extern Class_Descriptor cd_ee00501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00501, buf);
+ ee00501 *dp, &lv = *(dp=new (buf) ee00501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee00501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd0501*), ABISELECT(24,16), "ee00501");
+ check_base_class_offset(lv, (cc501*)(dd0501*), 0, "ee00501");
+ check_base_class_offset(lv, (dd0501*), 0, "ee00501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00501.e");
+ test_class_info(&lv, &cd_ee00501);
+ dp->~ee00501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00501(Test_ee00501, "ee00501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00501C1Ev();
+extern void _ZN7ee00501D1Ev();
+Name_Map name_map_ee00501[] = {
+ NSPAIR(_ZN7ee00501C1Ev),
+ NSPAIR(_ZN7ee00501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd0501;
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+static Base_Class bases_ee00501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee00501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0501__7ee00501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd0501__7ee00501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd0501__7ee00501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0501__7ee00501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee00501[] = {
+ {&(_ZTV7ee00501[3]), 3,8},
+ {&(_tg__ZTV6dd0501__7ee00501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd0501__7ee00501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd0501__7ee00501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0501__7ee00501[3]), 3,4},
+ {&(_ZTV7ee00501[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee00501[];
+extern VTBL_ENTRY _ZTV7ee00501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00501[];
+Class_Descriptor cd_ee00501 = { "ee00501", // class name
+ bases_ee00501, 4,
+ &(vtc_ee00501[0]), // expected_vtbl_contents
+ &(vtt_ee00501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00501),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10501 : virtual dd0501 {
+ int e;
+ ~ee10501(); // tgen
+ ee10501(); // tgen
+};
+//SIG(1 ee10501) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10501 ::~ee10501(){ note_dtor("ee10501", this);} // tgen
+ee10501 ::ee10501(){ note_ctor("ee10501", this);} // tgen
+
+static void Test_ee10501()
+{
+ extern Class_Descriptor cd_ee10501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10501, buf);
+ ee10501 *dp, &lv = *(dp=new (buf) ee10501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee10501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd0501*), ABISELECT(32,20), "ee10501");
+ check_base_class_offset(lv, (cc501*)(dd0501*), ABISELECT(16,8), "ee10501");
+ check_base_class_offset(lv, (dd0501*), ABISELECT(16,8), "ee10501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10501.e");
+ test_class_info(&lv, &cd_ee10501);
+ dp->~ee10501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10501(Test_ee10501, "ee10501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10501C1Ev();
+extern void _ZN7ee10501D1Ev();
+Name_Map name_map_ee10501[] = {
+ NSPAIR(_ZN7ee10501C1Ev),
+ NSPAIR(_ZN7ee10501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd0501;
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+static Base_Class bases_ee10501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0501, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee10501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10501[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0501__7ee10501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd0501__7ee10501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd0501__7ee10501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0501__7ee10501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee10501[] = {
+ {&(_ZTV7ee10501[4]), 4,13},
+ {&(_ZTV7ee10501[8]), 8,13},
+ {&(_ZTV7ee10501[12]), 12,13},
+ {&(_tg__ZTV6dd0501__7ee10501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd0501__7ee10501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd0501__7ee10501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0501__7ee10501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10501[];
+extern VTBL_ENTRY _ZTV7ee10501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10501[];
+Class_Descriptor cd_ee10501 = { "ee10501", // class name
+ bases_ee10501, 4,
+ &(vtc_ee10501[0]), // expected_vtbl_contents
+ &(vtt_ee10501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10501),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20501 : dd0501 {
+ int e;
+ virtual void foo(); // _ZN7ee205013fooEv
+ ~ee20501(); // tgen
+ ee20501(); // tgen
+};
+//SIG(1 ee20501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20501 ::foo(){vfunc_called(this, "_ZN7ee205013fooEv");}
+ee20501 ::~ee20501(){ note_dtor("ee20501", this);} // tgen
+ee20501 ::ee20501(){ note_ctor("ee20501", this);} // tgen
+
+static void Test_ee20501()
+{
+ extern Class_Descriptor cd_ee20501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20501, buf);
+ ee20501 *dp, &lv = *(dp=new (buf) ee20501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee20501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd0501*), ABISELECT(24,16), "ee20501");
+ check_base_class_offset(lv, (cc501*)(dd0501*), 0, "ee20501");
+ check_base_class_offset(lv, (dd0501*), 0, "ee20501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20501.e");
+ test_class_info(&lv, &cd_ee20501);
+ dp->~ee20501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20501(Test_ee20501, "ee20501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20501C1Ev();
+extern void _ZN7ee20501D1Ev();
+Name_Map name_map_ee20501[] = {
+ NSPAIR(_ZN7ee20501C1Ev),
+ NSPAIR(_ZN7ee20501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd0501;
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+static Base_Class bases_ee20501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN7ee205013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee205013fooEv,_ZTv0_n12_N7ee205013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee205013fooEv,_ZThn16_N7ee205013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN7ee205013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205013fooEv,_ZTv0_n12_N7ee205013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0501__7ee20501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd0501__7ee20501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd0501__7ee20501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0501__7ee20501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee20501[] = {
+ {&(_ZTV7ee20501[3]), 3,9},
+ {&(_tg__ZTV6dd0501__7ee20501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd0501__7ee20501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd0501__7ee20501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0501__7ee20501[3]), 3,4},
+ {&(_ZTV7ee20501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20501[];
+extern VTBL_ENTRY _ZTV7ee20501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20501[];
+static VTBL_ENTRY alt_thunk_names513[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205013fooEv,_ZTv0_n12_N7ee205013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee205013fooEv,_ZThn16_N7ee205013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20501 = { "ee20501", // class name
+ bases_ee20501, 4,
+ &(vtc_ee20501[0]), // expected_vtbl_contents
+ &(vtt_ee20501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names513,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30501 : virtual dd0501 {
+ int e;
+ virtual void foo(); // _ZN7ee305013fooEv
+ ~ee30501(); // tgen
+ ee30501(); // tgen
+};
+//SIG(1 ee30501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30501 ::foo(){vfunc_called(this, "_ZN7ee305013fooEv");}
+ee30501 ::~ee30501(){ note_dtor("ee30501", this);} // tgen
+ee30501 ::ee30501(){ note_ctor("ee30501", this);} // tgen
+
+static void Test_ee30501()
+{
+ extern Class_Descriptor cd_ee30501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30501, buf);
+ ee30501 *dp, &lv = *(dp=new (buf) ee30501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee30501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd0501*), ABISELECT(32,20), "ee30501");
+ check_base_class_offset(lv, (cc501*)(dd0501*), ABISELECT(16,8), "ee30501");
+ check_base_class_offset(lv, (dd0501*), ABISELECT(16,8), "ee30501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30501.e");
+ test_class_info(&lv, &cd_ee30501);
+ dp->~ee30501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30501(Test_ee30501, "ee30501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30501C1Ev();
+extern void _ZN7ee30501D1Ev();
+Name_Map name_map_ee30501[] = {
+ NSPAIR(_ZN7ee30501C1Ev),
+ NSPAIR(_ZN7ee30501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd0501;
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+static Base_Class bases_ee30501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30501[];
+extern void _ZN7ee305013fooEv();
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee305013fooEv,_ZTv0_n12_N7ee305013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee305013fooEv,_ZThn20_N7ee305013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30501[0]),
+ (VTBL_ENTRY)&_ZN7ee305013fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305013fooEv,_ZTv0_n12_N7ee305013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0501__7ee30501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd0501__7ee30501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd0501__7ee30501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0501__7ee30501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee30501[] = {
+ {&(_ZTV7ee30501[4]), 4,14},
+ {&(_ZTV7ee30501[9]), 9,14},
+ {&(_ZTV7ee30501[13]), 13,14},
+ {&(_tg__ZTV6dd0501__7ee30501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd0501__7ee30501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd0501__7ee30501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0501__7ee30501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30501[];
+extern VTBL_ENTRY _ZTV7ee30501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30501[];
+static VTBL_ENTRY alt_thunk_names514[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305013fooEv,_ZTv0_n12_N7ee305013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee305013fooEv,_ZThn20_N7ee305013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30501 = { "ee30501", // class name
+ bases_ee30501, 4,
+ &(vtc_ee30501[0]), // expected_vtbl_contents
+ &(vtt_ee30501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names514,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40501 : dd0501 {
+ int e;
+ virtual void bar(); // _ZN7ee405013barEv
+ ~ee40501(); // tgen
+ ee40501(); // tgen
+};
+//SIG(1 ee40501) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40501 ::bar(){vfunc_called(this, "_ZN7ee405013barEv");}
+ee40501 ::~ee40501(){ note_dtor("ee40501", this);} // tgen
+ee40501 ::ee40501(){ note_ctor("ee40501", this);} // tgen
+
+static void Test_ee40501()
+{
+ extern Class_Descriptor cd_ee40501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40501, buf);
+ ee40501 *dp, &lv = *(dp=new (buf) ee40501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee40501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd0501*), ABISELECT(24,16), "ee40501");
+ check_base_class_offset(lv, (cc501*)(dd0501*), 0, "ee40501");
+ check_base_class_offset(lv, (dd0501*), 0, "ee40501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40501.e");
+ test_class_info(&lv, &cd_ee40501);
+ dp->~ee40501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40501(Test_ee40501, "ee40501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40501C1Ev();
+extern void _ZN7ee40501D1Ev();
+Name_Map name_map_ee40501[] = {
+ NSPAIR(_ZN7ee40501C1Ev),
+ NSPAIR(_ZN7ee40501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd0501;
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+static Base_Class bases_ee40501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40501[];
+extern void _ZN7ee405013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee40501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40501[0]),
+ (VTBL_ENTRY)&_ZN7ee405013barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0501__7ee40501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd0501__7ee40501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd0501__7ee40501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0501__7ee40501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee40501[] = {
+ {&(_ZTV7ee40501[3]), 3,8},
+ {&(_tg__ZTV6dd0501__7ee40501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd0501__7ee40501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd0501__7ee40501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0501__7ee40501[3]), 3,4},
+ {&(_ZTV7ee40501[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee40501[];
+extern VTBL_ENTRY _ZTV7ee40501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40501[];
+Class_Descriptor cd_ee40501 = { "ee40501", // class name
+ bases_ee40501, 4,
+ &(vtc_ee40501[0]), // expected_vtbl_contents
+ &(vtt_ee40501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40501),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50501 : virtual dd0501 {
+ int e;
+ virtual void bar(); // _ZN7ee505013barEv
+ ~ee50501(); // tgen
+ ee50501(); // tgen
+};
+//SIG(1 ee50501) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50501 ::bar(){vfunc_called(this, "_ZN7ee505013barEv");}
+ee50501 ::~ee50501(){ note_dtor("ee50501", this);} // tgen
+ee50501 ::ee50501(){ note_ctor("ee50501", this);} // tgen
+
+static void Test_ee50501()
+{
+ extern Class_Descriptor cd_ee50501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50501, buf);
+ ee50501 *dp, &lv = *(dp=new (buf) ee50501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee50501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd0501*), ABISELECT(32,20), "ee50501");
+ check_base_class_offset(lv, (cc501*)(dd0501*), ABISELECT(16,8), "ee50501");
+ check_base_class_offset(lv, (dd0501*), ABISELECT(16,8), "ee50501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50501.e");
+ test_class_info(&lv, &cd_ee50501);
+ dp->~ee50501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50501(Test_ee50501, "ee50501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50501C1Ev();
+extern void _ZN7ee50501D1Ev();
+Name_Map name_map_ee50501[] = {
+ NSPAIR(_ZN7ee50501C1Ev),
+ NSPAIR(_ZN7ee50501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd0501;
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+static Base_Class bases_ee50501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50501[];
+extern void _ZN7ee505013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505013barEv,_ZTv0_n16_N7ee505013barEv)();
+extern void ABISELECT(_ZThn16_N7ee505013barEv,_ZThn8_N7ee505013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee50501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50501[0]),
+ (VTBL_ENTRY)&_ZN7ee505013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505013barEv,_ZTv0_n16_N7ee505013barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0501__7ee50501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd0501__7ee50501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd0501__7ee50501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0501__7ee50501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee50501[] = {
+ {&(_ZTV7ee50501[4]), 4,14},
+ {&(_ZTV7ee50501[9]), 9,14},
+ {&(_ZTV7ee50501[13]), 13,14},
+ {&(_tg__ZTV6dd0501__7ee50501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd0501__7ee50501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd0501__7ee50501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0501__7ee50501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50501[];
+extern VTBL_ENTRY _ZTV7ee50501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50501[];
+static VTBL_ENTRY alt_thunk_names515[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505013barEv,_ZTv0_n16_N7ee505013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505013barEv,_ZThn8_N7ee505013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50501 = { "ee50501", // class name
+ bases_ee50501, 4,
+ &(vtc_ee50501[0]), // expected_vtbl_contents
+ &(vtt_ee50501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names515,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60501 : dd0501 {
+ int e;
+ virtual void foo(); // _ZN7ee605013fooEv
+ virtual void bar(); // _ZN7ee605013barEv
+ ~ee60501(); // tgen
+ ee60501(); // tgen
+};
+//SIG(1 ee60501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60501 ::foo(){vfunc_called(this, "_ZN7ee605013fooEv");}
+void ee60501 ::bar(){vfunc_called(this, "_ZN7ee605013barEv");}
+ee60501 ::~ee60501(){ note_dtor("ee60501", this);} // tgen
+ee60501 ::ee60501(){ note_ctor("ee60501", this);} // tgen
+
+static void Test_ee60501()
+{
+ extern Class_Descriptor cd_ee60501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60501, buf);
+ ee60501 *dp, &lv = *(dp=new (buf) ee60501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee60501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd0501*), ABISELECT(24,16), "ee60501");
+ check_base_class_offset(lv, (cc501*)(dd0501*), 0, "ee60501");
+ check_base_class_offset(lv, (dd0501*), 0, "ee60501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60501.e");
+ test_class_info(&lv, &cd_ee60501);
+ dp->~ee60501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60501(Test_ee60501, "ee60501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60501C1Ev();
+extern void _ZN7ee60501D1Ev();
+Name_Map name_map_ee60501[] = {
+ NSPAIR(_ZN7ee60501C1Ev),
+ NSPAIR(_ZN7ee60501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd0501;
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+static Base_Class bases_ee60501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60501[];
+extern void _ZN7ee605013barEv();
+extern void _ZN7ee605013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee605013fooEv,_ZTv0_n12_N7ee605013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee605013fooEv,_ZThn16_N7ee605013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60501[0]),
+ (VTBL_ENTRY)&_ZN7ee605013barEv,
+ (VTBL_ENTRY)&_ZN7ee605013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605013fooEv,_ZTv0_n12_N7ee605013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0501__7ee60501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd0501__7ee60501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd0501__7ee60501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0501__7ee60501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee60501[] = {
+ {&(_ZTV7ee60501[3]), 3,9},
+ {&(_tg__ZTV6dd0501__7ee60501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd0501__7ee60501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd0501__7ee60501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0501__7ee60501[3]), 3,4},
+ {&(_ZTV7ee60501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60501[];
+extern VTBL_ENTRY _ZTV7ee60501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60501[];
+static VTBL_ENTRY alt_thunk_names516[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605013fooEv,_ZTv0_n12_N7ee605013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605013fooEv,_ZThn16_N7ee605013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60501 = { "ee60501", // class name
+ bases_ee60501, 4,
+ &(vtc_ee60501[0]), // expected_vtbl_contents
+ &(vtt_ee60501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names516,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70501 : virtual dd0501 {
+ int e;
+ virtual void foo(); // _ZN7ee705013fooEv
+ virtual void bar(); // _ZN7ee705013barEv
+ ~ee70501(); // tgen
+ ee70501(); // tgen
+};
+//SIG(1 ee70501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70501 ::foo(){vfunc_called(this, "_ZN7ee705013fooEv");}
+void ee70501 ::bar(){vfunc_called(this, "_ZN7ee705013barEv");}
+ee70501 ::~ee70501(){ note_dtor("ee70501", this);} // tgen
+ee70501 ::ee70501(){ note_ctor("ee70501", this);} // tgen
+
+static void Test_ee70501()
+{
+ extern Class_Descriptor cd_ee70501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70501, buf);
+ ee70501 *dp, &lv = *(dp=new (buf) ee70501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee70501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd0501*), ABISELECT(32,20), "ee70501");
+ check_base_class_offset(lv, (cc501*)(dd0501*), ABISELECT(16,8), "ee70501");
+ check_base_class_offset(lv, (dd0501*), ABISELECT(16,8), "ee70501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70501.e");
+ test_class_info(&lv, &cd_ee70501);
+ dp->~ee70501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70501(Test_ee70501, "ee70501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70501C1Ev();
+extern void _ZN7ee70501D1Ev();
+Name_Map name_map_ee70501[] = {
+ NSPAIR(_ZN7ee70501C1Ev),
+ NSPAIR(_ZN7ee70501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd0501;
+extern VTBL_ENTRY _ZTI6dd0501[];
+extern VTBL_ENTRY _ZTV6dd0501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0501[];
+static Base_Class bases_ee70501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70501[];
+extern void _ZN7ee705013fooEv();
+extern void _ZN7ee705013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705013barEv,_ZTv0_n16_N7ee705013barEv)();
+extern void ABISELECT(_ZThn16_N7ee705013barEv,_ZThn8_N7ee705013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705013fooEv,_ZTv0_n12_N7ee705013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee705013fooEv,_ZThn20_N7ee705013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70501[0]),
+ (VTBL_ENTRY)&_ZN7ee705013fooEv,
+ (VTBL_ENTRY)&_ZN7ee705013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705013barEv,_ZTv0_n16_N7ee705013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705013fooEv,_ZTv0_n12_N7ee705013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0501__7ee70501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd0501__7ee70501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd0501__7ee70501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0501__7ee70501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee70501[] = {
+ {&(_ZTV7ee70501[4]), 4,15},
+ {&(_ZTV7ee70501[10]), 10,15},
+ {&(_ZTV7ee70501[14]), 14,15},
+ {&(_tg__ZTV6dd0501__7ee70501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd0501__7ee70501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd0501__7ee70501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0501__7ee70501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70501[];
+extern VTBL_ENTRY _ZTV7ee70501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70501[];
+static VTBL_ENTRY alt_thunk_names517[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705013fooEv,_ZTv0_n12_N7ee705013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705013fooEv,_ZThn20_N7ee705013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705013barEv,_ZTv0_n16_N7ee705013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705013barEv,_ZThn8_N7ee705013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70501 = { "ee70501", // class name
+ bases_ee70501, 4,
+ &(vtc_ee70501[0]), // expected_vtbl_contents
+ &(vtt_ee70501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names517,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1501 : virtual cc501 {
+ int d;
+ ~dd1501(); // tgen
+ dd1501(); // tgen
+};
+//SIG(-1 dd1501) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} v1 Fi} Fi}
+
+
+dd1501 ::~dd1501(){ note_dtor("dd1501", this);} // tgen
+dd1501 ::dd1501(){ note_ctor("dd1501", this);} // tgen
+
+static void Test_dd1501()
+{
+ extern Class_Descriptor cd_dd1501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1501, buf);
+ dd1501 *dp, &lv = *(dp=new (buf) dd1501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd1501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,16), "dd1501");
+ check_base_class_offset(lv, (cc501*), ABISELECT(16,8), "dd1501");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1501.d");
+ test_class_info(&lv, &cd_dd1501);
+ dp->~dd1501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1501(Test_dd1501, "dd1501", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1501C1Ev();
+extern void _ZN6dd1501D1Ev();
+Name_Map name_map_dd1501[] = {
+ NSPAIR(_ZN6dd1501C1Ev),
+ NSPAIR(_ZN6dd1501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+static Base_Class bases_dd1501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd1501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__6dd1501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd1501[] = {
+ {&(_ZTV6dd1501[4]), 4,13},
+ {&(_ZTV6dd1501[8]), 8,13},
+ {&(_ZTV6dd1501[12]), 12,13},
+ {&(_tg__ZTV5cc501__6dd1501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__6dd1501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+Class_Descriptor cd_dd1501 = { "dd1501", // class name
+ bases_dd1501, 3,
+ &(vtc_dd1501[0]), // expected_vtbl_contents
+ &(vtt_dd1501[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1501),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1501),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 ee01501 : dd1501 {
+ int e;
+ ~ee01501(); // tgen
+ ee01501(); // tgen
+};
+//SIG(1 ee01501) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01501 ::~ee01501(){ note_dtor("ee01501", this);} // tgen
+ee01501 ::ee01501(){ note_ctor("ee01501", this);} // tgen
+
+static void Test_ee01501()
+{
+ extern Class_Descriptor cd_ee01501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01501, buf);
+ ee01501 *dp, &lv = *(dp=new (buf) ee01501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee01501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee01501");
+ check_base_class_offset(lv, (cc501*)(dd1501*), ABISELECT(16,12), "ee01501");
+ check_base_class_offset(lv, (dd1501*), 0, "ee01501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01501.e");
+ test_class_info(&lv, &cd_ee01501);
+ dp->~ee01501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01501(Test_ee01501, "ee01501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01501C1Ev();
+extern void _ZN7ee01501D1Ev();
+Name_Map name_map_ee01501[] = {
+ NSPAIR(_ZN7ee01501C1Ev),
+ NSPAIR(_ZN7ee01501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd1501;
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+static Base_Class bases_ee01501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee01501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01501[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01501[];
+static VTBL_ENTRY _tg__ZTV6dd1501__7ee01501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501__7ee01501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1501__7ee01501[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee01501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee01501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01501[] = {
+ {&(_ZTV7ee01501[4]), 4,13},
+ {&(_tg__ZTV6dd1501__7ee01501[4]), 4,4},
+ {&(_tg__ZTV5cc501__6dd1501__7ee01501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1501__7ee01501[3]), 3,4},
+ {&(_ZTV7ee01501[8]), 8,13},
+ {&(_ZTV7ee01501[12]), 12,13},
+ {&(_tg__ZTV5cc501__7ee01501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee01501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01501[];
+extern VTBL_ENTRY _ZTV7ee01501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01501[];
+Class_Descriptor cd_ee01501 = { "ee01501", // class name
+ bases_ee01501, 4,
+ &(vtc_ee01501[0]), // expected_vtbl_contents
+ &(vtt_ee01501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01501),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11501 : virtual dd1501 {
+ int e;
+ ~ee11501(); // tgen
+ ee11501(); // tgen
+};
+//SIG(1 ee11501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11501 ::~ee11501(){ note_dtor("ee11501", this);} // tgen
+ee11501 ::ee11501(){ note_ctor("ee11501", this);} // tgen
+
+static void Test_ee11501()
+{
+ extern Class_Descriptor cd_ee11501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11501, buf);
+ ee11501 *dp, &lv = *(dp=new (buf) ee11501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee11501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee11501");
+ check_base_class_offset(lv, (cc501*)(dd1501*), ABISELECT(32,16), "ee11501");
+ check_base_class_offset(lv, (dd1501*), ABISELECT(16,8), "ee11501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11501.e");
+ test_class_info(&lv, &cd_ee11501);
+ dp->~ee11501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11501(Test_ee11501, "ee11501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11501C1Ev();
+extern void _ZN7ee11501D1Ev();
+Name_Map name_map_ee11501[] = {
+ NSPAIR(_ZN7ee11501C1Ev),
+ NSPAIR(_ZN7ee11501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd1501;
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+static Base_Class bases_ee11501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee11501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11501[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11501[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11501[];
+static VTBL_ENTRY _tg__ZTV6dd1501__7ee11501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501__7ee11501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1501__7ee11501[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee11501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee11501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11501[] = {
+ {&(_ZTV7ee11501[5]), 5,18},
+ {&(_ZTV7ee11501[9]), 9,18},
+ {&(_ZTV7ee11501[13]), 13,18},
+ {&(_ZTV7ee11501[17]), 17,18},
+ {&(_tg__ZTV6dd1501__7ee11501[4]), 4,4},
+ {&(_tg__ZTV5cc501__6dd1501__7ee11501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1501__7ee11501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee11501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee11501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11501[];
+extern VTBL_ENTRY _ZTV7ee11501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11501[];
+Class_Descriptor cd_ee11501 = { "ee11501", // class name
+ bases_ee11501, 4,
+ &(vtc_ee11501[0]), // expected_vtbl_contents
+ &(vtt_ee11501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11501),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21501 : dd1501 {
+ int e;
+ virtual void foo(); // _ZN7ee215013fooEv
+ ~ee21501(); // tgen
+ ee21501(); // tgen
+};
+//SIG(1 ee21501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21501 ::foo(){vfunc_called(this, "_ZN7ee215013fooEv");}
+ee21501 ::~ee21501(){ note_dtor("ee21501", this);} // tgen
+ee21501 ::ee21501(){ note_ctor("ee21501", this);} // tgen
+
+static void Test_ee21501()
+{
+ extern Class_Descriptor cd_ee21501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21501, buf);
+ ee21501 *dp, &lv = *(dp=new (buf) ee21501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee21501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee21501");
+ check_base_class_offset(lv, (cc501*)(dd1501*), ABISELECT(16,12), "ee21501");
+ check_base_class_offset(lv, (dd1501*), 0, "ee21501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21501.e");
+ test_class_info(&lv, &cd_ee21501);
+ dp->~ee21501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21501(Test_ee21501, "ee21501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21501C1Ev();
+extern void _ZN7ee21501D1Ev();
+Name_Map name_map_ee21501[] = {
+ NSPAIR(_ZN7ee21501C1Ev),
+ NSPAIR(_ZN7ee21501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd1501;
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+static Base_Class bases_ee21501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21501[];
+extern void _ZN7ee215013fooEv();
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee215013fooEv,_ZTv0_n12_N7ee215013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee215013fooEv,_ZThn20_N7ee215013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21501[0]),
+ (VTBL_ENTRY)&_ZN7ee215013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215013fooEv,_ZTv0_n12_N7ee215013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21501[];
+static VTBL_ENTRY _tg__ZTV6dd1501__7ee21501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501__7ee21501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1501__7ee21501[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee21501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee21501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21501[] = {
+ {&(_ZTV7ee21501[4]), 4,14},
+ {&(_tg__ZTV6dd1501__7ee21501[4]), 4,4},
+ {&(_tg__ZTV5cc501__6dd1501__7ee21501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1501__7ee21501[3]), 3,4},
+ {&(_ZTV7ee21501[9]), 9,14},
+ {&(_ZTV7ee21501[13]), 13,14},
+ {&(_tg__ZTV5cc501__7ee21501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee21501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21501[];
+extern VTBL_ENTRY _ZTV7ee21501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21501[];
+static VTBL_ENTRY alt_thunk_names518[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215013fooEv,_ZTv0_n12_N7ee215013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee215013fooEv,_ZThn20_N7ee215013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21501 = { "ee21501", // class name
+ bases_ee21501, 4,
+ &(vtc_ee21501[0]), // expected_vtbl_contents
+ &(vtt_ee21501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names518,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31501 : virtual dd1501 {
+ int e;
+ virtual void foo(); // _ZN7ee315013fooEv
+ ~ee31501(); // tgen
+ ee31501(); // tgen
+};
+//SIG(1 ee31501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31501 ::foo(){vfunc_called(this, "_ZN7ee315013fooEv");}
+ee31501 ::~ee31501(){ note_dtor("ee31501", this);} // tgen
+ee31501 ::ee31501(){ note_ctor("ee31501", this);} // tgen
+
+static void Test_ee31501()
+{
+ extern Class_Descriptor cd_ee31501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31501, buf);
+ ee31501 *dp, &lv = *(dp=new (buf) ee31501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee31501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee31501");
+ check_base_class_offset(lv, (cc501*)(dd1501*), ABISELECT(32,16), "ee31501");
+ check_base_class_offset(lv, (dd1501*), ABISELECT(16,8), "ee31501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31501.e");
+ test_class_info(&lv, &cd_ee31501);
+ dp->~ee31501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31501(Test_ee31501, "ee31501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31501C1Ev();
+extern void _ZN7ee31501D1Ev();
+Name_Map name_map_ee31501[] = {
+ NSPAIR(_ZN7ee31501C1Ev),
+ NSPAIR(_ZN7ee31501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd1501;
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+static Base_Class bases_ee31501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31501[];
+extern void _ZN7ee315013fooEv();
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee315013fooEv,_ZTv0_n12_N7ee315013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee315013fooEv,_ZThn24_N7ee315013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31501[0]),
+ (VTBL_ENTRY)&_ZN7ee315013fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31501[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315013fooEv,_ZTv0_n12_N7ee315013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31501[];
+static VTBL_ENTRY _tg__ZTV6dd1501__7ee31501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501__7ee31501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1501__7ee31501[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee31501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee31501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31501[] = {
+ {&(_ZTV7ee31501[5]), 5,19},
+ {&(_ZTV7ee31501[10]), 10,19},
+ {&(_ZTV7ee31501[14]), 14,19},
+ {&(_ZTV7ee31501[18]), 18,19},
+ {&(_tg__ZTV6dd1501__7ee31501[4]), 4,4},
+ {&(_tg__ZTV5cc501__6dd1501__7ee31501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1501__7ee31501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee31501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee31501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31501[];
+extern VTBL_ENTRY _ZTV7ee31501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31501[];
+static VTBL_ENTRY alt_thunk_names519[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315013fooEv,_ZTv0_n12_N7ee315013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee315013fooEv,_ZThn24_N7ee315013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31501 = { "ee31501", // class name
+ bases_ee31501, 4,
+ &(vtc_ee31501[0]), // expected_vtbl_contents
+ &(vtt_ee31501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31501),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names519,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41501 : dd1501 {
+ int e;
+ virtual void bar(); // _ZN7ee415013barEv
+ ~ee41501(); // tgen
+ ee41501(); // tgen
+};
+//SIG(1 ee41501) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41501 ::bar(){vfunc_called(this, "_ZN7ee415013barEv");}
+ee41501 ::~ee41501(){ note_dtor("ee41501", this);} // tgen
+ee41501 ::ee41501(){ note_ctor("ee41501", this);} // tgen
+
+static void Test_ee41501()
+{
+ extern Class_Descriptor cd_ee41501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41501, buf);
+ ee41501 *dp, &lv = *(dp=new (buf) ee41501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee41501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee41501");
+ check_base_class_offset(lv, (cc501*)(dd1501*), ABISELECT(16,12), "ee41501");
+ check_base_class_offset(lv, (dd1501*), 0, "ee41501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41501.e");
+ test_class_info(&lv, &cd_ee41501);
+ dp->~ee41501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41501(Test_ee41501, "ee41501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41501C1Ev();
+extern void _ZN7ee41501D1Ev();
+Name_Map name_map_ee41501[] = {
+ NSPAIR(_ZN7ee41501C1Ev),
+ NSPAIR(_ZN7ee41501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd1501;
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+static Base_Class bases_ee41501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41501[];
+extern void _ZN7ee415013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415013barEv,_ZTv0_n16_N7ee415013barEv)();
+extern void ABISELECT(_ZThn16_N7ee415013barEv,_ZThn12_N7ee415013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee41501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41501[0]),
+ (VTBL_ENTRY)&_ZN7ee415013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415013barEv,_ZTv0_n16_N7ee415013barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41501[];
+static VTBL_ENTRY _tg__ZTV6dd1501__7ee41501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501__7ee41501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1501__7ee41501[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee41501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee41501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41501[] = {
+ {&(_ZTV7ee41501[4]), 4,14},
+ {&(_tg__ZTV6dd1501__7ee41501[4]), 4,4},
+ {&(_tg__ZTV5cc501__6dd1501__7ee41501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1501__7ee41501[3]), 3,4},
+ {&(_ZTV7ee41501[9]), 9,14},
+ {&(_ZTV7ee41501[13]), 13,14},
+ {&(_tg__ZTV5cc501__7ee41501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee41501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41501[];
+extern VTBL_ENTRY _ZTV7ee41501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41501[];
+static VTBL_ENTRY alt_thunk_names520[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415013barEv,_ZTv0_n16_N7ee415013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415013barEv,_ZThn12_N7ee415013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41501 = { "ee41501", // class name
+ bases_ee41501, 4,
+ &(vtc_ee41501[0]), // expected_vtbl_contents
+ &(vtt_ee41501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names520,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51501 : virtual dd1501 {
+ int e;
+ virtual void bar(); // _ZN7ee515013barEv
+ ~ee51501(); // tgen
+ ee51501(); // tgen
+};
+//SIG(1 ee51501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51501 ::bar(){vfunc_called(this, "_ZN7ee515013barEv");}
+ee51501 ::~ee51501(){ note_dtor("ee51501", this);} // tgen
+ee51501 ::ee51501(){ note_ctor("ee51501", this);} // tgen
+
+static void Test_ee51501()
+{
+ extern Class_Descriptor cd_ee51501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51501, buf);
+ ee51501 *dp, &lv = *(dp=new (buf) ee51501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee51501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee51501");
+ check_base_class_offset(lv, (cc501*)(dd1501*), ABISELECT(32,16), "ee51501");
+ check_base_class_offset(lv, (dd1501*), ABISELECT(16,8), "ee51501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51501.e");
+ test_class_info(&lv, &cd_ee51501);
+ dp->~ee51501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51501(Test_ee51501, "ee51501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51501C1Ev();
+extern void _ZN7ee51501D1Ev();
+Name_Map name_map_ee51501[] = {
+ NSPAIR(_ZN7ee51501C1Ev),
+ NSPAIR(_ZN7ee51501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd1501;
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+static Base_Class bases_ee51501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51501[];
+extern void _ZN7ee515013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515013barEv,_ZTv0_n16_N7ee515013barEv)();
+extern void ABISELECT(_ZThn32_N7ee515013barEv,_ZThn16_N7ee515013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee51501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51501[0]),
+ (VTBL_ENTRY)&_ZN7ee515013barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51501[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515013barEv,_ZTv0_n16_N7ee515013barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51501[];
+static VTBL_ENTRY _tg__ZTV6dd1501__7ee51501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501__7ee51501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1501__7ee51501[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee51501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee51501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51501[] = {
+ {&(_ZTV7ee51501[5]), 5,19},
+ {&(_ZTV7ee51501[10]), 10,19},
+ {&(_ZTV7ee51501[14]), 14,19},
+ {&(_ZTV7ee51501[18]), 18,19},
+ {&(_tg__ZTV6dd1501__7ee51501[4]), 4,4},
+ {&(_tg__ZTV5cc501__6dd1501__7ee51501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1501__7ee51501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee51501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee51501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51501[];
+extern VTBL_ENTRY _ZTV7ee51501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51501[];
+static VTBL_ENTRY alt_thunk_names521[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515013barEv,_ZTv0_n16_N7ee515013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515013barEv,_ZThn16_N7ee515013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51501 = { "ee51501", // class name
+ bases_ee51501, 4,
+ &(vtc_ee51501[0]), // expected_vtbl_contents
+ &(vtt_ee51501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51501),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names521,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61501 : dd1501 {
+ int e;
+ virtual void foo(); // _ZN7ee615013fooEv
+ virtual void bar(); // _ZN7ee615013barEv
+ ~ee61501(); // tgen
+ ee61501(); // tgen
+};
+//SIG(1 ee61501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61501 ::foo(){vfunc_called(this, "_ZN7ee615013fooEv");}
+void ee61501 ::bar(){vfunc_called(this, "_ZN7ee615013barEv");}
+ee61501 ::~ee61501(){ note_dtor("ee61501", this);} // tgen
+ee61501 ::ee61501(){ note_ctor("ee61501", this);} // tgen
+
+static void Test_ee61501()
+{
+ extern Class_Descriptor cd_ee61501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61501, buf);
+ ee61501 *dp, &lv = *(dp=new (buf) ee61501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee61501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee61501");
+ check_base_class_offset(lv, (cc501*)(dd1501*), ABISELECT(16,12), "ee61501");
+ check_base_class_offset(lv, (dd1501*), 0, "ee61501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61501.e");
+ test_class_info(&lv, &cd_ee61501);
+ dp->~ee61501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61501(Test_ee61501, "ee61501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61501C1Ev();
+extern void _ZN7ee61501D1Ev();
+Name_Map name_map_ee61501[] = {
+ NSPAIR(_ZN7ee61501C1Ev),
+ NSPAIR(_ZN7ee61501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd1501;
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+static Base_Class bases_ee61501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61501[];
+extern void _ZN7ee615013fooEv();
+extern void _ZN7ee615013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615013barEv,_ZTv0_n16_N7ee615013barEv)();
+extern void ABISELECT(_ZThn16_N7ee615013barEv,_ZThn12_N7ee615013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615013fooEv,_ZTv0_n12_N7ee615013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee615013fooEv,_ZThn20_N7ee615013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61501[0]),
+ (VTBL_ENTRY)&_ZN7ee615013fooEv,
+ (VTBL_ENTRY)&_ZN7ee615013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615013barEv,_ZTv0_n16_N7ee615013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615013fooEv,_ZTv0_n12_N7ee615013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61501[];
+static VTBL_ENTRY _tg__ZTV6dd1501__7ee61501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501__7ee61501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1501__7ee61501[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee61501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee61501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61501[] = {
+ {&(_ZTV7ee61501[4]), 4,15},
+ {&(_tg__ZTV6dd1501__7ee61501[4]), 4,4},
+ {&(_tg__ZTV5cc501__6dd1501__7ee61501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1501__7ee61501[3]), 3,4},
+ {&(_ZTV7ee61501[10]), 10,15},
+ {&(_ZTV7ee61501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee61501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee61501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61501[];
+extern VTBL_ENTRY _ZTV7ee61501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61501[];
+static VTBL_ENTRY alt_thunk_names522[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615013fooEv,_ZTv0_n12_N7ee615013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615013fooEv,_ZThn20_N7ee615013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615013barEv,_ZTv0_n16_N7ee615013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615013barEv,_ZThn12_N7ee615013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61501 = { "ee61501", // class name
+ bases_ee61501, 4,
+ &(vtc_ee61501[0]), // expected_vtbl_contents
+ &(vtt_ee61501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names522,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71501 : virtual dd1501 {
+ int e;
+ virtual void foo(); // _ZN7ee715013fooEv
+ virtual void bar(); // _ZN7ee715013barEv
+ ~ee71501(); // tgen
+ ee71501(); // tgen
+};
+//SIG(1 ee71501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71501 ::foo(){vfunc_called(this, "_ZN7ee715013fooEv");}
+void ee71501 ::bar(){vfunc_called(this, "_ZN7ee715013barEv");}
+ee71501 ::~ee71501(){ note_dtor("ee71501", this);} // tgen
+ee71501 ::ee71501(){ note_ctor("ee71501", this);} // tgen
+
+static void Test_ee71501()
+{
+ extern Class_Descriptor cd_ee71501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71501, buf);
+ ee71501 *dp, &lv = *(dp=new (buf) ee71501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee71501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee71501");
+ check_base_class_offset(lv, (cc501*)(dd1501*), ABISELECT(32,16), "ee71501");
+ check_base_class_offset(lv, (dd1501*), ABISELECT(16,8), "ee71501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71501.e");
+ test_class_info(&lv, &cd_ee71501);
+ dp->~ee71501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71501(Test_ee71501, "ee71501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71501C1Ev();
+extern void _ZN7ee71501D1Ev();
+Name_Map name_map_ee71501[] = {
+ NSPAIR(_ZN7ee71501C1Ev),
+ NSPAIR(_ZN7ee71501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd1501;
+extern VTBL_ENTRY _ZTI6dd1501[];
+extern VTBL_ENTRY _ZTV6dd1501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1501[];
+static Base_Class bases_ee71501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1501, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71501[];
+extern void _ZN7ee715013fooEv();
+extern void _ZN7ee715013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715013barEv,_ZTv0_n16_N7ee715013barEv)();
+extern void ABISELECT(_ZThn32_N7ee715013barEv,_ZThn16_N7ee715013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715013fooEv,_ZTv0_n12_N7ee715013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee715013fooEv,_ZThn24_N7ee715013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71501[0]),
+ (VTBL_ENTRY)&_ZN7ee715013fooEv,
+ (VTBL_ENTRY)&_ZN7ee715013barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71501[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715013barEv,_ZTv0_n16_N7ee715013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715013fooEv,_ZTv0_n12_N7ee715013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71501[];
+static VTBL_ENTRY _tg__ZTV6dd1501__7ee71501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd1501__7ee71501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1501__7ee71501[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee71501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee71501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71501[] = {
+ {&(_ZTV7ee71501[5]), 5,20},
+ {&(_ZTV7ee71501[11]), 11,20},
+ {&(_ZTV7ee71501[15]), 15,20},
+ {&(_ZTV7ee71501[19]), 19,20},
+ {&(_tg__ZTV6dd1501__7ee71501[4]), 4,4},
+ {&(_tg__ZTV5cc501__6dd1501__7ee71501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd1501__7ee71501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee71501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee71501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71501[];
+extern VTBL_ENTRY _ZTV7ee71501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71501[];
+static VTBL_ENTRY alt_thunk_names523[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715013fooEv,_ZTv0_n12_N7ee715013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715013fooEv,_ZThn24_N7ee715013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715013barEv,_ZTv0_n16_N7ee715013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715013barEv,_ZThn16_N7ee715013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71501 = { "ee71501", // class name
+ bases_ee71501, 4,
+ &(vtc_ee71501[0]), // expected_vtbl_contents
+ &(vtt_ee71501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71501),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names523,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2501 : cc501 {
+ int d;
+ virtual void foo(); // _ZN6dd25013fooEv
+ ~dd2501(); // tgen
+ dd2501(); // tgen
+};
+//SIG(-1 dd2501) C1{ BC2{ VBC3{ BC4{ v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd2501 ::foo(){vfunc_called(this, "_ZN6dd25013fooEv");}
+dd2501 ::~dd2501(){ note_dtor("dd2501", this);} // tgen
+dd2501 ::dd2501(){ note_ctor("dd2501", this);} // tgen
+
+static void Test_dd2501()
+{
+ extern Class_Descriptor cd_dd2501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2501, buf);
+ dd2501 *dp, &lv = *(dp=new (buf) dd2501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd2501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(16,12), "dd2501");
+ check_base_class_offset(lv, (cc501*), 0, "dd2501");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2501.d");
+ test_class_info(&lv, &cd_dd2501);
+ dp->~dd2501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2501(Test_dd2501, "dd2501", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2501C1Ev();
+extern void _ZN6dd2501D1Ev();
+Name_Map name_map_dd2501[] = {
+ NSPAIR(_ZN6dd2501C1Ev),
+ NSPAIR(_ZN6dd2501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+static Base_Class bases_dd2501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd2501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__6dd2501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd2501[] = {
+ {&(_ZTV6dd2501[3]), 3,9},
+ {&(_tg__ZTV5cc501__6dd2501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__6dd2501[3]), 3,4},
+ {&(_ZTV6dd2501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static VTBL_ENTRY alt_thunk_names524[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2501 = { "dd2501", // class name
+ bases_dd2501, 3,
+ &(vtc_dd2501[0]), // expected_vtbl_contents
+ &(vtt_dd2501[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2501),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names524,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02501 : dd2501 {
+ int e;
+ ~ee02501(); // tgen
+ ee02501(); // tgen
+};
+//SIG(1 ee02501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02501 ::~ee02501(){ note_dtor("ee02501", this);} // tgen
+ee02501 ::ee02501(){ note_ctor("ee02501", this);} // tgen
+
+static void Test_ee02501()
+{
+ extern Class_Descriptor cd_ee02501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02501, buf);
+ ee02501 *dp, &lv = *(dp=new (buf) ee02501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee02501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd2501*), ABISELECT(24,16), "ee02501");
+ check_base_class_offset(lv, (cc501*)(dd2501*), 0, "ee02501");
+ check_base_class_offset(lv, (dd2501*), 0, "ee02501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02501.e");
+ test_class_info(&lv, &cd_ee02501);
+ dp->~ee02501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02501(Test_ee02501, "ee02501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02501C1Ev();
+extern void _ZN7ee02501D1Ev();
+Name_Map name_map_ee02501[] = {
+ NSPAIR(_ZN7ee02501C1Ev),
+ NSPAIR(_ZN7ee02501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd2501;
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static Base_Class bases_ee02501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2501__7ee02501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd2501__7ee02501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd2501__7ee02501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2501__7ee02501[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+static VTT_ENTRY vtt_ee02501[] = {
+ {&(_ZTV7ee02501[3]), 3,9},
+ {&(_tg__ZTV6dd2501__7ee02501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd2501__7ee02501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd2501__7ee02501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2501__7ee02501[3]), 3,4},
+ {&(_ZTV7ee02501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02501[];
+extern VTBL_ENTRY _ZTV7ee02501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02501[];
+static VTBL_ENTRY alt_thunk_names525[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02501 = { "ee02501", // class name
+ bases_ee02501, 4,
+ &(vtc_ee02501[0]), // expected_vtbl_contents
+ &(vtt_ee02501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names525,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12501 : virtual dd2501 {
+ int e;
+ ~ee12501(); // tgen
+ ee12501(); // tgen
+};
+//SIG(1 ee12501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12501 ::~ee12501(){ note_dtor("ee12501", this);} // tgen
+ee12501 ::ee12501(){ note_ctor("ee12501", this);} // tgen
+
+static void Test_ee12501()
+{
+ extern Class_Descriptor cd_ee12501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12501, buf);
+ ee12501 *dp, &lv = *(dp=new (buf) ee12501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee12501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd2501*), ABISELECT(32,20), "ee12501");
+ check_base_class_offset(lv, (cc501*)(dd2501*), ABISELECT(16,8), "ee12501");
+ check_base_class_offset(lv, (dd2501*), ABISELECT(16,8), "ee12501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12501.e");
+ test_class_info(&lv, &cd_ee12501);
+ dp->~ee12501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12501(Test_ee12501, "ee12501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12501C1Ev();
+extern void _ZN7ee12501D1Ev();
+Name_Map name_map_ee12501[] = {
+ NSPAIR(_ZN7ee12501C1Ev),
+ NSPAIR(_ZN7ee12501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd2501;
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static Base_Class bases_ee12501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2501, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12501[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2501__7ee12501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd2501__7ee12501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd2501__7ee12501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2501__7ee12501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+static VTT_ENTRY vtt_ee12501[] = {
+ {&(_ZTV7ee12501[4]), 4,15},
+ {&(_ZTV7ee12501[9]), 9,15},
+ {&(_ZTV7ee12501[14]), 14,15},
+ {&(_tg__ZTV6dd2501__7ee12501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd2501__7ee12501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd2501__7ee12501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2501__7ee12501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12501[];
+extern VTBL_ENTRY _ZTV7ee12501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12501[];
+static VTBL_ENTRY alt_thunk_names526[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12501 = { "ee12501", // class name
+ bases_ee12501, 4,
+ &(vtc_ee12501[0]), // expected_vtbl_contents
+ &(vtt_ee12501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names526,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22501 : dd2501 {
+ int e;
+ virtual void foo(); // _ZN7ee225013fooEv
+ ~ee22501(); // tgen
+ ee22501(); // tgen
+};
+//SIG(1 ee22501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22501 ::foo(){vfunc_called(this, "_ZN7ee225013fooEv");}
+ee22501 ::~ee22501(){ note_dtor("ee22501", this);} // tgen
+ee22501 ::ee22501(){ note_ctor("ee22501", this);} // tgen
+
+static void Test_ee22501()
+{
+ extern Class_Descriptor cd_ee22501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22501, buf);
+ ee22501 *dp, &lv = *(dp=new (buf) ee22501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee22501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd2501*), ABISELECT(24,16), "ee22501");
+ check_base_class_offset(lv, (cc501*)(dd2501*), 0, "ee22501");
+ check_base_class_offset(lv, (dd2501*), 0, "ee22501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22501.e");
+ test_class_info(&lv, &cd_ee22501);
+ dp->~ee22501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22501(Test_ee22501, "ee22501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22501C1Ev();
+extern void _ZN7ee22501D1Ev();
+Name_Map name_map_ee22501[] = {
+ NSPAIR(_ZN7ee22501C1Ev),
+ NSPAIR(_ZN7ee22501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd2501;
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static Base_Class bases_ee22501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN7ee225013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee225013fooEv,_ZTv0_n12_N7ee225013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee225013fooEv,_ZThn16_N7ee225013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN7ee225013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225013fooEv,_ZTv0_n12_N7ee225013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2501__7ee22501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd2501__7ee22501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd2501__7ee22501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2501__7ee22501[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+static VTT_ENTRY vtt_ee22501[] = {
+ {&(_ZTV7ee22501[3]), 3,9},
+ {&(_tg__ZTV6dd2501__7ee22501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd2501__7ee22501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd2501__7ee22501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2501__7ee22501[3]), 3,4},
+ {&(_ZTV7ee22501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22501[];
+extern VTBL_ENTRY _ZTV7ee22501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22501[];
+static VTBL_ENTRY alt_thunk_names527[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225013fooEv,_ZTv0_n12_N7ee225013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee225013fooEv,_ZThn16_N7ee225013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22501 = { "ee22501", // class name
+ bases_ee22501, 4,
+ &(vtc_ee22501[0]), // expected_vtbl_contents
+ &(vtt_ee22501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names527,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32501 : virtual dd2501 {
+ int e;
+ virtual void foo(); // _ZN7ee325013fooEv
+ ~ee32501(); // tgen
+ ee32501(); // tgen
+};
+//SIG(1 ee32501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32501 ::foo(){vfunc_called(this, "_ZN7ee325013fooEv");}
+ee32501 ::~ee32501(){ note_dtor("ee32501", this);} // tgen
+ee32501 ::ee32501(){ note_ctor("ee32501", this);} // tgen
+
+static void Test_ee32501()
+{
+ extern Class_Descriptor cd_ee32501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32501, buf);
+ ee32501 *dp, &lv = *(dp=new (buf) ee32501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee32501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd2501*), ABISELECT(32,20), "ee32501");
+ check_base_class_offset(lv, (cc501*)(dd2501*), ABISELECT(16,8), "ee32501");
+ check_base_class_offset(lv, (dd2501*), ABISELECT(16,8), "ee32501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32501.e");
+ test_class_info(&lv, &cd_ee32501);
+ dp->~ee32501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32501(Test_ee32501, "ee32501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32501C1Ev();
+extern void _ZN7ee32501D1Ev();
+Name_Map name_map_ee32501[] = {
+ NSPAIR(_ZN7ee32501C1Ev),
+ NSPAIR(_ZN7ee32501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd2501;
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static Base_Class bases_ee32501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32501[];
+extern void _ZN7ee325013fooEv();
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325013fooEv,_ZTv0_n20_N7ee325013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325013fooEv,_ZThn8_N7ee325013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325013fooEv,_ZTv0_n12_N7ee325013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee325013fooEv,_ZThn20_N7ee325013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32501[0]),
+ (VTBL_ENTRY)&_ZN7ee325013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325013fooEv,_ZTv0_n20_N7ee325013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325013fooEv,_ZTv0_n12_N7ee325013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2501__7ee32501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd2501__7ee32501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd2501__7ee32501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2501__7ee32501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+static VTT_ENTRY vtt_ee32501[] = {
+ {&(_ZTV7ee32501[4]), 4,16},
+ {&(_ZTV7ee32501[10]), 10,16},
+ {&(_ZTV7ee32501[15]), 15,16},
+ {&(_tg__ZTV6dd2501__7ee32501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd2501__7ee32501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd2501__7ee32501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2501__7ee32501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32501[];
+extern VTBL_ENTRY _ZTV7ee32501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32501[];
+static VTBL_ENTRY alt_thunk_names528[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325013fooEv,_ZTv0_n12_N7ee325013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee325013fooEv,_ZThn20_N7ee325013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325013fooEv,_ZTv0_n20_N7ee325013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325013fooEv,_ZThn8_N7ee325013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32501 = { "ee32501", // class name
+ bases_ee32501, 4,
+ &(vtc_ee32501[0]), // expected_vtbl_contents
+ &(vtt_ee32501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32501),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names528,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42501 : dd2501 {
+ int e;
+ virtual void bar(); // _ZN7ee425013barEv
+ ~ee42501(); // tgen
+ ee42501(); // tgen
+};
+//SIG(1 ee42501) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42501 ::bar(){vfunc_called(this, "_ZN7ee425013barEv");}
+ee42501 ::~ee42501(){ note_dtor("ee42501", this);} // tgen
+ee42501 ::ee42501(){ note_ctor("ee42501", this);} // tgen
+
+static void Test_ee42501()
+{
+ extern Class_Descriptor cd_ee42501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42501, buf);
+ ee42501 *dp, &lv = *(dp=new (buf) ee42501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee42501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd2501*), ABISELECT(24,16), "ee42501");
+ check_base_class_offset(lv, (cc501*)(dd2501*), 0, "ee42501");
+ check_base_class_offset(lv, (dd2501*), 0, "ee42501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42501.e");
+ test_class_info(&lv, &cd_ee42501);
+ dp->~ee42501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42501(Test_ee42501, "ee42501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42501C1Ev();
+extern void _ZN7ee42501D1Ev();
+Name_Map name_map_ee42501[] = {
+ NSPAIR(_ZN7ee42501C1Ev),
+ NSPAIR(_ZN7ee42501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd2501;
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static Base_Class bases_ee42501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42501[];
+extern void _ZN7ee425013barEv();
+extern void _ZN6dd25013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42501[0]),
+ (VTBL_ENTRY)&_ZN7ee425013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2501__7ee42501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd2501__7ee42501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd2501__7ee42501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2501__7ee42501[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+static VTT_ENTRY vtt_ee42501[] = {
+ {&(_ZTV7ee42501[3]), 3,9},
+ {&(_tg__ZTV6dd2501__7ee42501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd2501__7ee42501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd2501__7ee42501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2501__7ee42501[3]), 3,4},
+ {&(_ZTV7ee42501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42501[];
+extern VTBL_ENTRY _ZTV7ee42501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42501[];
+static VTBL_ENTRY alt_thunk_names529[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42501 = { "ee42501", // class name
+ bases_ee42501, 4,
+ &(vtc_ee42501[0]), // expected_vtbl_contents
+ &(vtt_ee42501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names529,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52501 : virtual dd2501 {
+ int e;
+ virtual void bar(); // _ZN7ee525013barEv
+ ~ee52501(); // tgen
+ ee52501(); // tgen
+};
+//SIG(1 ee52501) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52501 ::bar(){vfunc_called(this, "_ZN7ee525013barEv");}
+ee52501 ::~ee52501(){ note_dtor("ee52501", this);} // tgen
+ee52501 ::ee52501(){ note_ctor("ee52501", this);} // tgen
+
+static void Test_ee52501()
+{
+ extern Class_Descriptor cd_ee52501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52501, buf);
+ ee52501 *dp, &lv = *(dp=new (buf) ee52501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee52501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd2501*), ABISELECT(32,20), "ee52501");
+ check_base_class_offset(lv, (cc501*)(dd2501*), ABISELECT(16,8), "ee52501");
+ check_base_class_offset(lv, (dd2501*), ABISELECT(16,8), "ee52501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52501.e");
+ test_class_info(&lv, &cd_ee52501);
+ dp->~ee52501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52501(Test_ee52501, "ee52501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52501C1Ev();
+extern void _ZN7ee52501D1Ev();
+Name_Map name_map_ee52501[] = {
+ NSPAIR(_ZN7ee52501C1Ev),
+ NSPAIR(_ZN7ee52501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd2501;
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static Base_Class bases_ee52501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52501[];
+extern void _ZN7ee525013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525013barEv,_ZTv0_n16_N7ee525013barEv)();
+extern void ABISELECT(_ZThn16_N7ee525013barEv,_ZThn8_N7ee525013barEv)() __attribute__((weak));
+extern void _ZN6dd25013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52501[0]),
+ (VTBL_ENTRY)&_ZN7ee525013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525013barEv,_ZTv0_n16_N7ee525013barEv),
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2501__7ee52501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd2501__7ee52501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd2501__7ee52501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2501__7ee52501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+static VTT_ENTRY vtt_ee52501[] = {
+ {&(_ZTV7ee52501[4]), 4,16},
+ {&(_ZTV7ee52501[10]), 10,16},
+ {&(_ZTV7ee52501[15]), 15,16},
+ {&(_tg__ZTV6dd2501__7ee52501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd2501__7ee52501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd2501__7ee52501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2501__7ee52501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52501[];
+extern VTBL_ENTRY _ZTV7ee52501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52501[];
+static VTBL_ENTRY alt_thunk_names530[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525013barEv,_ZTv0_n16_N7ee525013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525013barEv,_ZThn8_N7ee525013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52501 = { "ee52501", // class name
+ bases_ee52501, 4,
+ &(vtc_ee52501[0]), // expected_vtbl_contents
+ &(vtt_ee52501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52501),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names530,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62501 : dd2501 {
+ int e;
+ virtual void foo(); // _ZN7ee625013fooEv
+ virtual void bar(); // _ZN7ee625013barEv
+ ~ee62501(); // tgen
+ ee62501(); // tgen
+};
+//SIG(1 ee62501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62501 ::foo(){vfunc_called(this, "_ZN7ee625013fooEv");}
+void ee62501 ::bar(){vfunc_called(this, "_ZN7ee625013barEv");}
+ee62501 ::~ee62501(){ note_dtor("ee62501", this);} // tgen
+ee62501 ::ee62501(){ note_ctor("ee62501", this);} // tgen
+
+static void Test_ee62501()
+{
+ extern Class_Descriptor cd_ee62501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62501, buf);
+ ee62501 *dp, &lv = *(dp=new (buf) ee62501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee62501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd2501*), ABISELECT(24,16), "ee62501");
+ check_base_class_offset(lv, (cc501*)(dd2501*), 0, "ee62501");
+ check_base_class_offset(lv, (dd2501*), 0, "ee62501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62501.e");
+ test_class_info(&lv, &cd_ee62501);
+ dp->~ee62501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62501(Test_ee62501, "ee62501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62501C1Ev();
+extern void _ZN7ee62501D1Ev();
+Name_Map name_map_ee62501[] = {
+ NSPAIR(_ZN7ee62501C1Ev),
+ NSPAIR(_ZN7ee62501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd2501;
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static Base_Class bases_ee62501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62501[];
+extern void _ZN7ee625013barEv();
+extern void _ZN7ee625013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee625013fooEv,_ZTv0_n12_N7ee625013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee625013fooEv,_ZThn16_N7ee625013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62501[0]),
+ (VTBL_ENTRY)&_ZN7ee625013barEv,
+ (VTBL_ENTRY)&_ZN7ee625013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625013fooEv,_ZTv0_n12_N7ee625013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2501__7ee62501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd2501__7ee62501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd2501__7ee62501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2501__7ee62501[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+static VTT_ENTRY vtt_ee62501[] = {
+ {&(_ZTV7ee62501[3]), 3,9},
+ {&(_tg__ZTV6dd2501__7ee62501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd2501__7ee62501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd2501__7ee62501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2501__7ee62501[3]), 3,4},
+ {&(_ZTV7ee62501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62501[];
+extern VTBL_ENTRY _ZTV7ee62501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62501[];
+static VTBL_ENTRY alt_thunk_names531[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25013fooEv,_ZThn16_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625013fooEv,_ZTv0_n12_N7ee625013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625013fooEv,_ZThn16_N7ee625013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62501 = { "ee62501", // class name
+ bases_ee62501, 4,
+ &(vtc_ee62501[0]), // expected_vtbl_contents
+ &(vtt_ee62501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names531,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72501 : virtual dd2501 {
+ int e;
+ virtual void foo(); // _ZN7ee725013fooEv
+ virtual void bar(); // _ZN7ee725013barEv
+ ~ee72501(); // tgen
+ ee72501(); // tgen
+};
+//SIG(1 ee72501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72501 ::foo(){vfunc_called(this, "_ZN7ee725013fooEv");}
+void ee72501 ::bar(){vfunc_called(this, "_ZN7ee725013barEv");}
+ee72501 ::~ee72501(){ note_dtor("ee72501", this);} // tgen
+ee72501 ::ee72501(){ note_ctor("ee72501", this);} // tgen
+
+static void Test_ee72501()
+{
+ extern Class_Descriptor cd_ee72501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72501, buf);
+ ee72501 *dp, &lv = *(dp=new (buf) ee72501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee72501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd2501*), ABISELECT(32,20), "ee72501");
+ check_base_class_offset(lv, (cc501*)(dd2501*), ABISELECT(16,8), "ee72501");
+ check_base_class_offset(lv, (dd2501*), ABISELECT(16,8), "ee72501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72501.e");
+ test_class_info(&lv, &cd_ee72501);
+ dp->~ee72501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72501(Test_ee72501, "ee72501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72501C1Ev();
+extern void _ZN7ee72501D1Ev();
+Name_Map name_map_ee72501[] = {
+ NSPAIR(_ZN7ee72501C1Ev),
+ NSPAIR(_ZN7ee72501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd2501;
+extern VTBL_ENTRY _ZTI6dd2501[];
+extern VTBL_ENTRY _ZTV6dd2501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2501[];
+static Base_Class bases_ee72501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72501[];
+extern void _ZN7ee725013fooEv();
+extern void _ZN7ee725013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725013barEv,_ZTv0_n16_N7ee725013barEv)();
+extern void ABISELECT(_ZThn16_N7ee725013barEv,_ZThn8_N7ee725013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725013fooEv,_ZTv0_n20_N7ee725013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725013fooEv,_ZThn8_N7ee725013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725013fooEv,_ZTv0_n12_N7ee725013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee725013fooEv,_ZThn20_N7ee725013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72501[0]),
+ (VTBL_ENTRY)&_ZN7ee725013fooEv,
+ (VTBL_ENTRY)&_ZN7ee725013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725013barEv,_ZTv0_n16_N7ee725013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725013fooEv,_ZTv0_n20_N7ee725013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725013fooEv,_ZTv0_n12_N7ee725013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72501[];
+extern void _ZN5cc5013barEv();
+extern void _ZN6dd25013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2501__7ee72501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ (VTBL_ENTRY)&_ZN6dd25013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd2501__7ee72501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd2501__7ee72501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2501__7ee72501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv),
+};
+static VTT_ENTRY vtt_ee72501[] = {
+ {&(_ZTV7ee72501[4]), 4,17},
+ {&(_ZTV7ee72501[11]), 11,17},
+ {&(_ZTV7ee72501[16]), 16,17},
+ {&(_tg__ZTV6dd2501__7ee72501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd2501__7ee72501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd2501__7ee72501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2501__7ee72501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72501[];
+extern VTBL_ENTRY _ZTV7ee72501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72501[];
+static VTBL_ENTRY alt_thunk_names532[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25013fooEv,_ZTv0_n12_N6dd25013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25013fooEv,_ZThn12_N6dd25013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725013fooEv,_ZTv0_n12_N7ee725013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725013fooEv,_ZThn20_N7ee725013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725013fooEv,_ZTv0_n20_N7ee725013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725013fooEv,_ZThn8_N7ee725013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725013barEv,_ZTv0_n16_N7ee725013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725013barEv,_ZThn8_N7ee725013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72501 = { "ee72501", // class name
+ bases_ee72501, 4,
+ &(vtc_ee72501[0]), // expected_vtbl_contents
+ &(vtt_ee72501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72501),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names532,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3501 : virtual cc501 {
+ int d;
+ virtual void foo(); // _ZN6dd35013fooEv
+ ~dd3501(); // tgen
+ dd3501(); // tgen
+};
+//SIG(-1 dd3501) C1{ VBC2{ VBC3{ BC4{ v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd3501 ::foo(){vfunc_called(this, "_ZN6dd35013fooEv");}
+dd3501 ::~dd3501(){ note_dtor("dd3501", this);} // tgen
+dd3501 ::dd3501(){ note_ctor("dd3501", this);} // tgen
+
+static void Test_dd3501()
+{
+ extern Class_Descriptor cd_dd3501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3501, buf);
+ dd3501 *dp, &lv = *(dp=new (buf) dd3501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd3501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,16), "dd3501");
+ check_base_class_offset(lv, (cc501*), ABISELECT(16,8), "dd3501");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3501.d");
+ test_class_info(&lv, &cd_dd3501);
+ dp->~dd3501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3501(Test_dd3501, "dd3501", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3501C1Ev();
+extern void _ZN6dd3501D1Ev();
+Name_Map name_map_dd3501[] = {
+ NSPAIR(_ZN6dd3501C1Ev),
+ NSPAIR(_ZN6dd3501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+static Base_Class bases_dd3501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 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 _ZTI6dd3501[];
+extern void _ZN6dd35013fooEv();
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__6dd3501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd3501[] = {
+ {&(_ZTV6dd3501[4]), 4,14},
+ {&(_ZTV6dd3501[9]), 9,14},
+ {&(_ZTV6dd3501[13]), 13,14},
+ {&(_tg__ZTV5cc501__6dd3501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__6dd3501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static VTBL_ENTRY alt_thunk_names533[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3501 = { "dd3501", // class name
+ bases_dd3501, 3,
+ &(vtc_dd3501[0]), // expected_vtbl_contents
+ &(vtt_dd3501[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3501),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names533,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03501 : dd3501 {
+ int e;
+ ~ee03501(); // tgen
+ ee03501(); // tgen
+};
+//SIG(1 ee03501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03501 ::~ee03501(){ note_dtor("ee03501", this);} // tgen
+ee03501 ::ee03501(){ note_ctor("ee03501", this);} // tgen
+
+static void Test_ee03501()
+{
+ extern Class_Descriptor cd_ee03501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03501, buf);
+ ee03501 *dp, &lv = *(dp=new (buf) ee03501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee03501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee03501");
+ check_base_class_offset(lv, (cc501*)(dd3501*), ABISELECT(16,12), "ee03501");
+ check_base_class_offset(lv, (dd3501*), 0, "ee03501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03501.e");
+ test_class_info(&lv, &cd_ee03501);
+ dp->~ee03501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03501(Test_ee03501, "ee03501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03501C1Ev();
+extern void _ZN7ee03501D1Ev();
+Name_Map name_map_ee03501[] = {
+ NSPAIR(_ZN7ee03501C1Ev),
+ NSPAIR(_ZN7ee03501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd3501;
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static Base_Class bases_ee03501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03501[];
+extern void _ZN6dd35013fooEv();
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03501[];
+extern void _ZN6dd35013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3501__7ee03501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501__7ee03501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3501__7ee03501[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee03501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee03501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee03501[] = {
+ {&(_ZTV7ee03501[4]), 4,14},
+ {&(_tg__ZTV6dd3501__7ee03501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd3501__7ee03501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3501__7ee03501[3]), 3,4},
+ {&(_ZTV7ee03501[9]), 9,14},
+ {&(_ZTV7ee03501[13]), 13,14},
+ {&(_tg__ZTV5cc501__7ee03501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee03501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03501[];
+extern VTBL_ENTRY _ZTV7ee03501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03501[];
+static VTBL_ENTRY alt_thunk_names534[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03501 = { "ee03501", // class name
+ bases_ee03501, 4,
+ &(vtc_ee03501[0]), // expected_vtbl_contents
+ &(vtt_ee03501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names534,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13501 : virtual dd3501 {
+ int e;
+ ~ee13501(); // tgen
+ ee13501(); // tgen
+};
+//SIG(1 ee13501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13501 ::~ee13501(){ note_dtor("ee13501", this);} // tgen
+ee13501 ::ee13501(){ note_ctor("ee13501", this);} // tgen
+
+static void Test_ee13501()
+{
+ extern Class_Descriptor cd_ee13501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13501, buf);
+ ee13501 *dp, &lv = *(dp=new (buf) ee13501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee13501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee13501");
+ check_base_class_offset(lv, (cc501*)(dd3501*), ABISELECT(32,16), "ee13501");
+ check_base_class_offset(lv, (dd3501*), ABISELECT(16,8), "ee13501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13501.e");
+ test_class_info(&lv, &cd_ee13501);
+ dp->~ee13501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13501(Test_ee13501, "ee13501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13501C1Ev();
+extern void _ZN7ee13501D1Ev();
+Name_Map name_map_ee13501[] = {
+ NSPAIR(_ZN7ee13501C1Ev),
+ NSPAIR(_ZN7ee13501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd3501;
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static Base_Class bases_ee13501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13501[];
+extern void _ZN6dd35013fooEv();
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13501[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13501[];
+extern void _ZN6dd35013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3501__7ee13501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501__7ee13501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3501__7ee13501[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee13501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee13501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee13501[] = {
+ {&(_ZTV7ee13501[5]), 5,20},
+ {&(_ZTV7ee13501[10]), 10,20},
+ {&(_ZTV7ee13501[15]), 15,20},
+ {&(_ZTV7ee13501[19]), 19,20},
+ {&(_tg__ZTV6dd3501__7ee13501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd3501__7ee13501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3501__7ee13501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee13501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee13501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13501[];
+extern VTBL_ENTRY _ZTV7ee13501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13501[];
+static VTBL_ENTRY alt_thunk_names535[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13501 = { "ee13501", // class name
+ bases_ee13501, 4,
+ &(vtc_ee13501[0]), // expected_vtbl_contents
+ &(vtt_ee13501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13501),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names535,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23501 : dd3501 {
+ int e;
+ virtual void foo(); // _ZN7ee235013fooEv
+ ~ee23501(); // tgen
+ ee23501(); // tgen
+};
+//SIG(1 ee23501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23501 ::foo(){vfunc_called(this, "_ZN7ee235013fooEv");}
+ee23501 ::~ee23501(){ note_dtor("ee23501", this);} // tgen
+ee23501 ::ee23501(){ note_ctor("ee23501", this);} // tgen
+
+static void Test_ee23501()
+{
+ extern Class_Descriptor cd_ee23501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23501, buf);
+ ee23501 *dp, &lv = *(dp=new (buf) ee23501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee23501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee23501");
+ check_base_class_offset(lv, (cc501*)(dd3501*), ABISELECT(16,12), "ee23501");
+ check_base_class_offset(lv, (dd3501*), 0, "ee23501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23501.e");
+ test_class_info(&lv, &cd_ee23501);
+ dp->~ee23501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23501(Test_ee23501, "ee23501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23501C1Ev();
+extern void _ZN7ee23501D1Ev();
+Name_Map name_map_ee23501[] = {
+ NSPAIR(_ZN7ee23501C1Ev),
+ NSPAIR(_ZN7ee23501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd3501;
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static Base_Class bases_ee23501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23501[];
+extern void _ZN7ee235013fooEv();
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee235013fooEv,_ZTv0_n12_N7ee235013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee235013fooEv,_ZThn20_N7ee235013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23501[0]),
+ (VTBL_ENTRY)&_ZN7ee235013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235013fooEv,_ZTv0_n12_N7ee235013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23501[];
+extern void _ZN6dd35013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3501__7ee23501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501__7ee23501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3501__7ee23501[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee23501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee23501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee23501[] = {
+ {&(_ZTV7ee23501[4]), 4,14},
+ {&(_tg__ZTV6dd3501__7ee23501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd3501__7ee23501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3501__7ee23501[3]), 3,4},
+ {&(_ZTV7ee23501[9]), 9,14},
+ {&(_ZTV7ee23501[13]), 13,14},
+ {&(_tg__ZTV5cc501__7ee23501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee23501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23501[];
+extern VTBL_ENTRY _ZTV7ee23501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23501[];
+static VTBL_ENTRY alt_thunk_names536[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235013fooEv,_ZTv0_n12_N7ee235013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee235013fooEv,_ZThn20_N7ee235013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23501 = { "ee23501", // class name
+ bases_ee23501, 4,
+ &(vtc_ee23501[0]), // expected_vtbl_contents
+ &(vtt_ee23501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names536,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33501 : virtual dd3501 {
+ int e;
+ virtual void foo(); // _ZN7ee335013fooEv
+ ~ee33501(); // tgen
+ ee33501(); // tgen
+};
+//SIG(1 ee33501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33501 ::foo(){vfunc_called(this, "_ZN7ee335013fooEv");}
+ee33501 ::~ee33501(){ note_dtor("ee33501", this);} // tgen
+ee33501 ::ee33501(){ note_ctor("ee33501", this);} // tgen
+
+static void Test_ee33501()
+{
+ extern Class_Descriptor cd_ee33501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33501, buf);
+ ee33501 *dp, &lv = *(dp=new (buf) ee33501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee33501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee33501");
+ check_base_class_offset(lv, (cc501*)(dd3501*), ABISELECT(32,16), "ee33501");
+ check_base_class_offset(lv, (dd3501*), ABISELECT(16,8), "ee33501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33501.e");
+ test_class_info(&lv, &cd_ee33501);
+ dp->~ee33501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33501(Test_ee33501, "ee33501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33501C1Ev();
+extern void _ZN7ee33501D1Ev();
+Name_Map name_map_ee33501[] = {
+ NSPAIR(_ZN7ee33501C1Ev),
+ NSPAIR(_ZN7ee33501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd3501;
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static Base_Class bases_ee33501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33501[];
+extern void _ZN7ee335013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335013fooEv,_ZTv0_n20_N7ee335013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335013fooEv,_ZThn8_N7ee335013fooEv)() __attribute__((weak));
+extern void _ZN5cc5013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee335013fooEv,_ZTv0_n12_N7ee335013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee335013fooEv,_ZThn24_N7ee335013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33501[0]),
+ (VTBL_ENTRY)&_ZN7ee335013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335013fooEv,_ZTv0_n20_N7ee335013fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335013fooEv,_ZTv0_n12_N7ee335013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33501[];
+extern void _ZN6dd35013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3501__7ee33501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501__7ee33501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3501__7ee33501[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee33501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee33501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee33501[] = {
+ {&(_ZTV7ee33501[5]), 5,21},
+ {&(_ZTV7ee33501[11]), 11,21},
+ {&(_ZTV7ee33501[16]), 16,21},
+ {&(_ZTV7ee33501[20]), 20,21},
+ {&(_tg__ZTV6dd3501__7ee33501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd3501__7ee33501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3501__7ee33501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee33501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee33501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33501[];
+extern VTBL_ENTRY _ZTV7ee33501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33501[];
+static VTBL_ENTRY alt_thunk_names537[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335013fooEv,_ZTv0_n12_N7ee335013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee335013fooEv,_ZThn24_N7ee335013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335013fooEv,_ZTv0_n20_N7ee335013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335013fooEv,_ZThn8_N7ee335013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33501 = { "ee33501", // class name
+ bases_ee33501, 4,
+ &(vtc_ee33501[0]), // expected_vtbl_contents
+ &(vtt_ee33501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33501),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names537,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43501 : dd3501 {
+ int e;
+ virtual void bar(); // _ZN7ee435013barEv
+ ~ee43501(); // tgen
+ ee43501(); // tgen
+};
+//SIG(1 ee43501) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43501 ::bar(){vfunc_called(this, "_ZN7ee435013barEv");}
+ee43501 ::~ee43501(){ note_dtor("ee43501", this);} // tgen
+ee43501 ::ee43501(){ note_ctor("ee43501", this);} // tgen
+
+static void Test_ee43501()
+{
+ extern Class_Descriptor cd_ee43501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43501, buf);
+ ee43501 *dp, &lv = *(dp=new (buf) ee43501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee43501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee43501");
+ check_base_class_offset(lv, (cc501*)(dd3501*), ABISELECT(16,12), "ee43501");
+ check_base_class_offset(lv, (dd3501*), 0, "ee43501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43501.e");
+ test_class_info(&lv, &cd_ee43501);
+ dp->~ee43501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43501(Test_ee43501, "ee43501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43501C1Ev();
+extern void _ZN7ee43501D1Ev();
+Name_Map name_map_ee43501[] = {
+ NSPAIR(_ZN7ee43501C1Ev),
+ NSPAIR(_ZN7ee43501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd3501;
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static Base_Class bases_ee43501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43501[];
+extern void _ZN6dd35013fooEv();
+extern void _ZN7ee435013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435013barEv,_ZTv0_n16_N7ee435013barEv)();
+extern void ABISELECT(_ZThn16_N7ee435013barEv,_ZThn12_N7ee435013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+ (VTBL_ENTRY)&_ZN7ee435013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435013barEv,_ZTv0_n16_N7ee435013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43501[];
+extern void _ZN6dd35013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3501__7ee43501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501__7ee43501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3501__7ee43501[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee43501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee43501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee43501[] = {
+ {&(_ZTV7ee43501[4]), 4,15},
+ {&(_tg__ZTV6dd3501__7ee43501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd3501__7ee43501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3501__7ee43501[3]), 3,4},
+ {&(_ZTV7ee43501[10]), 10,15},
+ {&(_ZTV7ee43501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee43501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee43501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43501[];
+extern VTBL_ENTRY _ZTV7ee43501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43501[];
+static VTBL_ENTRY alt_thunk_names538[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435013barEv,_ZTv0_n16_N7ee435013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435013barEv,_ZThn12_N7ee435013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43501 = { "ee43501", // class name
+ bases_ee43501, 4,
+ &(vtc_ee43501[0]), // expected_vtbl_contents
+ &(vtt_ee43501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names538,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53501 : virtual dd3501 {
+ int e;
+ virtual void bar(); // _ZN7ee535013barEv
+ ~ee53501(); // tgen
+ ee53501(); // tgen
+};
+//SIG(1 ee53501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53501 ::bar(){vfunc_called(this, "_ZN7ee535013barEv");}
+ee53501 ::~ee53501(){ note_dtor("ee53501", this);} // tgen
+ee53501 ::ee53501(){ note_ctor("ee53501", this);} // tgen
+
+static void Test_ee53501()
+{
+ extern Class_Descriptor cd_ee53501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53501, buf);
+ ee53501 *dp, &lv = *(dp=new (buf) ee53501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee53501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee53501");
+ check_base_class_offset(lv, (cc501*)(dd3501*), ABISELECT(32,16), "ee53501");
+ check_base_class_offset(lv, (dd3501*), ABISELECT(16,8), "ee53501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53501.e");
+ test_class_info(&lv, &cd_ee53501);
+ dp->~ee53501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53501(Test_ee53501, "ee53501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53501C1Ev();
+extern void _ZN7ee53501D1Ev();
+Name_Map name_map_ee53501[] = {
+ NSPAIR(_ZN7ee53501C1Ev),
+ NSPAIR(_ZN7ee53501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd3501;
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static Base_Class bases_ee53501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53501[];
+extern void _ZN7ee535013barEv();
+extern void _ZN6dd35013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535013barEv,_ZTv0_n16_N7ee535013barEv)();
+extern void ABISELECT(_ZThn32_N7ee535013barEv,_ZThn16_N7ee535013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53501[0]),
+ (VTBL_ENTRY)&_ZN7ee535013barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535013barEv,_ZTv0_n16_N7ee535013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53501[];
+extern void _ZN6dd35013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3501__7ee53501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501__7ee53501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3501__7ee53501[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee53501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee53501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee53501[] = {
+ {&(_ZTV7ee53501[5]), 5,21},
+ {&(_ZTV7ee53501[11]), 11,21},
+ {&(_ZTV7ee53501[16]), 16,21},
+ {&(_ZTV7ee53501[20]), 20,21},
+ {&(_tg__ZTV6dd3501__7ee53501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd3501__7ee53501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3501__7ee53501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee53501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee53501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53501[];
+extern VTBL_ENTRY _ZTV7ee53501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53501[];
+static VTBL_ENTRY alt_thunk_names539[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535013barEv,_ZTv0_n16_N7ee535013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535013barEv,_ZThn16_N7ee535013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53501 = { "ee53501", // class name
+ bases_ee53501, 4,
+ &(vtc_ee53501[0]), // expected_vtbl_contents
+ &(vtt_ee53501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53501),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names539,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63501 : dd3501 {
+ int e;
+ virtual void foo(); // _ZN7ee635013fooEv
+ virtual void bar(); // _ZN7ee635013barEv
+ ~ee63501(); // tgen
+ ee63501(); // tgen
+};
+//SIG(1 ee63501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63501 ::foo(){vfunc_called(this, "_ZN7ee635013fooEv");}
+void ee63501 ::bar(){vfunc_called(this, "_ZN7ee635013barEv");}
+ee63501 ::~ee63501(){ note_dtor("ee63501", this);} // tgen
+ee63501 ::ee63501(){ note_ctor("ee63501", this);} // tgen
+
+static void Test_ee63501()
+{
+ extern Class_Descriptor cd_ee63501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63501, buf);
+ ee63501 *dp, &lv = *(dp=new (buf) ee63501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee63501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee63501");
+ check_base_class_offset(lv, (cc501*)(dd3501*), ABISELECT(16,12), "ee63501");
+ check_base_class_offset(lv, (dd3501*), 0, "ee63501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63501.e");
+ test_class_info(&lv, &cd_ee63501);
+ dp->~ee63501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63501(Test_ee63501, "ee63501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63501C1Ev();
+extern void _ZN7ee63501D1Ev();
+Name_Map name_map_ee63501[] = {
+ NSPAIR(_ZN7ee63501C1Ev),
+ NSPAIR(_ZN7ee63501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd3501;
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static Base_Class bases_ee63501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63501[];
+extern void _ZN7ee635013fooEv();
+extern void _ZN7ee635013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635013barEv,_ZTv0_n16_N7ee635013barEv)();
+extern void ABISELECT(_ZThn16_N7ee635013barEv,_ZThn12_N7ee635013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635013fooEv,_ZTv0_n12_N7ee635013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee635013fooEv,_ZThn20_N7ee635013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63501[0]),
+ (VTBL_ENTRY)&_ZN7ee635013fooEv,
+ (VTBL_ENTRY)&_ZN7ee635013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635013barEv,_ZTv0_n16_N7ee635013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635013fooEv,_ZTv0_n12_N7ee635013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63501[];
+extern void _ZN6dd35013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3501__7ee63501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501__7ee63501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3501__7ee63501[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee63501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee63501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee63501[] = {
+ {&(_ZTV7ee63501[4]), 4,15},
+ {&(_tg__ZTV6dd3501__7ee63501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd3501__7ee63501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3501__7ee63501[3]), 3,4},
+ {&(_ZTV7ee63501[10]), 10,15},
+ {&(_ZTV7ee63501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee63501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee63501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63501[];
+extern VTBL_ENTRY _ZTV7ee63501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63501[];
+static VTBL_ENTRY alt_thunk_names540[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn20_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635013fooEv,_ZTv0_n12_N7ee635013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635013fooEv,_ZThn20_N7ee635013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635013barEv,_ZTv0_n16_N7ee635013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635013barEv,_ZThn12_N7ee635013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63501 = { "ee63501", // class name
+ bases_ee63501, 4,
+ &(vtc_ee63501[0]), // expected_vtbl_contents
+ &(vtt_ee63501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names540,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73501 : virtual dd3501 {
+ int e;
+ virtual void foo(); // _ZN7ee735013fooEv
+ virtual void bar(); // _ZN7ee735013barEv
+ ~ee73501(); // tgen
+ ee73501(); // tgen
+};
+//SIG(1 ee73501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73501 ::foo(){vfunc_called(this, "_ZN7ee735013fooEv");}
+void ee73501 ::bar(){vfunc_called(this, "_ZN7ee735013barEv");}
+ee73501 ::~ee73501(){ note_dtor("ee73501", this);} // tgen
+ee73501 ::ee73501(){ note_ctor("ee73501", this);} // tgen
+
+static void Test_ee73501()
+{
+ extern Class_Descriptor cd_ee73501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73501, buf);
+ ee73501 *dp, &lv = *(dp=new (buf) ee73501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee73501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee73501");
+ check_base_class_offset(lv, (cc501*)(dd3501*), ABISELECT(32,16), "ee73501");
+ check_base_class_offset(lv, (dd3501*), ABISELECT(16,8), "ee73501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73501.e");
+ test_class_info(&lv, &cd_ee73501);
+ dp->~ee73501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73501(Test_ee73501, "ee73501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73501C1Ev();
+extern void _ZN7ee73501D1Ev();
+Name_Map name_map_ee73501[] = {
+ NSPAIR(_ZN7ee73501C1Ev),
+ NSPAIR(_ZN7ee73501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd3501;
+extern VTBL_ENTRY _ZTI6dd3501[];
+extern VTBL_ENTRY _ZTV6dd3501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3501[];
+static Base_Class bases_ee73501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3501, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73501[];
+extern void _ZN7ee735013fooEv();
+extern void _ZN7ee735013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735013fooEv,_ZTv0_n20_N7ee735013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735013fooEv,_ZThn8_N7ee735013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735013barEv,_ZTv0_n16_N7ee735013barEv)();
+extern void ABISELECT(_ZThn32_N7ee735013barEv,_ZThn16_N7ee735013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735013fooEv,_ZTv0_n12_N7ee735013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee735013fooEv,_ZThn24_N7ee735013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73501[0]),
+ (VTBL_ENTRY)&_ZN7ee735013fooEv,
+ (VTBL_ENTRY)&_ZN7ee735013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735013fooEv,_ZTv0_n20_N7ee735013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735013barEv,_ZTv0_n16_N7ee735013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735013fooEv,_ZTv0_n12_N7ee735013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73501[];
+extern void _ZN6dd35013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3501__7ee73501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN6dd35013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd3501__7ee73501[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3501__7ee73501[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee73501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee73501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee73501[] = {
+ {&(_ZTV7ee73501[5]), 5,22},
+ {&(_ZTV7ee73501[12]), 12,22},
+ {&(_ZTV7ee73501[17]), 17,22},
+ {&(_ZTV7ee73501[21]), 21,22},
+ {&(_tg__ZTV6dd3501__7ee73501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd3501__7ee73501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd3501__7ee73501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee73501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee73501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73501[];
+extern VTBL_ENTRY _ZTV7ee73501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73501[];
+static VTBL_ENTRY alt_thunk_names541[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35013fooEv,_ZTv0_n12_N6dd35013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35013fooEv,_ZThn16_N6dd35013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735013fooEv,_ZTv0_n12_N7ee735013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735013fooEv,_ZThn24_N7ee735013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735013barEv,_ZTv0_n16_N7ee735013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735013barEv,_ZThn16_N7ee735013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735013fooEv,_ZTv0_n20_N7ee735013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735013fooEv,_ZThn8_N7ee735013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73501 = { "ee73501", // class name
+ bases_ee73501, 4,
+ &(vtc_ee73501[0]), // expected_vtbl_contents
+ &(vtt_ee73501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73501),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names541,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4501 : cc501 {
+ int d;
+ virtual void bar(); // _ZN6dd45013barEv
+ ~dd4501(); // tgen
+ dd4501(); // tgen
+};
+//SIG(-1 dd4501) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd4501 ::bar(){vfunc_called(this, "_ZN6dd45013barEv");}
+dd4501 ::~dd4501(){ note_dtor("dd4501", this);} // tgen
+dd4501 ::dd4501(){ note_ctor("dd4501", this);} // tgen
+
+static void Test_dd4501()
+{
+ extern Class_Descriptor cd_dd4501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4501, buf);
+ dd4501 *dp, &lv = *(dp=new (buf) dd4501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd4501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(16,12), "dd4501");
+ check_base_class_offset(lv, (cc501*), 0, "dd4501");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4501.d");
+ test_class_info(&lv, &cd_dd4501);
+ dp->~dd4501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4501(Test_dd4501, "dd4501", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4501C1Ev();
+extern void _ZN6dd4501D1Ev();
+Name_Map name_map_dd4501[] = {
+ NSPAIR(_ZN6dd4501C1Ev),
+ NSPAIR(_ZN6dd4501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+static Base_Class bases_dd4501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4501[];
+extern void _ZN6dd45013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd4501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd4501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__6dd4501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd4501[] = {
+ {&(_ZTV6dd4501[3]), 3,8},
+ {&(_tg__ZTV5cc501__6dd4501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__6dd4501[3]), 3,4},
+ {&(_ZTV6dd4501[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+Class_Descriptor cd_dd4501 = { "dd4501", // class name
+ bases_dd4501, 3,
+ &(vtc_dd4501[0]), // expected_vtbl_contents
+ &(vtt_dd4501[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4501),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4501),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 ee04501 : dd4501 {
+ int e;
+ ~ee04501(); // tgen
+ ee04501(); // tgen
+};
+//SIG(1 ee04501) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04501 ::~ee04501(){ note_dtor("ee04501", this);} // tgen
+ee04501 ::ee04501(){ note_ctor("ee04501", this);} // tgen
+
+static void Test_ee04501()
+{
+ extern Class_Descriptor cd_ee04501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04501, buf);
+ ee04501 *dp, &lv = *(dp=new (buf) ee04501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee04501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd4501*), ABISELECT(24,16), "ee04501");
+ check_base_class_offset(lv, (cc501*)(dd4501*), 0, "ee04501");
+ check_base_class_offset(lv, (dd4501*), 0, "ee04501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04501.e");
+ test_class_info(&lv, &cd_ee04501);
+ dp->~ee04501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04501(Test_ee04501, "ee04501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04501C1Ev();
+extern void _ZN7ee04501D1Ev();
+Name_Map name_map_ee04501[] = {
+ NSPAIR(_ZN7ee04501C1Ev),
+ NSPAIR(_ZN7ee04501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd4501;
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+static Base_Class bases_ee04501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04501[];
+extern void _ZN6dd45013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee04501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04501[];
+extern void _ZN6dd45013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4501__7ee04501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd4501__7ee04501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd4501__7ee04501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4501__7ee04501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee04501[] = {
+ {&(_ZTV7ee04501[3]), 3,8},
+ {&(_tg__ZTV6dd4501__7ee04501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd4501__7ee04501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd4501__7ee04501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4501__7ee04501[3]), 3,4},
+ {&(_ZTV7ee04501[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee04501[];
+extern VTBL_ENTRY _ZTV7ee04501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04501[];
+Class_Descriptor cd_ee04501 = { "ee04501", // class name
+ bases_ee04501, 4,
+ &(vtc_ee04501[0]), // expected_vtbl_contents
+ &(vtt_ee04501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04501),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14501 : virtual dd4501 {
+ int e;
+ ~ee14501(); // tgen
+ ee14501(); // tgen
+};
+//SIG(1 ee14501) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14501 ::~ee14501(){ note_dtor("ee14501", this);} // tgen
+ee14501 ::ee14501(){ note_ctor("ee14501", this);} // tgen
+
+static void Test_ee14501()
+{
+ extern Class_Descriptor cd_ee14501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14501, buf);
+ ee14501 *dp, &lv = *(dp=new (buf) ee14501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee14501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd4501*), ABISELECT(32,20), "ee14501");
+ check_base_class_offset(lv, (cc501*)(dd4501*), ABISELECT(16,8), "ee14501");
+ check_base_class_offset(lv, (dd4501*), ABISELECT(16,8), "ee14501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14501.e");
+ test_class_info(&lv, &cd_ee14501);
+ dp->~ee14501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14501(Test_ee14501, "ee14501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14501C1Ev();
+extern void _ZN7ee14501D1Ev();
+Name_Map name_map_ee14501[] = {
+ NSPAIR(_ZN7ee14501C1Ev),
+ NSPAIR(_ZN7ee14501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd4501;
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+static Base_Class bases_ee14501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4501, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14501[];
+extern void _ZN6dd45013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee14501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14501[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14501[];
+extern void _ZN6dd45013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4501__7ee14501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd4501__7ee14501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd4501__7ee14501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4501__7ee14501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee14501[] = {
+ {&(_ZTV7ee14501[4]), 4,13},
+ {&(_ZTV7ee14501[8]), 8,13},
+ {&(_ZTV7ee14501[12]), 12,13},
+ {&(_tg__ZTV6dd4501__7ee14501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd4501__7ee14501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd4501__7ee14501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4501__7ee14501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14501[];
+extern VTBL_ENTRY _ZTV7ee14501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14501[];
+Class_Descriptor cd_ee14501 = { "ee14501", // class name
+ bases_ee14501, 4,
+ &(vtc_ee14501[0]), // expected_vtbl_contents
+ &(vtt_ee14501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14501),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24501 : dd4501 {
+ int e;
+ virtual void foo(); // _ZN7ee245013fooEv
+ ~ee24501(); // tgen
+ ee24501(); // tgen
+};
+//SIG(1 ee24501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24501 ::foo(){vfunc_called(this, "_ZN7ee245013fooEv");}
+ee24501 ::~ee24501(){ note_dtor("ee24501", this);} // tgen
+ee24501 ::ee24501(){ note_ctor("ee24501", this);} // tgen
+
+static void Test_ee24501()
+{
+ extern Class_Descriptor cd_ee24501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24501, buf);
+ ee24501 *dp, &lv = *(dp=new (buf) ee24501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee24501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd4501*), ABISELECT(24,16), "ee24501");
+ check_base_class_offset(lv, (cc501*)(dd4501*), 0, "ee24501");
+ check_base_class_offset(lv, (dd4501*), 0, "ee24501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24501.e");
+ test_class_info(&lv, &cd_ee24501);
+ dp->~ee24501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24501(Test_ee24501, "ee24501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24501C1Ev();
+extern void _ZN7ee24501D1Ev();
+Name_Map name_map_ee24501[] = {
+ NSPAIR(_ZN7ee24501C1Ev),
+ NSPAIR(_ZN7ee24501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd4501;
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+static Base_Class bases_ee24501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24501[];
+extern void _ZN6dd45013barEv();
+extern void _ZN7ee245013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee245013fooEv,_ZTv0_n12_N7ee245013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee245013fooEv,_ZThn16_N7ee245013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+ (VTBL_ENTRY)&_ZN7ee245013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245013fooEv,_ZTv0_n12_N7ee245013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24501[];
+extern void _ZN6dd45013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4501__7ee24501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd4501__7ee24501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd4501__7ee24501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4501__7ee24501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee24501[] = {
+ {&(_ZTV7ee24501[3]), 3,9},
+ {&(_tg__ZTV6dd4501__7ee24501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd4501__7ee24501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd4501__7ee24501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4501__7ee24501[3]), 3,4},
+ {&(_ZTV7ee24501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24501[];
+extern VTBL_ENTRY _ZTV7ee24501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24501[];
+static VTBL_ENTRY alt_thunk_names542[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245013fooEv,_ZTv0_n12_N7ee245013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee245013fooEv,_ZThn16_N7ee245013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24501 = { "ee24501", // class name
+ bases_ee24501, 4,
+ &(vtc_ee24501[0]), // expected_vtbl_contents
+ &(vtt_ee24501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names542,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34501 : virtual dd4501 {
+ int e;
+ virtual void foo(); // _ZN7ee345013fooEv
+ ~ee34501(); // tgen
+ ee34501(); // tgen
+};
+//SIG(1 ee34501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34501 ::foo(){vfunc_called(this, "_ZN7ee345013fooEv");}
+ee34501 ::~ee34501(){ note_dtor("ee34501", this);} // tgen
+ee34501 ::ee34501(){ note_ctor("ee34501", this);} // tgen
+
+static void Test_ee34501()
+{
+ extern Class_Descriptor cd_ee34501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34501, buf);
+ ee34501 *dp, &lv = *(dp=new (buf) ee34501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee34501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd4501*), ABISELECT(32,20), "ee34501");
+ check_base_class_offset(lv, (cc501*)(dd4501*), ABISELECT(16,8), "ee34501");
+ check_base_class_offset(lv, (dd4501*), ABISELECT(16,8), "ee34501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34501.e");
+ test_class_info(&lv, &cd_ee34501);
+ dp->~ee34501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34501(Test_ee34501, "ee34501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34501C1Ev();
+extern void _ZN7ee34501D1Ev();
+Name_Map name_map_ee34501[] = {
+ NSPAIR(_ZN7ee34501C1Ev),
+ NSPAIR(_ZN7ee34501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd4501;
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+static Base_Class bases_ee34501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34501[];
+extern void _ZN7ee345013fooEv();
+extern void _ZN6dd45013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee345013fooEv,_ZTv0_n12_N7ee345013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee345013fooEv,_ZThn20_N7ee345013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34501[0]),
+ (VTBL_ENTRY)&_ZN7ee345013fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345013fooEv,_ZTv0_n12_N7ee345013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34501[];
+extern void _ZN6dd45013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4501__7ee34501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd4501__7ee34501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd4501__7ee34501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4501__7ee34501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee34501[] = {
+ {&(_ZTV7ee34501[4]), 4,14},
+ {&(_ZTV7ee34501[9]), 9,14},
+ {&(_ZTV7ee34501[13]), 13,14},
+ {&(_tg__ZTV6dd4501__7ee34501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd4501__7ee34501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd4501__7ee34501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4501__7ee34501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34501[];
+extern VTBL_ENTRY _ZTV7ee34501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34501[];
+static VTBL_ENTRY alt_thunk_names543[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345013fooEv,_ZTv0_n12_N7ee345013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee345013fooEv,_ZThn20_N7ee345013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34501 = { "ee34501", // class name
+ bases_ee34501, 4,
+ &(vtc_ee34501[0]), // expected_vtbl_contents
+ &(vtt_ee34501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names543,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44501 : dd4501 {
+ int e;
+ virtual void bar(); // _ZN7ee445013barEv
+ ~ee44501(); // tgen
+ ee44501(); // tgen
+};
+//SIG(1 ee44501) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44501 ::bar(){vfunc_called(this, "_ZN7ee445013barEv");}
+ee44501 ::~ee44501(){ note_dtor("ee44501", this);} // tgen
+ee44501 ::ee44501(){ note_ctor("ee44501", this);} // tgen
+
+static void Test_ee44501()
+{
+ extern Class_Descriptor cd_ee44501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44501, buf);
+ ee44501 *dp, &lv = *(dp=new (buf) ee44501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee44501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd4501*), ABISELECT(24,16), "ee44501");
+ check_base_class_offset(lv, (cc501*)(dd4501*), 0, "ee44501");
+ check_base_class_offset(lv, (dd4501*), 0, "ee44501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44501.e");
+ test_class_info(&lv, &cd_ee44501);
+ dp->~ee44501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44501(Test_ee44501, "ee44501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44501C1Ev();
+extern void _ZN7ee44501D1Ev();
+Name_Map name_map_ee44501[] = {
+ NSPAIR(_ZN7ee44501C1Ev),
+ NSPAIR(_ZN7ee44501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd4501;
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+static Base_Class bases_ee44501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44501[];
+extern void _ZN7ee445013barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee44501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44501[0]),
+ (VTBL_ENTRY)&_ZN7ee445013barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44501[];
+extern void _ZN6dd45013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4501__7ee44501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd4501__7ee44501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd4501__7ee44501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4501__7ee44501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee44501[] = {
+ {&(_ZTV7ee44501[3]), 3,8},
+ {&(_tg__ZTV6dd4501__7ee44501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd4501__7ee44501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd4501__7ee44501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4501__7ee44501[3]), 3,4},
+ {&(_ZTV7ee44501[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee44501[];
+extern VTBL_ENTRY _ZTV7ee44501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44501[];
+Class_Descriptor cd_ee44501 = { "ee44501", // class name
+ bases_ee44501, 4,
+ &(vtc_ee44501[0]), // expected_vtbl_contents
+ &(vtt_ee44501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44501),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54501 : virtual dd4501 {
+ int e;
+ virtual void bar(); // _ZN7ee545013barEv
+ ~ee54501(); // tgen
+ ee54501(); // tgen
+};
+//SIG(1 ee54501) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54501 ::bar(){vfunc_called(this, "_ZN7ee545013barEv");}
+ee54501 ::~ee54501(){ note_dtor("ee54501", this);} // tgen
+ee54501 ::ee54501(){ note_ctor("ee54501", this);} // tgen
+
+static void Test_ee54501()
+{
+ extern Class_Descriptor cd_ee54501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54501, buf);
+ ee54501 *dp, &lv = *(dp=new (buf) ee54501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee54501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd4501*), ABISELECT(32,20), "ee54501");
+ check_base_class_offset(lv, (cc501*)(dd4501*), ABISELECT(16,8), "ee54501");
+ check_base_class_offset(lv, (dd4501*), ABISELECT(16,8), "ee54501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54501.e");
+ test_class_info(&lv, &cd_ee54501);
+ dp->~ee54501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54501(Test_ee54501, "ee54501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54501C1Ev();
+extern void _ZN7ee54501D1Ev();
+Name_Map name_map_ee54501[] = {
+ NSPAIR(_ZN7ee54501C1Ev),
+ NSPAIR(_ZN7ee54501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd4501;
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+static Base_Class bases_ee54501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54501[];
+extern void _ZN7ee545013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545013barEv,_ZTv0_n16_N7ee545013barEv)();
+extern void ABISELECT(_ZThn16_N7ee545013barEv,_ZThn8_N7ee545013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee54501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54501[0]),
+ (VTBL_ENTRY)&_ZN7ee545013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545013barEv,_ZTv0_n16_N7ee545013barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54501[];
+extern void _ZN6dd45013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4501__7ee54501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd4501__7ee54501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd4501__7ee54501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4501__7ee54501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee54501[] = {
+ {&(_ZTV7ee54501[4]), 4,14},
+ {&(_ZTV7ee54501[9]), 9,14},
+ {&(_ZTV7ee54501[13]), 13,14},
+ {&(_tg__ZTV6dd4501__7ee54501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd4501__7ee54501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd4501__7ee54501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4501__7ee54501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54501[];
+extern VTBL_ENTRY _ZTV7ee54501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54501[];
+static VTBL_ENTRY alt_thunk_names544[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545013barEv,_ZTv0_n16_N7ee545013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545013barEv,_ZThn8_N7ee545013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54501 = { "ee54501", // class name
+ bases_ee54501, 4,
+ &(vtc_ee54501[0]), // expected_vtbl_contents
+ &(vtt_ee54501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names544,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64501 : dd4501 {
+ int e;
+ virtual void foo(); // _ZN7ee645013fooEv
+ virtual void bar(); // _ZN7ee645013barEv
+ ~ee64501(); // tgen
+ ee64501(); // tgen
+};
+//SIG(1 ee64501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64501 ::foo(){vfunc_called(this, "_ZN7ee645013fooEv");}
+void ee64501 ::bar(){vfunc_called(this, "_ZN7ee645013barEv");}
+ee64501 ::~ee64501(){ note_dtor("ee64501", this);} // tgen
+ee64501 ::ee64501(){ note_ctor("ee64501", this);} // tgen
+
+static void Test_ee64501()
+{
+ extern Class_Descriptor cd_ee64501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64501, buf);
+ ee64501 *dp, &lv = *(dp=new (buf) ee64501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee64501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd4501*), ABISELECT(24,16), "ee64501");
+ check_base_class_offset(lv, (cc501*)(dd4501*), 0, "ee64501");
+ check_base_class_offset(lv, (dd4501*), 0, "ee64501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64501.e");
+ test_class_info(&lv, &cd_ee64501);
+ dp->~ee64501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64501(Test_ee64501, "ee64501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64501C1Ev();
+extern void _ZN7ee64501D1Ev();
+Name_Map name_map_ee64501[] = {
+ NSPAIR(_ZN7ee64501C1Ev),
+ NSPAIR(_ZN7ee64501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd4501;
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+static Base_Class bases_ee64501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64501[];
+extern void _ZN7ee645013barEv();
+extern void _ZN7ee645013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee645013fooEv,_ZTv0_n12_N7ee645013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee645013fooEv,_ZThn16_N7ee645013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64501[0]),
+ (VTBL_ENTRY)&_ZN7ee645013barEv,
+ (VTBL_ENTRY)&_ZN7ee645013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645013fooEv,_ZTv0_n12_N7ee645013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64501[];
+extern void _ZN6dd45013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4501__7ee64501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd4501__7ee64501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd4501__7ee64501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4501__7ee64501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee64501[] = {
+ {&(_ZTV7ee64501[3]), 3,9},
+ {&(_tg__ZTV6dd4501__7ee64501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd4501__7ee64501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd4501__7ee64501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4501__7ee64501[3]), 3,4},
+ {&(_ZTV7ee64501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64501[];
+extern VTBL_ENTRY _ZTV7ee64501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64501[];
+static VTBL_ENTRY alt_thunk_names545[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645013fooEv,_ZTv0_n12_N7ee645013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645013fooEv,_ZThn16_N7ee645013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64501 = { "ee64501", // class name
+ bases_ee64501, 4,
+ &(vtc_ee64501[0]), // expected_vtbl_contents
+ &(vtt_ee64501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names545,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74501 : virtual dd4501 {
+ int e;
+ virtual void foo(); // _ZN7ee745013fooEv
+ virtual void bar(); // _ZN7ee745013barEv
+ ~ee74501(); // tgen
+ ee74501(); // tgen
+};
+//SIG(1 ee74501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74501 ::foo(){vfunc_called(this, "_ZN7ee745013fooEv");}
+void ee74501 ::bar(){vfunc_called(this, "_ZN7ee745013barEv");}
+ee74501 ::~ee74501(){ note_dtor("ee74501", this);} // tgen
+ee74501 ::ee74501(){ note_ctor("ee74501", this);} // tgen
+
+static void Test_ee74501()
+{
+ extern Class_Descriptor cd_ee74501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74501, buf);
+ ee74501 *dp, &lv = *(dp=new (buf) ee74501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee74501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd4501*), ABISELECT(32,20), "ee74501");
+ check_base_class_offset(lv, (cc501*)(dd4501*), ABISELECT(16,8), "ee74501");
+ check_base_class_offset(lv, (dd4501*), ABISELECT(16,8), "ee74501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74501.e");
+ test_class_info(&lv, &cd_ee74501);
+ dp->~ee74501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74501(Test_ee74501, "ee74501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74501C1Ev();
+extern void _ZN7ee74501D1Ev();
+Name_Map name_map_ee74501[] = {
+ NSPAIR(_ZN7ee74501C1Ev),
+ NSPAIR(_ZN7ee74501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd4501;
+extern VTBL_ENTRY _ZTI6dd4501[];
+extern VTBL_ENTRY _ZTV6dd4501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4501[];
+static Base_Class bases_ee74501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74501[];
+extern void _ZN7ee745013fooEv();
+extern void _ZN7ee745013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745013barEv,_ZTv0_n16_N7ee745013barEv)();
+extern void ABISELECT(_ZThn16_N7ee745013barEv,_ZThn8_N7ee745013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745013fooEv,_ZTv0_n12_N7ee745013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee745013fooEv,_ZThn20_N7ee745013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74501[0]),
+ (VTBL_ENTRY)&_ZN7ee745013fooEv,
+ (VTBL_ENTRY)&_ZN7ee745013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745013barEv,_ZTv0_n16_N7ee745013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745013fooEv,_ZTv0_n12_N7ee745013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74501[];
+extern void _ZN6dd45013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4501__7ee74501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN6dd45013barEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd4501__7ee74501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd4501__7ee74501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4501__7ee74501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee74501[] = {
+ {&(_ZTV7ee74501[4]), 4,15},
+ {&(_ZTV7ee74501[10]), 10,15},
+ {&(_ZTV7ee74501[14]), 14,15},
+ {&(_tg__ZTV6dd4501__7ee74501[3]), 3,4},
+ {&(_tg__ZTV5cc5016dd4501__7ee74501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd4501__7ee74501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4501__7ee74501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74501[];
+extern VTBL_ENTRY _ZTV7ee74501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74501[];
+static VTBL_ENTRY alt_thunk_names546[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745013fooEv,_ZTv0_n12_N7ee745013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745013fooEv,_ZThn20_N7ee745013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745013barEv,_ZTv0_n16_N7ee745013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745013barEv,_ZThn8_N7ee745013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74501 = { "ee74501", // class name
+ bases_ee74501, 4,
+ &(vtc_ee74501[0]), // expected_vtbl_contents
+ &(vtt_ee74501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names546,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5501 : virtual cc501 {
+ int d;
+ virtual void bar(); // _ZN6dd55013barEv
+ ~dd5501(); // tgen
+ dd5501(); // tgen
+};
+//SIG(-1 dd5501) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd5501 ::bar(){vfunc_called(this, "_ZN6dd55013barEv");}
+dd5501 ::~dd5501(){ note_dtor("dd5501", this);} // tgen
+dd5501 ::dd5501(){ note_ctor("dd5501", this);} // tgen
+
+static void Test_dd5501()
+{
+ extern Class_Descriptor cd_dd5501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5501, buf);
+ dd5501 *dp, &lv = *(dp=new (buf) dd5501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd5501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,16), "dd5501");
+ check_base_class_offset(lv, (cc501*), ABISELECT(16,8), "dd5501");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5501.d");
+ test_class_info(&lv, &cd_dd5501);
+ dp->~dd5501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5501(Test_dd5501, "dd5501", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5501C1Ev();
+extern void _ZN6dd5501D1Ev();
+Name_Map name_map_dd5501[] = {
+ NSPAIR(_ZN6dd5501C1Ev),
+ NSPAIR(_ZN6dd5501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+static Base_Class bases_dd5501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 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 _ZTI6dd5501[];
+extern void _ZN6dd55013barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd5501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__6dd5501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd5501[] = {
+ {&(_ZTV6dd5501[4]), 4,14},
+ {&(_ZTV6dd5501[9]), 9,14},
+ {&(_ZTV6dd5501[13]), 13,14},
+ {&(_tg__ZTV5cc501__6dd5501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__6dd5501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static VTBL_ENTRY alt_thunk_names547[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5501 = { "dd5501", // class name
+ bases_dd5501, 3,
+ &(vtc_dd5501[0]), // expected_vtbl_contents
+ &(vtt_dd5501[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5501),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names547,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05501 : dd5501 {
+ int e;
+ ~ee05501(); // tgen
+ ee05501(); // tgen
+};
+//SIG(1 ee05501) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05501 ::~ee05501(){ note_dtor("ee05501", this);} // tgen
+ee05501 ::ee05501(){ note_ctor("ee05501", this);} // tgen
+
+static void Test_ee05501()
+{
+ extern Class_Descriptor cd_ee05501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05501, buf);
+ ee05501 *dp, &lv = *(dp=new (buf) ee05501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee05501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee05501");
+ check_base_class_offset(lv, (cc501*)(dd5501*), ABISELECT(16,12), "ee05501");
+ check_base_class_offset(lv, (dd5501*), 0, "ee05501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05501.e");
+ test_class_info(&lv, &cd_ee05501);
+ dp->~ee05501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05501(Test_ee05501, "ee05501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05501C1Ev();
+extern void _ZN7ee05501D1Ev();
+Name_Map name_map_ee05501[] = {
+ NSPAIR(_ZN7ee05501C1Ev),
+ NSPAIR(_ZN7ee05501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd5501;
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static Base_Class bases_ee05501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05501[];
+extern void _ZN6dd55013barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee05501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05501[];
+extern void _ZN6dd55013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5501__7ee05501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501__7ee05501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5501__7ee05501[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee05501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee05501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05501[] = {
+ {&(_ZTV7ee05501[4]), 4,14},
+ {&(_tg__ZTV6dd5501__7ee05501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd5501__7ee05501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5501__7ee05501[3]), 3,4},
+ {&(_ZTV7ee05501[9]), 9,14},
+ {&(_ZTV7ee05501[13]), 13,14},
+ {&(_tg__ZTV5cc501__7ee05501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee05501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05501[];
+extern VTBL_ENTRY _ZTV7ee05501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05501[];
+static VTBL_ENTRY alt_thunk_names548[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05501 = { "ee05501", // class name
+ bases_ee05501, 4,
+ &(vtc_ee05501[0]), // expected_vtbl_contents
+ &(vtt_ee05501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names548,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15501 : virtual dd5501 {
+ int e;
+ ~ee15501(); // tgen
+ ee15501(); // tgen
+};
+//SIG(1 ee15501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15501 ::~ee15501(){ note_dtor("ee15501", this);} // tgen
+ee15501 ::ee15501(){ note_ctor("ee15501", this);} // tgen
+
+static void Test_ee15501()
+{
+ extern Class_Descriptor cd_ee15501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15501, buf);
+ ee15501 *dp, &lv = *(dp=new (buf) ee15501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee15501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee15501");
+ check_base_class_offset(lv, (cc501*)(dd5501*), ABISELECT(32,16), "ee15501");
+ check_base_class_offset(lv, (dd5501*), ABISELECT(16,8), "ee15501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15501.e");
+ test_class_info(&lv, &cd_ee15501);
+ dp->~ee15501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15501(Test_ee15501, "ee15501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15501C1Ev();
+extern void _ZN7ee15501D1Ev();
+Name_Map name_map_ee15501[] = {
+ NSPAIR(_ZN7ee15501C1Ev),
+ NSPAIR(_ZN7ee15501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd5501;
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static Base_Class bases_ee15501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15501[];
+extern void _ZN6dd55013barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee15501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15501[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15501[];
+extern void _ZN6dd55013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5501__7ee15501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501__7ee15501[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5501__7ee15501[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee15501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee15501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15501[] = {
+ {&(_ZTV7ee15501[5]), 5,20},
+ {&(_ZTV7ee15501[10]), 10,20},
+ {&(_ZTV7ee15501[15]), 15,20},
+ {&(_ZTV7ee15501[19]), 19,20},
+ {&(_tg__ZTV6dd5501__7ee15501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd5501__7ee15501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5501__7ee15501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee15501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee15501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15501[];
+extern VTBL_ENTRY _ZTV7ee15501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15501[];
+static VTBL_ENTRY alt_thunk_names549[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15501 = { "ee15501", // class name
+ bases_ee15501, 4,
+ &(vtc_ee15501[0]), // expected_vtbl_contents
+ &(vtt_ee15501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15501),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names549,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25501 : dd5501 {
+ int e;
+ virtual void foo(); // _ZN7ee255013fooEv
+ ~ee25501(); // tgen
+ ee25501(); // tgen
+};
+//SIG(1 ee25501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25501 ::foo(){vfunc_called(this, "_ZN7ee255013fooEv");}
+ee25501 ::~ee25501(){ note_dtor("ee25501", this);} // tgen
+ee25501 ::ee25501(){ note_ctor("ee25501", this);} // tgen
+
+static void Test_ee25501()
+{
+ extern Class_Descriptor cd_ee25501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25501, buf);
+ ee25501 *dp, &lv = *(dp=new (buf) ee25501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee25501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee25501");
+ check_base_class_offset(lv, (cc501*)(dd5501*), ABISELECT(16,12), "ee25501");
+ check_base_class_offset(lv, (dd5501*), 0, "ee25501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25501.e");
+ test_class_info(&lv, &cd_ee25501);
+ dp->~ee25501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25501(Test_ee25501, "ee25501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25501C1Ev();
+extern void _ZN7ee25501D1Ev();
+Name_Map name_map_ee25501[] = {
+ NSPAIR(_ZN7ee25501C1Ev),
+ NSPAIR(_ZN7ee25501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd5501;
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static Base_Class bases_ee25501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25501[];
+extern void _ZN6dd55013barEv();
+extern void _ZN7ee255013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255013fooEv,_ZTv0_n12_N7ee255013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee255013fooEv,_ZThn20_N7ee255013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+ (VTBL_ENTRY)&_ZN7ee255013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255013fooEv,_ZTv0_n12_N7ee255013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25501[];
+extern void _ZN6dd55013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5501__7ee25501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501__7ee25501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5501__7ee25501[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee25501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee25501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25501[] = {
+ {&(_ZTV7ee25501[4]), 4,15},
+ {&(_tg__ZTV6dd5501__7ee25501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd5501__7ee25501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5501__7ee25501[3]), 3,4},
+ {&(_ZTV7ee25501[10]), 10,15},
+ {&(_ZTV7ee25501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee25501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee25501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25501[];
+extern VTBL_ENTRY _ZTV7ee25501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25501[];
+static VTBL_ENTRY alt_thunk_names550[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255013fooEv,_ZTv0_n12_N7ee255013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee255013fooEv,_ZThn20_N7ee255013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25501 = { "ee25501", // class name
+ bases_ee25501, 4,
+ &(vtc_ee25501[0]), // expected_vtbl_contents
+ &(vtt_ee25501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names550,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35501 : virtual dd5501 {
+ int e;
+ virtual void foo(); // _ZN7ee355013fooEv
+ ~ee35501(); // tgen
+ ee35501(); // tgen
+};
+//SIG(1 ee35501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35501 ::foo(){vfunc_called(this, "_ZN7ee355013fooEv");}
+ee35501 ::~ee35501(){ note_dtor("ee35501", this);} // tgen
+ee35501 ::ee35501(){ note_ctor("ee35501", this);} // tgen
+
+static void Test_ee35501()
+{
+ extern Class_Descriptor cd_ee35501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35501, buf);
+ ee35501 *dp, &lv = *(dp=new (buf) ee35501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee35501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee35501");
+ check_base_class_offset(lv, (cc501*)(dd5501*), ABISELECT(32,16), "ee35501");
+ check_base_class_offset(lv, (dd5501*), ABISELECT(16,8), "ee35501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35501.e");
+ test_class_info(&lv, &cd_ee35501);
+ dp->~ee35501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35501(Test_ee35501, "ee35501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35501C1Ev();
+extern void _ZN7ee35501D1Ev();
+Name_Map name_map_ee35501[] = {
+ NSPAIR(_ZN7ee35501C1Ev),
+ NSPAIR(_ZN7ee35501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd5501;
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static Base_Class bases_ee35501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35501[];
+extern void _ZN7ee355013fooEv();
+extern void _ZN6dd55013barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355013fooEv,_ZTv0_n12_N7ee355013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee355013fooEv,_ZThn24_N7ee355013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35501[0]),
+ (VTBL_ENTRY)&_ZN7ee355013fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355013fooEv,_ZTv0_n12_N7ee355013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35501[];
+extern void _ZN6dd55013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5501__7ee35501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501__7ee35501[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5501__7ee35501[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee35501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee35501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35501[] = {
+ {&(_ZTV7ee35501[5]), 5,21},
+ {&(_ZTV7ee35501[11]), 11,21},
+ {&(_ZTV7ee35501[16]), 16,21},
+ {&(_ZTV7ee35501[20]), 20,21},
+ {&(_tg__ZTV6dd5501__7ee35501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd5501__7ee35501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5501__7ee35501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee35501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee35501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35501[];
+extern VTBL_ENTRY _ZTV7ee35501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35501[];
+static VTBL_ENTRY alt_thunk_names551[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355013fooEv,_ZTv0_n12_N7ee355013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee355013fooEv,_ZThn24_N7ee355013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35501 = { "ee35501", // class name
+ bases_ee35501, 4,
+ &(vtc_ee35501[0]), // expected_vtbl_contents
+ &(vtt_ee35501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35501),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names551,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45501 : dd5501 {
+ int e;
+ virtual void bar(); // _ZN7ee455013barEv
+ ~ee45501(); // tgen
+ ee45501(); // tgen
+};
+//SIG(1 ee45501) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45501 ::bar(){vfunc_called(this, "_ZN7ee455013barEv");}
+ee45501 ::~ee45501(){ note_dtor("ee45501", this);} // tgen
+ee45501 ::ee45501(){ note_ctor("ee45501", this);} // tgen
+
+static void Test_ee45501()
+{
+ extern Class_Descriptor cd_ee45501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45501, buf);
+ ee45501 *dp, &lv = *(dp=new (buf) ee45501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee45501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee45501");
+ check_base_class_offset(lv, (cc501*)(dd5501*), ABISELECT(16,12), "ee45501");
+ check_base_class_offset(lv, (dd5501*), 0, "ee45501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45501.e");
+ test_class_info(&lv, &cd_ee45501);
+ dp->~ee45501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45501(Test_ee45501, "ee45501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45501C1Ev();
+extern void _ZN7ee45501D1Ev();
+Name_Map name_map_ee45501[] = {
+ NSPAIR(_ZN7ee45501C1Ev),
+ NSPAIR(_ZN7ee45501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd5501;
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static Base_Class bases_ee45501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45501[];
+extern void _ZN7ee455013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455013barEv,_ZTv0_n16_N7ee455013barEv)();
+extern void ABISELECT(_ZThn16_N7ee455013barEv,_ZThn12_N7ee455013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee45501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45501[0]),
+ (VTBL_ENTRY)&_ZN7ee455013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455013barEv,_ZTv0_n16_N7ee455013barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45501[];
+extern void _ZN6dd55013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5501__7ee45501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501__7ee45501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5501__7ee45501[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee45501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee45501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45501[] = {
+ {&(_ZTV7ee45501[4]), 4,14},
+ {&(_tg__ZTV6dd5501__7ee45501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd5501__7ee45501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5501__7ee45501[3]), 3,4},
+ {&(_ZTV7ee45501[9]), 9,14},
+ {&(_ZTV7ee45501[13]), 13,14},
+ {&(_tg__ZTV5cc501__7ee45501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee45501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45501[];
+extern VTBL_ENTRY _ZTV7ee45501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45501[];
+static VTBL_ENTRY alt_thunk_names552[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455013barEv,_ZTv0_n16_N7ee455013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455013barEv,_ZThn12_N7ee455013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45501 = { "ee45501", // class name
+ bases_ee45501, 4,
+ &(vtc_ee45501[0]), // expected_vtbl_contents
+ &(vtt_ee45501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45501),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names552,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55501 : virtual dd5501 {
+ int e;
+ virtual void bar(); // _ZN7ee555013barEv
+ ~ee55501(); // tgen
+ ee55501(); // tgen
+};
+//SIG(1 ee55501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55501 ::bar(){vfunc_called(this, "_ZN7ee555013barEv");}
+ee55501 ::~ee55501(){ note_dtor("ee55501", this);} // tgen
+ee55501 ::ee55501(){ note_ctor("ee55501", this);} // tgen
+
+static void Test_ee55501()
+{
+ extern Class_Descriptor cd_ee55501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55501, buf);
+ ee55501 *dp, &lv = *(dp=new (buf) ee55501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee55501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee55501");
+ check_base_class_offset(lv, (cc501*)(dd5501*), ABISELECT(32,16), "ee55501");
+ check_base_class_offset(lv, (dd5501*), ABISELECT(16,8), "ee55501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55501.e");
+ test_class_info(&lv, &cd_ee55501);
+ dp->~ee55501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55501(Test_ee55501, "ee55501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55501C1Ev();
+extern void _ZN7ee55501D1Ev();
+Name_Map name_map_ee55501[] = {
+ NSPAIR(_ZN7ee55501C1Ev),
+ NSPAIR(_ZN7ee55501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd5501;
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static Base_Class bases_ee55501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55501[];
+extern void _ZN7ee555013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555013barEv,_ZTv0_n20_N7ee555013barEv)();
+extern void ABISELECT(_ZThn16_N7ee555013barEv,_ZThn8_N7ee555013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555013barEv,_ZTv0_n16_N7ee555013barEv)();
+extern void ABISELECT(_ZThn32_N7ee555013barEv,_ZThn16_N7ee555013barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee55501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55501[0]),
+ (VTBL_ENTRY)&_ZN7ee555013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555013barEv,_ZTv0_n20_N7ee555013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555013barEv,_ZTv0_n16_N7ee555013barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55501[];
+extern void _ZN6dd55013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5501__7ee55501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501__7ee55501[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5501__7ee55501[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee55501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee55501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55501[] = {
+ {&(_ZTV7ee55501[5]), 5,21},
+ {&(_ZTV7ee55501[11]), 11,21},
+ {&(_ZTV7ee55501[16]), 16,21},
+ {&(_ZTV7ee55501[20]), 20,21},
+ {&(_tg__ZTV6dd5501__7ee55501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd5501__7ee55501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5501__7ee55501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee55501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee55501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55501[];
+extern VTBL_ENTRY _ZTV7ee55501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55501[];
+static VTBL_ENTRY alt_thunk_names553[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555013barEv,_ZTv0_n16_N7ee555013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555013barEv,_ZThn16_N7ee555013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555013barEv,_ZTv0_n20_N7ee555013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555013barEv,_ZThn8_N7ee555013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55501 = { "ee55501", // class name
+ bases_ee55501, 4,
+ &(vtc_ee55501[0]), // expected_vtbl_contents
+ &(vtt_ee55501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55501),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names553,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65501 : dd5501 {
+ int e;
+ virtual void foo(); // _ZN7ee655013fooEv
+ virtual void bar(); // _ZN7ee655013barEv
+ ~ee65501(); // tgen
+ ee65501(); // tgen
+};
+//SIG(1 ee65501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65501 ::foo(){vfunc_called(this, "_ZN7ee655013fooEv");}
+void ee65501 ::bar(){vfunc_called(this, "_ZN7ee655013barEv");}
+ee65501 ::~ee65501(){ note_dtor("ee65501", this);} // tgen
+ee65501 ::ee65501(){ note_ctor("ee65501", this);} // tgen
+
+static void Test_ee65501()
+{
+ extern Class_Descriptor cd_ee65501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65501, buf);
+ ee65501 *dp, &lv = *(dp=new (buf) ee65501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee65501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee65501");
+ check_base_class_offset(lv, (cc501*)(dd5501*), ABISELECT(16,12), "ee65501");
+ check_base_class_offset(lv, (dd5501*), 0, "ee65501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65501.e");
+ test_class_info(&lv, &cd_ee65501);
+ dp->~ee65501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65501(Test_ee65501, "ee65501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65501C1Ev();
+extern void _ZN7ee65501D1Ev();
+Name_Map name_map_ee65501[] = {
+ NSPAIR(_ZN7ee65501C1Ev),
+ NSPAIR(_ZN7ee65501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd5501;
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static Base_Class bases_ee65501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65501[];
+extern void _ZN7ee655013barEv();
+extern void _ZN7ee655013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655013barEv,_ZTv0_n16_N7ee655013barEv)();
+extern void ABISELECT(_ZThn16_N7ee655013barEv,_ZThn12_N7ee655013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655013fooEv,_ZTv0_n12_N7ee655013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee655013fooEv,_ZThn20_N7ee655013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65501[0]),
+ (VTBL_ENTRY)&_ZN7ee655013barEv,
+ (VTBL_ENTRY)&_ZN7ee655013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655013barEv,_ZTv0_n16_N7ee655013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655013fooEv,_ZTv0_n12_N7ee655013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65501[];
+extern void _ZN6dd55013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5501__7ee65501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501__7ee65501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5501__7ee65501[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee65501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee65501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65501[] = {
+ {&(_ZTV7ee65501[4]), 4,15},
+ {&(_tg__ZTV6dd5501__7ee65501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd5501__7ee65501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5501__7ee65501[3]), 3,4},
+ {&(_ZTV7ee65501[10]), 10,15},
+ {&(_ZTV7ee65501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee65501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee65501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65501[];
+extern VTBL_ENTRY _ZTV7ee65501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65501[];
+static VTBL_ENTRY alt_thunk_names554[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn12_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655013fooEv,_ZTv0_n12_N7ee655013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655013fooEv,_ZThn20_N7ee655013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655013barEv,_ZTv0_n16_N7ee655013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655013barEv,_ZThn12_N7ee655013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65501 = { "ee65501", // class name
+ bases_ee65501, 4,
+ &(vtc_ee65501[0]), // expected_vtbl_contents
+ &(vtt_ee65501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names554,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75501 : virtual dd5501 {
+ int e;
+ virtual void foo(); // _ZN7ee755013fooEv
+ virtual void bar(); // _ZN7ee755013barEv
+ ~ee75501(); // tgen
+ ee75501(); // tgen
+};
+//SIG(1 ee75501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75501 ::foo(){vfunc_called(this, "_ZN7ee755013fooEv");}
+void ee75501 ::bar(){vfunc_called(this, "_ZN7ee755013barEv");}
+ee75501 ::~ee75501(){ note_dtor("ee75501", this);} // tgen
+ee75501 ::ee75501(){ note_ctor("ee75501", this);} // tgen
+
+static void Test_ee75501()
+{
+ extern Class_Descriptor cd_ee75501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75501, buf);
+ ee75501 *dp, &lv = *(dp=new (buf) ee75501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee75501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee75501");
+ check_base_class_offset(lv, (cc501*)(dd5501*), ABISELECT(32,16), "ee75501");
+ check_base_class_offset(lv, (dd5501*), ABISELECT(16,8), "ee75501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75501.e");
+ test_class_info(&lv, &cd_ee75501);
+ dp->~ee75501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75501(Test_ee75501, "ee75501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75501C1Ev();
+extern void _ZN7ee75501D1Ev();
+Name_Map name_map_ee75501[] = {
+ NSPAIR(_ZN7ee75501C1Ev),
+ NSPAIR(_ZN7ee75501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd5501;
+extern VTBL_ENTRY _ZTI6dd5501[];
+extern VTBL_ENTRY _ZTV6dd5501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5501[];
+static Base_Class bases_ee75501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5501, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75501[];
+extern void _ZN7ee755013fooEv();
+extern void _ZN7ee755013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755013barEv,_ZTv0_n20_N7ee755013barEv)();
+extern void ABISELECT(_ZThn16_N7ee755013barEv,_ZThn8_N7ee755013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755013barEv,_ZTv0_n16_N7ee755013barEv)();
+extern void ABISELECT(_ZThn32_N7ee755013barEv,_ZThn16_N7ee755013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755013fooEv,_ZTv0_n12_N7ee755013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee755013fooEv,_ZThn24_N7ee755013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75501[0]),
+ (VTBL_ENTRY)&_ZN7ee755013fooEv,
+ (VTBL_ENTRY)&_ZN7ee755013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755013barEv,_ZTv0_n20_N7ee755013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755013barEv,_ZTv0_n16_N7ee755013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755013fooEv,_ZTv0_n12_N7ee755013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75501[];
+extern void _ZN6dd55013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5501__7ee75501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN6dd55013barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv)();
+extern void ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd5501__7ee75501[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5501__7ee75501[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee75501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee75501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75501[] = {
+ {&(_ZTV7ee75501[5]), 5,22},
+ {&(_ZTV7ee75501[12]), 12,22},
+ {&(_ZTV7ee75501[17]), 17,22},
+ {&(_ZTV7ee75501[21]), 21,22},
+ {&(_tg__ZTV6dd5501__7ee75501[4]), 4,5},
+ {&(_tg__ZTV5cc501__6dd5501__7ee75501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd5501__7ee75501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee75501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee75501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75501[];
+extern VTBL_ENTRY _ZTV7ee75501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75501[];
+static VTBL_ENTRY alt_thunk_names555[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55013barEv,_ZTv0_n16_N6dd55013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55013barEv,_ZThn8_N6dd55013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755013fooEv,_ZTv0_n12_N7ee755013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755013fooEv,_ZThn24_N7ee755013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755013barEv,_ZTv0_n16_N7ee755013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755013barEv,_ZThn16_N7ee755013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755013barEv,_ZTv0_n20_N7ee755013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755013barEv,_ZThn8_N7ee755013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75501 = { "ee75501", // class name
+ bases_ee75501, 4,
+ &(vtc_ee75501[0]), // expected_vtbl_contents
+ &(vtt_ee75501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75501),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names555,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6501 : cc501 {
+ int d;
+ virtual void bar(); // _ZN6dd65013barEv
+ virtual void foo(); // _ZN6dd65013fooEv
+ ~dd6501(); // tgen
+ dd6501(); // tgen
+};
+//SIG(-1 dd6501) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6501 ::bar(){vfunc_called(this, "_ZN6dd65013barEv");}
+void dd6501 ::foo(){vfunc_called(this, "_ZN6dd65013fooEv");}
+dd6501 ::~dd6501(){ note_dtor("dd6501", this);} // tgen
+dd6501 ::dd6501(){ note_ctor("dd6501", this);} // tgen
+
+static void Test_dd6501()
+{
+ extern Class_Descriptor cd_dd6501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6501, buf);
+ dd6501 *dp, &lv = *(dp=new (buf) dd6501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd6501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(16,12), "dd6501");
+ check_base_class_offset(lv, (cc501*), 0, "dd6501");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6501.d");
+ test_class_info(&lv, &cd_dd6501);
+ dp->~dd6501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6501(Test_dd6501, "dd6501", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6501C1Ev();
+extern void _ZN6dd6501D1Ev();
+Name_Map name_map_dd6501[] = {
+ NSPAIR(_ZN6dd6501C1Ev),
+ NSPAIR(_ZN6dd6501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+static Base_Class bases_dd6501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd6501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__6dd6501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd6501[] = {
+ {&(_ZTV6dd6501[3]), 3,9},
+ {&(_tg__ZTV5cc501__6dd6501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__6dd6501[3]), 3,4},
+ {&(_ZTV6dd6501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static VTBL_ENTRY alt_thunk_names556[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6501 = { "dd6501", // class name
+ bases_dd6501, 3,
+ &(vtc_dd6501[0]), // expected_vtbl_contents
+ &(vtt_dd6501[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6501),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names556,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06501 : dd6501 {
+ int e;
+ ~ee06501(); // tgen
+ ee06501(); // tgen
+};
+//SIG(1 ee06501) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06501 ::~ee06501(){ note_dtor("ee06501", this);} // tgen
+ee06501 ::ee06501(){ note_ctor("ee06501", this);} // tgen
+
+static void Test_ee06501()
+{
+ extern Class_Descriptor cd_ee06501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06501, buf);
+ ee06501 *dp, &lv = *(dp=new (buf) ee06501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee06501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd6501*), ABISELECT(24,16), "ee06501");
+ check_base_class_offset(lv, (cc501*)(dd6501*), 0, "ee06501");
+ check_base_class_offset(lv, (dd6501*), 0, "ee06501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06501.e");
+ test_class_info(&lv, &cd_ee06501);
+ dp->~ee06501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06501(Test_ee06501, "ee06501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06501C1Ev();
+extern void _ZN7ee06501D1Ev();
+Name_Map name_map_ee06501[] = {
+ NSPAIR(_ZN7ee06501C1Ev),
+ NSPAIR(_ZN7ee06501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd6501;
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static Base_Class bases_ee06501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6501__7ee06501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd6501__7ee06501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd6501__7ee06501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6501__7ee06501[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+static VTT_ENTRY vtt_ee06501[] = {
+ {&(_ZTV7ee06501[3]), 3,9},
+ {&(_tg__ZTV6dd6501__7ee06501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd6501__7ee06501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd6501__7ee06501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6501__7ee06501[3]), 3,4},
+ {&(_ZTV7ee06501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06501[];
+extern VTBL_ENTRY _ZTV7ee06501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06501[];
+static VTBL_ENTRY alt_thunk_names557[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06501 = { "ee06501", // class name
+ bases_ee06501, 4,
+ &(vtc_ee06501[0]), // expected_vtbl_contents
+ &(vtt_ee06501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names557,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16501 : virtual dd6501 {
+ int e;
+ ~ee16501(); // tgen
+ ee16501(); // tgen
+};
+//SIG(1 ee16501) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16501 ::~ee16501(){ note_dtor("ee16501", this);} // tgen
+ee16501 ::ee16501(){ note_ctor("ee16501", this);} // tgen
+
+static void Test_ee16501()
+{
+ extern Class_Descriptor cd_ee16501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16501, buf);
+ ee16501 *dp, &lv = *(dp=new (buf) ee16501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee16501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd6501*), ABISELECT(32,20), "ee16501");
+ check_base_class_offset(lv, (cc501*)(dd6501*), ABISELECT(16,8), "ee16501");
+ check_base_class_offset(lv, (dd6501*), ABISELECT(16,8), "ee16501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16501.e");
+ test_class_info(&lv, &cd_ee16501);
+ dp->~ee16501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16501(Test_ee16501, "ee16501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16501C1Ev();
+extern void _ZN7ee16501D1Ev();
+Name_Map name_map_ee16501[] = {
+ NSPAIR(_ZN7ee16501C1Ev),
+ NSPAIR(_ZN7ee16501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd6501;
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static Base_Class bases_ee16501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6501, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16501[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6501__7ee16501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd6501__7ee16501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd6501__7ee16501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6501__7ee16501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+static VTT_ENTRY vtt_ee16501[] = {
+ {&(_ZTV7ee16501[4]), 4,15},
+ {&(_ZTV7ee16501[9]), 9,15},
+ {&(_ZTV7ee16501[14]), 14,15},
+ {&(_tg__ZTV6dd6501__7ee16501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd6501__7ee16501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd6501__7ee16501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6501__7ee16501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16501[];
+extern VTBL_ENTRY _ZTV7ee16501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16501[];
+static VTBL_ENTRY alt_thunk_names558[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16501 = { "ee16501", // class name
+ bases_ee16501, 4,
+ &(vtc_ee16501[0]), // expected_vtbl_contents
+ &(vtt_ee16501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names558,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26501 : dd6501 {
+ int e;
+ virtual void foo(); // _ZN7ee265013fooEv
+ ~ee26501(); // tgen
+ ee26501(); // tgen
+};
+//SIG(1 ee26501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26501 ::foo(){vfunc_called(this, "_ZN7ee265013fooEv");}
+ee26501 ::~ee26501(){ note_dtor("ee26501", this);} // tgen
+ee26501 ::ee26501(){ note_ctor("ee26501", this);} // tgen
+
+static void Test_ee26501()
+{
+ extern Class_Descriptor cd_ee26501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26501, buf);
+ ee26501 *dp, &lv = *(dp=new (buf) ee26501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee26501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd6501*), ABISELECT(24,16), "ee26501");
+ check_base_class_offset(lv, (cc501*)(dd6501*), 0, "ee26501");
+ check_base_class_offset(lv, (dd6501*), 0, "ee26501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26501.e");
+ test_class_info(&lv, &cd_ee26501);
+ dp->~ee26501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26501(Test_ee26501, "ee26501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26501C1Ev();
+extern void _ZN7ee26501D1Ev();
+Name_Map name_map_ee26501[] = {
+ NSPAIR(_ZN7ee26501C1Ev),
+ NSPAIR(_ZN7ee26501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd6501;
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static Base_Class bases_ee26501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN7ee265013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee265013fooEv,_ZTv0_n12_N7ee265013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee265013fooEv,_ZThn16_N7ee265013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN7ee265013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265013fooEv,_ZTv0_n12_N7ee265013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6501__7ee26501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd6501__7ee26501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd6501__7ee26501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6501__7ee26501[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+static VTT_ENTRY vtt_ee26501[] = {
+ {&(_ZTV7ee26501[3]), 3,9},
+ {&(_tg__ZTV6dd6501__7ee26501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd6501__7ee26501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd6501__7ee26501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6501__7ee26501[3]), 3,4},
+ {&(_ZTV7ee26501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26501[];
+extern VTBL_ENTRY _ZTV7ee26501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26501[];
+static VTBL_ENTRY alt_thunk_names559[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265013fooEv,_ZTv0_n12_N7ee265013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee265013fooEv,_ZThn16_N7ee265013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26501 = { "ee26501", // class name
+ bases_ee26501, 4,
+ &(vtc_ee26501[0]), // expected_vtbl_contents
+ &(vtt_ee26501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names559,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36501 : virtual dd6501 {
+ int e;
+ virtual void foo(); // _ZN7ee365013fooEv
+ ~ee36501(); // tgen
+ ee36501(); // tgen
+};
+//SIG(1 ee36501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36501 ::foo(){vfunc_called(this, "_ZN7ee365013fooEv");}
+ee36501 ::~ee36501(){ note_dtor("ee36501", this);} // tgen
+ee36501 ::ee36501(){ note_ctor("ee36501", this);} // tgen
+
+static void Test_ee36501()
+{
+ extern Class_Descriptor cd_ee36501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36501, buf);
+ ee36501 *dp, &lv = *(dp=new (buf) ee36501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee36501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd6501*), ABISELECT(32,20), "ee36501");
+ check_base_class_offset(lv, (cc501*)(dd6501*), ABISELECT(16,8), "ee36501");
+ check_base_class_offset(lv, (dd6501*), ABISELECT(16,8), "ee36501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36501.e");
+ test_class_info(&lv, &cd_ee36501);
+ dp->~ee36501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36501(Test_ee36501, "ee36501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36501C1Ev();
+extern void _ZN7ee36501D1Ev();
+Name_Map name_map_ee36501[] = {
+ NSPAIR(_ZN7ee36501C1Ev),
+ NSPAIR(_ZN7ee36501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd6501;
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static Base_Class bases_ee36501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36501[];
+extern void _ZN7ee365013fooEv();
+extern void _ZN6dd65013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365013fooEv,_ZTv0_n20_N7ee365013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365013fooEv,_ZThn8_N7ee365013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365013fooEv,_ZTv0_n12_N7ee365013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee365013fooEv,_ZThn20_N7ee365013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36501[0]),
+ (VTBL_ENTRY)&_ZN7ee365013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365013fooEv,_ZTv0_n20_N7ee365013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365013fooEv,_ZTv0_n12_N7ee365013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6501__7ee36501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd6501__7ee36501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd6501__7ee36501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6501__7ee36501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+static VTT_ENTRY vtt_ee36501[] = {
+ {&(_ZTV7ee36501[4]), 4,16},
+ {&(_ZTV7ee36501[10]), 10,16},
+ {&(_ZTV7ee36501[15]), 15,16},
+ {&(_tg__ZTV6dd6501__7ee36501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd6501__7ee36501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd6501__7ee36501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6501__7ee36501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36501[];
+extern VTBL_ENTRY _ZTV7ee36501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36501[];
+static VTBL_ENTRY alt_thunk_names560[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365013fooEv,_ZTv0_n12_N7ee365013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee365013fooEv,_ZThn20_N7ee365013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365013fooEv,_ZTv0_n20_N7ee365013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365013fooEv,_ZThn8_N7ee365013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36501 = { "ee36501", // class name
+ bases_ee36501, 4,
+ &(vtc_ee36501[0]), // expected_vtbl_contents
+ &(vtt_ee36501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36501),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names560,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46501 : dd6501 {
+ int e;
+ virtual void bar(); // _ZN7ee465013barEv
+ ~ee46501(); // tgen
+ ee46501(); // tgen
+};
+//SIG(1 ee46501) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46501 ::bar(){vfunc_called(this, "_ZN7ee465013barEv");}
+ee46501 ::~ee46501(){ note_dtor("ee46501", this);} // tgen
+ee46501 ::ee46501(){ note_ctor("ee46501", this);} // tgen
+
+static void Test_ee46501()
+{
+ extern Class_Descriptor cd_ee46501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46501, buf);
+ ee46501 *dp, &lv = *(dp=new (buf) ee46501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee46501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd6501*), ABISELECT(24,16), "ee46501");
+ check_base_class_offset(lv, (cc501*)(dd6501*), 0, "ee46501");
+ check_base_class_offset(lv, (dd6501*), 0, "ee46501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46501.e");
+ test_class_info(&lv, &cd_ee46501);
+ dp->~ee46501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46501(Test_ee46501, "ee46501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46501C1Ev();
+extern void _ZN7ee46501D1Ev();
+Name_Map name_map_ee46501[] = {
+ NSPAIR(_ZN7ee46501C1Ev),
+ NSPAIR(_ZN7ee46501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd6501;
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static Base_Class bases_ee46501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46501[];
+extern void _ZN7ee465013barEv();
+extern void _ZN6dd65013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46501[0]),
+ (VTBL_ENTRY)&_ZN7ee465013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6501__7ee46501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd6501__7ee46501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd6501__7ee46501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6501__7ee46501[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+static VTT_ENTRY vtt_ee46501[] = {
+ {&(_ZTV7ee46501[3]), 3,9},
+ {&(_tg__ZTV6dd6501__7ee46501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd6501__7ee46501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd6501__7ee46501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6501__7ee46501[3]), 3,4},
+ {&(_ZTV7ee46501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46501[];
+extern VTBL_ENTRY _ZTV7ee46501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46501[];
+static VTBL_ENTRY alt_thunk_names561[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46501 = { "ee46501", // class name
+ bases_ee46501, 4,
+ &(vtc_ee46501[0]), // expected_vtbl_contents
+ &(vtt_ee46501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names561,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56501 : virtual dd6501 {
+ int e;
+ virtual void bar(); // _ZN7ee565013barEv
+ ~ee56501(); // tgen
+ ee56501(); // tgen
+};
+//SIG(1 ee56501) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56501 ::bar(){vfunc_called(this, "_ZN7ee565013barEv");}
+ee56501 ::~ee56501(){ note_dtor("ee56501", this);} // tgen
+ee56501 ::ee56501(){ note_ctor("ee56501", this);} // tgen
+
+static void Test_ee56501()
+{
+ extern Class_Descriptor cd_ee56501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56501, buf);
+ ee56501 *dp, &lv = *(dp=new (buf) ee56501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee56501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd6501*), ABISELECT(32,20), "ee56501");
+ check_base_class_offset(lv, (cc501*)(dd6501*), ABISELECT(16,8), "ee56501");
+ check_base_class_offset(lv, (dd6501*), ABISELECT(16,8), "ee56501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56501.e");
+ test_class_info(&lv, &cd_ee56501);
+ dp->~ee56501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56501(Test_ee56501, "ee56501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56501C1Ev();
+extern void _ZN7ee56501D1Ev();
+Name_Map name_map_ee56501[] = {
+ NSPAIR(_ZN7ee56501C1Ev),
+ NSPAIR(_ZN7ee56501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd6501;
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static Base_Class bases_ee56501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56501[];
+extern void _ZN7ee565013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565013barEv,_ZTv0_n16_N7ee565013barEv)();
+extern void ABISELECT(_ZThn16_N7ee565013barEv,_ZThn8_N7ee565013barEv)() __attribute__((weak));
+extern void _ZN6dd65013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56501[0]),
+ (VTBL_ENTRY)&_ZN7ee565013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565013barEv,_ZTv0_n16_N7ee565013barEv),
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6501__7ee56501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd6501__7ee56501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd6501__7ee56501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6501__7ee56501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+static VTT_ENTRY vtt_ee56501[] = {
+ {&(_ZTV7ee56501[4]), 4,16},
+ {&(_ZTV7ee56501[10]), 10,16},
+ {&(_ZTV7ee56501[15]), 15,16},
+ {&(_tg__ZTV6dd6501__7ee56501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd6501__7ee56501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd6501__7ee56501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6501__7ee56501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56501[];
+extern VTBL_ENTRY _ZTV7ee56501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56501[];
+static VTBL_ENTRY alt_thunk_names562[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565013barEv,_ZTv0_n16_N7ee565013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565013barEv,_ZThn8_N7ee565013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56501 = { "ee56501", // class name
+ bases_ee56501, 4,
+ &(vtc_ee56501[0]), // expected_vtbl_contents
+ &(vtt_ee56501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56501),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names562,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66501 : dd6501 {
+ int e;
+ virtual void foo(); // _ZN7ee665013fooEv
+ virtual void bar(); // _ZN7ee665013barEv
+ ~ee66501(); // tgen
+ ee66501(); // tgen
+};
+//SIG(1 ee66501) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66501 ::foo(){vfunc_called(this, "_ZN7ee665013fooEv");}
+void ee66501 ::bar(){vfunc_called(this, "_ZN7ee665013barEv");}
+ee66501 ::~ee66501(){ note_dtor("ee66501", this);} // tgen
+ee66501 ::ee66501(){ note_ctor("ee66501", this);} // tgen
+
+static void Test_ee66501()
+{
+ extern Class_Descriptor cd_ee66501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66501, buf);
+ ee66501 *dp, &lv = *(dp=new (buf) ee66501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee66501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd6501*), ABISELECT(24,16), "ee66501");
+ check_base_class_offset(lv, (cc501*)(dd6501*), 0, "ee66501");
+ check_base_class_offset(lv, (dd6501*), 0, "ee66501");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66501.e");
+ test_class_info(&lv, &cd_ee66501);
+ dp->~ee66501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66501(Test_ee66501, "ee66501", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66501C1Ev();
+extern void _ZN7ee66501D1Ev();
+Name_Map name_map_ee66501[] = {
+ NSPAIR(_ZN7ee66501C1Ev),
+ NSPAIR(_ZN7ee66501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd6501;
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static Base_Class bases_ee66501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66501[];
+extern void _ZN7ee665013barEv();
+extern void _ZN7ee665013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee665013fooEv,_ZTv0_n12_N7ee665013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee665013fooEv,_ZThn16_N7ee665013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66501[0]),
+ (VTBL_ENTRY)&_ZN7ee665013barEv,
+ (VTBL_ENTRY)&_ZN7ee665013fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665013fooEv,_ZTv0_n12_N7ee665013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6501__7ee66501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd6501__7ee66501[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd6501__7ee66501[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6501__7ee66501[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+static VTT_ENTRY vtt_ee66501[] = {
+ {&(_ZTV7ee66501[3]), 3,9},
+ {&(_tg__ZTV6dd6501__7ee66501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd6501__7ee66501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd6501__7ee66501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6501__7ee66501[3]), 3,4},
+ {&(_ZTV7ee66501[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66501[];
+extern VTBL_ENTRY _ZTV7ee66501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66501[];
+static VTBL_ENTRY alt_thunk_names563[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65013fooEv,_ZThn16_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665013fooEv,_ZTv0_n12_N7ee665013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665013fooEv,_ZThn16_N7ee665013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66501 = { "ee66501", // class name
+ bases_ee66501, 4,
+ &(vtc_ee66501[0]), // expected_vtbl_contents
+ &(vtt_ee66501[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66501),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66501),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names563,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76501 : virtual dd6501 {
+ int e;
+ virtual void foo(); // _ZN7ee765013fooEv
+ virtual void bar(); // _ZN7ee765013barEv
+ ~ee76501(); // tgen
+ ee76501(); // tgen
+};
+//SIG(1 ee76501) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76501 ::foo(){vfunc_called(this, "_ZN7ee765013fooEv");}
+void ee76501 ::bar(){vfunc_called(this, "_ZN7ee765013barEv");}
+ee76501 ::~ee76501(){ note_dtor("ee76501", this);} // tgen
+ee76501 ::ee76501(){ note_ctor("ee76501", this);} // tgen
+
+static void Test_ee76501()
+{
+ extern Class_Descriptor cd_ee76501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76501, buf);
+ ee76501 *dp, &lv = *(dp=new (buf) ee76501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee76501");
+ check_base_class_offset(lv, (bb01*)(cc501*)(dd6501*), ABISELECT(32,20), "ee76501");
+ check_base_class_offset(lv, (cc501*)(dd6501*), ABISELECT(16,8), "ee76501");
+ check_base_class_offset(lv, (dd6501*), ABISELECT(16,8), "ee76501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76501.e");
+ test_class_info(&lv, &cd_ee76501);
+ dp->~ee76501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76501(Test_ee76501, "ee76501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76501C1Ev();
+extern void _ZN7ee76501D1Ev();
+Name_Map name_map_ee76501[] = {
+ NSPAIR(_ZN7ee76501C1Ev),
+ NSPAIR(_ZN7ee76501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd6501;
+extern VTBL_ENTRY _ZTI6dd6501[];
+extern VTBL_ENTRY _ZTV6dd6501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6501[];
+static Base_Class bases_ee76501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76501[];
+extern void _ZN7ee765013fooEv();
+extern void _ZN7ee765013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765013barEv,_ZTv0_n16_N7ee765013barEv)();
+extern void ABISELECT(_ZThn16_N7ee765013barEv,_ZThn8_N7ee765013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765013fooEv,_ZTv0_n20_N7ee765013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765013fooEv,_ZThn8_N7ee765013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765013fooEv,_ZTv0_n12_N7ee765013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee765013fooEv,_ZThn20_N7ee765013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76501[0]),
+ (VTBL_ENTRY)&_ZN7ee765013fooEv,
+ (VTBL_ENTRY)&_ZN7ee765013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765013barEv,_ZTv0_n16_N7ee765013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765013fooEv,_ZTv0_n20_N7ee765013fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765013fooEv,_ZTv0_n12_N7ee765013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76501[];
+extern void _ZN6dd65013barEv();
+extern void _ZN6dd65013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6501__7ee76501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&_ZN6dd65013barEv,
+ (VTBL_ENTRY)&_ZN6dd65013fooEv,
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc5016dd6501__7ee76501[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc5016dd6501__7ee76501[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6501__7ee76501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv),
+};
+static VTT_ENTRY vtt_ee76501[] = {
+ {&(_ZTV7ee76501[4]), 4,17},
+ {&(_ZTV7ee76501[11]), 11,17},
+ {&(_ZTV7ee76501[16]), 16,17},
+ {&(_tg__ZTV6dd6501__7ee76501[3]), 3,5},
+ {&(_tg__ZTV5cc5016dd6501__7ee76501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc5016dd6501__7ee76501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6501__7ee76501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76501[];
+extern VTBL_ENTRY _ZTV7ee76501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76501[];
+static VTBL_ENTRY alt_thunk_names564[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65013fooEv,_ZTv0_n12_N6dd65013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65013fooEv,_ZThn12_N6dd65013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765013fooEv,_ZTv0_n12_N7ee765013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765013fooEv,_ZThn20_N7ee765013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765013fooEv,_ZTv0_n20_N7ee765013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765013fooEv,_ZThn8_N7ee765013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765013barEv,_ZTv0_n16_N7ee765013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765013barEv,_ZThn8_N7ee765013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76501 = { "ee76501", // class name
+ bases_ee76501, 4,
+ &(vtc_ee76501[0]), // expected_vtbl_contents
+ &(vtt_ee76501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76501),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76501),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names564,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7501 : virtual cc501 {
+ int d;
+ virtual void bar(); // _ZN6dd75013barEv
+ virtual void foo(); // _ZN6dd75013fooEv
+ ~dd7501(); // tgen
+ dd7501(); // tgen
+};
+//SIG(-1 dd7501) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7501 ::bar(){vfunc_called(this, "_ZN6dd75013barEv");}
+void dd7501 ::foo(){vfunc_called(this, "_ZN6dd75013fooEv");}
+dd7501 ::~dd7501(){ note_dtor("dd7501", this);} // tgen
+dd7501 ::dd7501(){ note_ctor("dd7501", this);} // tgen
+
+static void Test_dd7501()
+{
+ extern Class_Descriptor cd_dd7501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7501, buf);
+ dd7501 *dp, &lv = *(dp=new (buf) dd7501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd7501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,16), "dd7501");
+ check_base_class_offset(lv, (cc501*), ABISELECT(16,8), "dd7501");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7501.d");
+ test_class_info(&lv, &cd_dd7501);
+ dp->~dd7501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7501(Test_dd7501, "dd7501", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7501C1Ev();
+extern void _ZN6dd7501D1Ev();
+Name_Map name_map_dd7501[] = {
+ NSPAIR(_ZN6dd7501C1Ev),
+ NSPAIR(_ZN6dd7501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+static Base_Class bases_dd7501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, 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 _ZTI6dd7501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__6dd7501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd7501[] = {
+ {&(_ZTV6dd7501[4]), 4,15},
+ {&(_ZTV6dd7501[10]), 10,15},
+ {&(_ZTV6dd7501[14]), 14,15},
+ {&(_tg__ZTV5cc501__6dd7501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__6dd7501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static VTBL_ENTRY alt_thunk_names565[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7501 = { "dd7501", // class name
+ bases_dd7501, 3,
+ &(vtc_dd7501[0]), // expected_vtbl_contents
+ &(vtt_dd7501[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7501),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names565,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07501 : dd7501 {
+ int e;
+ ~ee07501(); // tgen
+ ee07501(); // tgen
+};
+//SIG(1 ee07501) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07501 ::~ee07501(){ note_dtor("ee07501", this);} // tgen
+ee07501 ::ee07501(){ note_ctor("ee07501", this);} // tgen
+
+static void Test_ee07501()
+{
+ extern Class_Descriptor cd_ee07501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07501, buf);
+ ee07501 *dp, &lv = *(dp=new (buf) ee07501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee07501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee07501");
+ check_base_class_offset(lv, (cc501*)(dd7501*), ABISELECT(16,12), "ee07501");
+ check_base_class_offset(lv, (dd7501*), 0, "ee07501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07501.e");
+ test_class_info(&lv, &cd_ee07501);
+ dp->~ee07501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07501(Test_ee07501, "ee07501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07501C1Ev();
+extern void _ZN7ee07501D1Ev();
+Name_Map name_map_ee07501[] = {
+ NSPAIR(_ZN7ee07501C1Ev),
+ NSPAIR(_ZN7ee07501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd7501;
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static Base_Class bases_ee07501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7501__7ee07501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501__7ee07501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7501__7ee07501[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee07501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee07501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee07501[] = {
+ {&(_ZTV7ee07501[4]), 4,15},
+ {&(_tg__ZTV6dd7501__7ee07501[4]), 4,6},
+ {&(_tg__ZTV5cc501__6dd7501__7ee07501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7501__7ee07501[3]), 3,4},
+ {&(_ZTV7ee07501[10]), 10,15},
+ {&(_ZTV7ee07501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee07501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee07501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07501[];
+extern VTBL_ENTRY _ZTV7ee07501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07501[];
+static VTBL_ENTRY alt_thunk_names566[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07501 = { "ee07501", // class name
+ bases_ee07501, 4,
+ &(vtc_ee07501[0]), // expected_vtbl_contents
+ &(vtt_ee07501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names566,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17501 : virtual dd7501 {
+ int e;
+ ~ee17501(); // tgen
+ ee17501(); // tgen
+};
+//SIG(1 ee17501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17501 ::~ee17501(){ note_dtor("ee17501", this);} // tgen
+ee17501 ::ee17501(){ note_ctor("ee17501", this);} // tgen
+
+static void Test_ee17501()
+{
+ extern Class_Descriptor cd_ee17501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17501, buf);
+ ee17501 *dp, &lv = *(dp=new (buf) ee17501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee17501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee17501");
+ check_base_class_offset(lv, (cc501*)(dd7501*), ABISELECT(32,16), "ee17501");
+ check_base_class_offset(lv, (dd7501*), ABISELECT(16,8), "ee17501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17501.e");
+ test_class_info(&lv, &cd_ee17501);
+ dp->~ee17501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17501(Test_ee17501, "ee17501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17501C1Ev();
+extern void _ZN7ee17501D1Ev();
+Name_Map name_map_ee17501[] = {
+ NSPAIR(_ZN7ee17501C1Ev),
+ NSPAIR(_ZN7ee17501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd7501;
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static Base_Class bases_ee17501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7501, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17501[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7501__7ee17501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501__7ee17501[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7501__7ee17501[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee17501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee17501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee17501[] = {
+ {&(_ZTV7ee17501[5]), 5,22},
+ {&(_ZTV7ee17501[11]), 11,22},
+ {&(_ZTV7ee17501[17]), 17,22},
+ {&(_ZTV7ee17501[21]), 21,22},
+ {&(_tg__ZTV6dd7501__7ee17501[4]), 4,6},
+ {&(_tg__ZTV5cc501__6dd7501__7ee17501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7501__7ee17501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee17501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee17501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17501[];
+extern VTBL_ENTRY _ZTV7ee17501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17501[];
+static VTBL_ENTRY alt_thunk_names567[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17501 = { "ee17501", // class name
+ bases_ee17501, 4,
+ &(vtc_ee17501[0]), // expected_vtbl_contents
+ &(vtt_ee17501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17501),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names567,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27501 : dd7501 {
+ int e;
+ virtual void foo(); // _ZN7ee275013fooEv
+ ~ee27501(); // tgen
+ ee27501(); // tgen
+};
+//SIG(1 ee27501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27501 ::foo(){vfunc_called(this, "_ZN7ee275013fooEv");}
+ee27501 ::~ee27501(){ note_dtor("ee27501", this);} // tgen
+ee27501 ::ee27501(){ note_ctor("ee27501", this);} // tgen
+
+static void Test_ee27501()
+{
+ extern Class_Descriptor cd_ee27501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27501, buf);
+ ee27501 *dp, &lv = *(dp=new (buf) ee27501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee27501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee27501");
+ check_base_class_offset(lv, (cc501*)(dd7501*), ABISELECT(16,12), "ee27501");
+ check_base_class_offset(lv, (dd7501*), 0, "ee27501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27501.e");
+ test_class_info(&lv, &cd_ee27501);
+ dp->~ee27501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27501(Test_ee27501, "ee27501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27501C1Ev();
+extern void _ZN7ee27501D1Ev();
+Name_Map name_map_ee27501[] = {
+ NSPAIR(_ZN7ee27501C1Ev),
+ NSPAIR(_ZN7ee27501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd7501;
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static Base_Class bases_ee27501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN7ee275013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275013fooEv,_ZTv0_n12_N7ee275013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee275013fooEv,_ZThn20_N7ee275013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN7ee275013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275013fooEv,_ZTv0_n12_N7ee275013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7501__7ee27501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501__7ee27501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7501__7ee27501[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee27501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee27501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee27501[] = {
+ {&(_ZTV7ee27501[4]), 4,15},
+ {&(_tg__ZTV6dd7501__7ee27501[4]), 4,6},
+ {&(_tg__ZTV5cc501__6dd7501__7ee27501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7501__7ee27501[3]), 3,4},
+ {&(_ZTV7ee27501[10]), 10,15},
+ {&(_ZTV7ee27501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee27501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee27501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27501[];
+extern VTBL_ENTRY _ZTV7ee27501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27501[];
+static VTBL_ENTRY alt_thunk_names568[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275013fooEv,_ZTv0_n12_N7ee275013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee275013fooEv,_ZThn20_N7ee275013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27501 = { "ee27501", // class name
+ bases_ee27501, 4,
+ &(vtc_ee27501[0]), // expected_vtbl_contents
+ &(vtt_ee27501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names568,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37501 : virtual dd7501 {
+ int e;
+ virtual void foo(); // _ZN7ee375013fooEv
+ ~ee37501(); // tgen
+ ee37501(); // tgen
+};
+//SIG(1 ee37501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37501 ::foo(){vfunc_called(this, "_ZN7ee375013fooEv");}
+ee37501 ::~ee37501(){ note_dtor("ee37501", this);} // tgen
+ee37501 ::ee37501(){ note_ctor("ee37501", this);} // tgen
+
+static void Test_ee37501()
+{
+ extern Class_Descriptor cd_ee37501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37501, buf);
+ ee37501 *dp, &lv = *(dp=new (buf) ee37501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee37501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee37501");
+ check_base_class_offset(lv, (cc501*)(dd7501*), ABISELECT(32,16), "ee37501");
+ check_base_class_offset(lv, (dd7501*), ABISELECT(16,8), "ee37501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37501.e");
+ test_class_info(&lv, &cd_ee37501);
+ dp->~ee37501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37501(Test_ee37501, "ee37501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37501C1Ev();
+extern void _ZN7ee37501D1Ev();
+Name_Map name_map_ee37501[] = {
+ NSPAIR(_ZN7ee37501C1Ev),
+ NSPAIR(_ZN7ee37501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd7501;
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static Base_Class bases_ee37501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37501[];
+extern void _ZN7ee375013fooEv();
+extern void _ZN6dd75013barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375013fooEv,_ZTv0_n24_N7ee375013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375013fooEv,_ZThn8_N7ee375013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375013fooEv,_ZTv0_n12_N7ee375013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee375013fooEv,_ZThn24_N7ee375013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37501[0]),
+ (VTBL_ENTRY)&_ZN7ee375013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375013fooEv,_ZTv0_n24_N7ee375013fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375013fooEv,_ZTv0_n12_N7ee375013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7501__7ee37501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501__7ee37501[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7501__7ee37501[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee37501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee37501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee37501[] = {
+ {&(_ZTV7ee37501[5]), 5,23},
+ {&(_ZTV7ee37501[12]), 12,23},
+ {&(_ZTV7ee37501[18]), 18,23},
+ {&(_ZTV7ee37501[22]), 22,23},
+ {&(_tg__ZTV6dd7501__7ee37501[4]), 4,6},
+ {&(_tg__ZTV5cc501__6dd7501__7ee37501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7501__7ee37501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee37501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee37501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37501[];
+extern VTBL_ENTRY _ZTV7ee37501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37501[];
+static VTBL_ENTRY alt_thunk_names569[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375013fooEv,_ZTv0_n12_N7ee375013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee375013fooEv,_ZThn24_N7ee375013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375013fooEv,_ZTv0_n24_N7ee375013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375013fooEv,_ZThn8_N7ee375013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37501 = { "ee37501", // class name
+ bases_ee37501, 4,
+ &(vtc_ee37501[0]), // expected_vtbl_contents
+ &(vtt_ee37501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37501),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names569,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47501 : dd7501 {
+ int e;
+ virtual void bar(); // _ZN7ee475013barEv
+ ~ee47501(); // tgen
+ ee47501(); // tgen
+};
+//SIG(1 ee47501) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47501 ::bar(){vfunc_called(this, "_ZN7ee475013barEv");}
+ee47501 ::~ee47501(){ note_dtor("ee47501", this);} // tgen
+ee47501 ::ee47501(){ note_ctor("ee47501", this);} // tgen
+
+static void Test_ee47501()
+{
+ extern Class_Descriptor cd_ee47501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47501, buf);
+ ee47501 *dp, &lv = *(dp=new (buf) ee47501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee47501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee47501");
+ check_base_class_offset(lv, (cc501*)(dd7501*), ABISELECT(16,12), "ee47501");
+ check_base_class_offset(lv, (dd7501*), 0, "ee47501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47501.e");
+ test_class_info(&lv, &cd_ee47501);
+ dp->~ee47501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47501(Test_ee47501, "ee47501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47501C1Ev();
+extern void _ZN7ee47501D1Ev();
+Name_Map name_map_ee47501[] = {
+ NSPAIR(_ZN7ee47501C1Ev),
+ NSPAIR(_ZN7ee47501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd7501;
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static Base_Class bases_ee47501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47501[];
+extern void _ZN7ee475013barEv();
+extern void _ZN6dd75013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475013barEv,_ZTv0_n16_N7ee475013barEv)();
+extern void ABISELECT(_ZThn16_N7ee475013barEv,_ZThn12_N7ee475013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47501[0]),
+ (VTBL_ENTRY)&_ZN7ee475013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475013barEv,_ZTv0_n16_N7ee475013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7501__7ee47501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501__7ee47501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7501__7ee47501[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee47501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee47501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee47501[] = {
+ {&(_ZTV7ee47501[4]), 4,15},
+ {&(_tg__ZTV6dd7501__7ee47501[4]), 4,6},
+ {&(_tg__ZTV5cc501__6dd7501__7ee47501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7501__7ee47501[3]), 3,4},
+ {&(_ZTV7ee47501[10]), 10,15},
+ {&(_ZTV7ee47501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee47501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee47501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47501[];
+extern VTBL_ENTRY _ZTV7ee47501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47501[];
+static VTBL_ENTRY alt_thunk_names570[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475013barEv,_ZTv0_n16_N7ee475013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475013barEv,_ZThn12_N7ee475013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47501 = { "ee47501", // class name
+ bases_ee47501, 4,
+ &(vtc_ee47501[0]), // expected_vtbl_contents
+ &(vtt_ee47501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names570,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57501 : virtual dd7501 {
+ int e;
+ virtual void bar(); // _ZN7ee575013barEv
+ ~ee57501(); // tgen
+ ee57501(); // tgen
+};
+//SIG(1 ee57501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57501 ::bar(){vfunc_called(this, "_ZN7ee575013barEv");}
+ee57501 ::~ee57501(){ note_dtor("ee57501", this);} // tgen
+ee57501 ::ee57501(){ note_ctor("ee57501", this);} // tgen
+
+static void Test_ee57501()
+{
+ extern Class_Descriptor cd_ee57501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57501, buf);
+ ee57501 *dp, &lv = *(dp=new (buf) ee57501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee57501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee57501");
+ check_base_class_offset(lv, (cc501*)(dd7501*), ABISELECT(32,16), "ee57501");
+ check_base_class_offset(lv, (dd7501*), ABISELECT(16,8), "ee57501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57501.e");
+ test_class_info(&lv, &cd_ee57501);
+ dp->~ee57501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57501(Test_ee57501, "ee57501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57501C1Ev();
+extern void _ZN7ee57501D1Ev();
+Name_Map name_map_ee57501[] = {
+ NSPAIR(_ZN7ee57501C1Ev),
+ NSPAIR(_ZN7ee57501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd7501;
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static Base_Class bases_ee57501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7501, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57501[];
+extern void _ZN7ee575013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575013barEv,_ZTv0_n20_N7ee575013barEv)();
+extern void ABISELECT(_ZThn16_N7ee575013barEv,_ZThn8_N7ee575013barEv)() __attribute__((weak));
+extern void _ZN6dd75013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575013barEv,_ZTv0_n16_N7ee575013barEv)();
+extern void ABISELECT(_ZThn32_N7ee575013barEv,_ZThn16_N7ee575013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57501[0]),
+ (VTBL_ENTRY)&_ZN7ee575013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575013barEv,_ZTv0_n20_N7ee575013barEv),
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575013barEv,_ZTv0_n16_N7ee575013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7501__7ee57501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501__7ee57501[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7501__7ee57501[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee57501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee57501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee57501[] = {
+ {&(_ZTV7ee57501[5]), 5,23},
+ {&(_ZTV7ee57501[12]), 12,23},
+ {&(_ZTV7ee57501[18]), 18,23},
+ {&(_ZTV7ee57501[22]), 22,23},
+ {&(_tg__ZTV6dd7501__7ee57501[4]), 4,6},
+ {&(_tg__ZTV5cc501__6dd7501__7ee57501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7501__7ee57501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee57501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee57501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57501[];
+extern VTBL_ENTRY _ZTV7ee57501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57501[];
+static VTBL_ENTRY alt_thunk_names571[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575013barEv,_ZTv0_n16_N7ee575013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575013barEv,_ZThn16_N7ee575013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575013barEv,_ZTv0_n20_N7ee575013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575013barEv,_ZThn8_N7ee575013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57501 = { "ee57501", // class name
+ bases_ee57501, 4,
+ &(vtc_ee57501[0]), // expected_vtbl_contents
+ &(vtt_ee57501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57501),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names571,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67501 : dd7501 {
+ int e;
+ virtual void foo(); // _ZN7ee675013fooEv
+ virtual void bar(); // _ZN7ee675013barEv
+ ~ee67501(); // tgen
+ ee67501(); // tgen
+};
+//SIG(1 ee67501) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67501 ::foo(){vfunc_called(this, "_ZN7ee675013fooEv");}
+void ee67501 ::bar(){vfunc_called(this, "_ZN7ee675013barEv");}
+ee67501 ::~ee67501(){ note_dtor("ee67501", this);} // tgen
+ee67501 ::ee67501(){ note_ctor("ee67501", this);} // tgen
+
+static void Test_ee67501()
+{
+ extern Class_Descriptor cd_ee67501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67501, buf);
+ ee67501 *dp, &lv = *(dp=new (buf) ee67501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee67501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(32,20), "ee67501");
+ check_base_class_offset(lv, (cc501*)(dd7501*), ABISELECT(16,12), "ee67501");
+ check_base_class_offset(lv, (dd7501*), 0, "ee67501");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67501.e");
+ test_class_info(&lv, &cd_ee67501);
+ dp->~ee67501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67501(Test_ee67501, "ee67501", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67501C1Ev();
+extern void _ZN7ee67501D1Ev();
+Name_Map name_map_ee67501[] = {
+ NSPAIR(_ZN7ee67501C1Ev),
+ NSPAIR(_ZN7ee67501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd7501;
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static Base_Class bases_ee67501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7501, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67501[];
+extern void _ZN7ee675013barEv();
+extern void _ZN7ee675013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675013barEv,_ZTv0_n16_N7ee675013barEv)();
+extern void ABISELECT(_ZThn16_N7ee675013barEv,_ZThn12_N7ee675013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675013fooEv,_ZTv0_n12_N7ee675013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee675013fooEv,_ZThn20_N7ee675013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67501[0]),
+ (VTBL_ENTRY)&_ZN7ee675013barEv,
+ (VTBL_ENTRY)&_ZN7ee675013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675013barEv,_ZTv0_n16_N7ee675013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675013fooEv,_ZTv0_n12_N7ee675013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7501__7ee67501[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501__7ee67501[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7501__7ee67501[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee67501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee67501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee67501[] = {
+ {&(_ZTV7ee67501[4]), 4,15},
+ {&(_tg__ZTV6dd7501__7ee67501[4]), 4,6},
+ {&(_tg__ZTV5cc501__6dd7501__7ee67501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7501__7ee67501[3]), 3,4},
+ {&(_ZTV7ee67501[10]), 10,15},
+ {&(_ZTV7ee67501[14]), 14,15},
+ {&(_tg__ZTV5cc501__7ee67501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee67501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67501[];
+extern VTBL_ENTRY _ZTV7ee67501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67501[];
+static VTBL_ENTRY alt_thunk_names572[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn20_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn12_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675013fooEv,_ZTv0_n12_N7ee675013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675013fooEv,_ZThn20_N7ee675013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675013barEv,_ZTv0_n16_N7ee675013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675013barEv,_ZThn12_N7ee675013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67501 = { "ee67501", // class name
+ bases_ee67501, 4,
+ &(vtc_ee67501[0]), // expected_vtbl_contents
+ &(vtt_ee67501[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67501),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67501),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67501),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names572,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77501 : virtual dd7501 {
+ int e;
+ virtual void foo(); // _ZN7ee775013fooEv
+ virtual void bar(); // _ZN7ee775013barEv
+ ~ee77501(); // tgen
+ ee77501(); // tgen
+};
+//SIG(1 ee77501) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77501 ::foo(){vfunc_called(this, "_ZN7ee775013fooEv");}
+void ee77501 ::bar(){vfunc_called(this, "_ZN7ee775013barEv");}
+ee77501 ::~ee77501(){ note_dtor("ee77501", this);} // tgen
+ee77501 ::ee77501(){ note_ctor("ee77501", this);} // tgen
+
+static void Test_ee77501()
+{
+ extern Class_Descriptor cd_ee77501;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77501, buf);
+ ee77501 *dp, &lv = *(dp=new (buf) ee77501());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77501)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77501)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee77501");
+ check_base_class_offset(lv, (bb01*)(cc501*), ABISELECT(48,24), "ee77501");
+ check_base_class_offset(lv, (cc501*)(dd7501*), ABISELECT(32,16), "ee77501");
+ check_base_class_offset(lv, (dd7501*), ABISELECT(16,8), "ee77501");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77501.e");
+ test_class_info(&lv, &cd_ee77501);
+ dp->~ee77501();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77501(Test_ee77501, "ee77501", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77501C1Ev();
+extern void _ZN7ee77501D1Ev();
+Name_Map name_map_ee77501[] = {
+ NSPAIR(_ZN7ee77501C1Ev),
+ NSPAIR(_ZN7ee77501D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc501;
+extern VTBL_ENTRY _ZTI5cc501[];
+extern VTBL_ENTRY _ZTV5cc501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc501[];
+extern Class_Descriptor cd_dd7501;
+extern VTBL_ENTRY _ZTI6dd7501[];
+extern VTBL_ENTRY _ZTV6dd7501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7501[];
+static Base_Class bases_ee77501[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc501, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7501, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77501[];
+extern void _ZN7ee775013fooEv();
+extern void _ZN7ee775013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775013barEv,_ZTv0_n20_N7ee775013barEv)();
+extern void ABISELECT(_ZThn16_N7ee775013barEv,_ZThn8_N7ee775013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775013fooEv,_ZTv0_n24_N7ee775013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775013fooEv,_ZThn8_N7ee775013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775013barEv,_ZTv0_n16_N7ee775013barEv)();
+extern void ABISELECT(_ZThn32_N7ee775013barEv,_ZThn16_N7ee775013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775013fooEv,_ZTv0_n12_N7ee775013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee775013fooEv,_ZThn24_N7ee775013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77501[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77501[0]),
+ (VTBL_ENTRY)&_ZN7ee775013fooEv,
+ (VTBL_ENTRY)&_ZN7ee775013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775013barEv,_ZTv0_n20_N7ee775013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775013fooEv,_ZTv0_n24_N7ee775013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775013barEv,_ZTv0_n16_N7ee775013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775013fooEv,_ZTv0_n12_N7ee775013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77501[];
+extern void _ZN6dd75013barEv();
+extern void _ZN6dd75013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7501__7ee77501[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&_ZN6dd75013barEv,
+ (VTBL_ENTRY)&_ZN6dd75013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv)();
+extern void ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc501__6dd7501__7ee77501[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7501__7ee77501[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7501[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv),
+};
+extern void _ZN5cc5013barEv();
+static VTBL_ENTRY _tg__ZTV5cc501__7ee77501[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN5cc5013barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc501__7ee77501[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc501[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee77501[] = {
+ {&(_ZTV7ee77501[5]), 5,24},
+ {&(_ZTV7ee77501[13]), 13,24},
+ {&(_ZTV7ee77501[19]), 19,24},
+ {&(_ZTV7ee77501[23]), 23,24},
+ {&(_tg__ZTV6dd7501__7ee77501[4]), 4,6},
+ {&(_tg__ZTV5cc501__6dd7501__7ee77501[4]), 4,5},
+ {&(_tg__ZTV3aa14bb01__6dd7501__7ee77501[3]), 3,4},
+ {&(_tg__ZTV5cc501__7ee77501[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__5cc501__7ee77501[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77501[];
+extern VTBL_ENTRY _ZTV7ee77501[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77501[];
+static VTBL_ENTRY alt_thunk_names573[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75013fooEv,_ZTv0_n12_N6dd75013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75013fooEv,_ZThn16_N6dd75013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75013barEv,_ZTv0_n16_N6dd75013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75013barEv,_ZThn8_N6dd75013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775013fooEv,_ZTv0_n12_N7ee775013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775013fooEv,_ZThn24_N7ee775013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775013barEv,_ZTv0_n16_N7ee775013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775013barEv,_ZThn16_N7ee775013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775013fooEv,_ZTv0_n24_N7ee775013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775013fooEv,_ZThn8_N7ee775013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775013barEv,_ZTv0_n20_N7ee775013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775013barEv,_ZThn8_N7ee775013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77501 = { "ee77501", // class name
+ bases_ee77501, 4,
+ &(vtc_ee77501[0]), // expected_vtbl_contents
+ &(vtt_ee77501[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77501),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77501),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77501),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names573,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc601 : bb01 {
+ int c;
+ virtual void foo(); // _ZN5cc6013fooEv
+ virtual void bar(); // _ZN5cc6013barEv
+ ~cc601(); // tgen
+ cc601(); // tgen
+};
+//SIG(-1 cc601) C1{ BC2{ BC3{ v1 Fi} Fi} v1 v2 Fi}
+
+
+void cc601 ::foo(){vfunc_called(this, "_ZN5cc6013fooEv");}
+void cc601 ::bar(){vfunc_called(this, "_ZN5cc6013barEv");}
+cc601 ::~cc601(){ note_dtor("cc601", this);} // tgen
+cc601 ::cc601(){ note_ctor("cc601", this);} // tgen
+
+static void Test_cc601()
+{
+ extern Class_Descriptor cd_cc601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc601, buf);
+ cc601 *dp, &lv = *(dp=new (buf) cc601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc601)");
+ check_base_class_offset(lv, (aa1*)(bb01*), 0, "cc601");
+ check_base_class_offset(lv, (bb01*), 0, "cc601");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc601.c");
+ test_class_info(&lv, &cd_cc601);
+ dp->~cc601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc601(Test_cc601, "cc601", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc601C1Ev();
+extern void _ZN5cc601D1Ev();
+Name_Map name_map_cc601[] = {
+ NSPAIR(_ZN5cc601C1Ev),
+ NSPAIR(_ZN5cc601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+static Base_Class bases_cc601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_cc601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+Class_Descriptor cd_cc601 = { "cc601", // class name
+ bases_cc601, 2,
+ &(vtc_cc601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0601 : cc601 {
+ int d;
+ ~dd0601(); // tgen
+ dd0601(); // tgen
+};
+//SIG(-1 dd0601) C1{ BC2{ BC3{ BC4{ v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd0601 ::~dd0601(){ note_dtor("dd0601", this);} // tgen
+dd0601 ::dd0601(){ note_ctor("dd0601", this);} // tgen
+
+static void Test_dd0601()
+{
+ extern Class_Descriptor cd_dd0601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0601, buf);
+ dd0601 *dp, &lv = *(dp=new (buf) dd0601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), 0, "dd0601");
+ check_base_class_offset(lv, (bb01*)(cc601*), 0, "dd0601");
+ check_base_class_offset(lv, (cc601*), 0, "dd0601");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0601.d");
+ test_class_info(&lv, &cd_dd0601);
+ dp->~dd0601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0601(Test_dd0601, "dd0601", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0601C1Ev();
+extern void _ZN6dd0601D1Ev();
+Name_Map name_map_dd0601[] = {
+ NSPAIR(_ZN6dd0601C1Ev),
+ NSPAIR(_ZN6dd0601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+static Base_Class bases_dd0601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_dd0601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+Class_Descriptor cd_dd0601 = { "dd0601", // class name
+ bases_dd0601, 3,
+ &(vtc_dd0601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00601 : dd0601 {
+ int e;
+ ~ee00601(); // tgen
+ ee00601(); // tgen
+};
+//SIG(1 ee00601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00601 ::~ee00601(){ note_dtor("ee00601", this);} // tgen
+ee00601 ::ee00601(){ note_ctor("ee00601", this);} // tgen
+
+static void Test_ee00601()
+{
+ extern Class_Descriptor cd_ee00601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00601, buf);
+ ee00601 *dp, &lv = *(dp=new (buf) ee00601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd0601*), 0, "ee00601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd0601*), 0, "ee00601");
+ check_base_class_offset(lv, (cc601*)(dd0601*), 0, "ee00601");
+ check_base_class_offset(lv, (dd0601*), 0, "ee00601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00601.e");
+ test_class_info(&lv, &cd_ee00601);
+ dp->~ee00601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00601(Test_ee00601, "ee00601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00601C1Ev();
+extern void _ZN7ee00601D1Ev();
+Name_Map name_map_ee00601[] = {
+ NSPAIR(_ZN7ee00601C1Ev),
+ NSPAIR(_ZN7ee00601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd0601;
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+static Base_Class bases_ee00601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee00601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00601[];
+extern VTBL_ENTRY _ZTV7ee00601[];
+Class_Descriptor cd_ee00601 = { "ee00601", // class name
+ bases_ee00601, 4,
+ &(vtc_ee00601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10601 : virtual dd0601 {
+ int e;
+ ~ee10601(); // tgen
+ ee10601(); // tgen
+};
+//SIG(1 ee10601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10601 ::~ee10601(){ note_dtor("ee10601", this);} // tgen
+ee10601 ::ee10601(){ note_ctor("ee10601", this);} // tgen
+
+static void Test_ee10601()
+{
+ extern Class_Descriptor cd_ee10601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10601, buf);
+ ee10601 *dp, &lv = *(dp=new (buf) ee10601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd0601*), ABISELECT(16,8), "ee10601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd0601*), ABISELECT(16,8), "ee10601");
+ check_base_class_offset(lv, (cc601*)(dd0601*), ABISELECT(16,8), "ee10601");
+ check_base_class_offset(lv, (dd0601*), ABISELECT(16,8), "ee10601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10601.e");
+ test_class_info(&lv, &cd_ee10601);
+ dp->~ee10601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10601(Test_ee10601, "ee10601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10601C1Ev();
+extern void _ZN7ee10601D1Ev();
+Name_Map name_map_ee10601[] = {
+ NSPAIR(_ZN7ee10601C1Ev),
+ NSPAIR(_ZN7ee10601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd0601;
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+static Base_Class bases_ee10601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee10601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10601[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10601[];
+static VTT_ENTRY vtt_ee10601[] = {
+ {&(_ZTV7ee10601[3]), 3,9},
+ {&(_ZTV7ee10601[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10601[];
+extern VTBL_ENTRY _ZTV7ee10601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10601[];
+Class_Descriptor cd_ee10601 = { "ee10601", // class name
+ bases_ee10601, 4,
+ &(vtc_ee10601[0]), // expected_vtbl_contents
+ &(vtt_ee10601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10601),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20601 : dd0601 {
+ int e;
+ virtual void foo(); // _ZN7ee206013fooEv
+ ~ee20601(); // tgen
+ ee20601(); // tgen
+};
+//SIG(1 ee20601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20601 ::foo(){vfunc_called(this, "_ZN7ee206013fooEv");}
+ee20601 ::~ee20601(){ note_dtor("ee20601", this);} // tgen
+ee20601 ::ee20601(){ note_ctor("ee20601", this);} // tgen
+
+static void Test_ee20601()
+{
+ extern Class_Descriptor cd_ee20601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20601, buf);
+ ee20601 *dp, &lv = *(dp=new (buf) ee20601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd0601*), 0, "ee20601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd0601*), 0, "ee20601");
+ check_base_class_offset(lv, (cc601*)(dd0601*), 0, "ee20601");
+ check_base_class_offset(lv, (dd0601*), 0, "ee20601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20601.e");
+ test_class_info(&lv, &cd_ee20601);
+ dp->~ee20601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20601(Test_ee20601, "ee20601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20601C1Ev();
+extern void _ZN7ee20601D1Ev();
+Name_Map name_map_ee20601[] = {
+ NSPAIR(_ZN7ee20601C1Ev),
+ NSPAIR(_ZN7ee20601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd0601;
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+static Base_Class bases_ee20601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20601[];
+extern void _ZN7ee206013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee20601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20601[0]),
+ (VTBL_ENTRY)&_ZN7ee206013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20601[];
+extern VTBL_ENTRY _ZTV7ee20601[];
+Class_Descriptor cd_ee20601 = { "ee20601", // class name
+ bases_ee20601, 4,
+ &(vtc_ee20601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30601 : virtual dd0601 {
+ int e;
+ virtual void foo(); // _ZN7ee306013fooEv
+ ~ee30601(); // tgen
+ ee30601(); // tgen
+};
+//SIG(1 ee30601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30601 ::foo(){vfunc_called(this, "_ZN7ee306013fooEv");}
+ee30601 ::~ee30601(){ note_dtor("ee30601", this);} // tgen
+ee30601 ::ee30601(){ note_ctor("ee30601", this);} // tgen
+
+static void Test_ee30601()
+{
+ extern Class_Descriptor cd_ee30601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30601, buf);
+ ee30601 *dp, &lv = *(dp=new (buf) ee30601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd0601*), ABISELECT(16,8), "ee30601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd0601*), ABISELECT(16,8), "ee30601");
+ check_base_class_offset(lv, (cc601*)(dd0601*), ABISELECT(16,8), "ee30601");
+ check_base_class_offset(lv, (dd0601*), ABISELECT(16,8), "ee30601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30601.e");
+ test_class_info(&lv, &cd_ee30601);
+ dp->~ee30601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30601(Test_ee30601, "ee30601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30601C1Ev();
+extern void _ZN7ee30601D1Ev();
+Name_Map name_map_ee30601[] = {
+ NSPAIR(_ZN7ee30601C1Ev),
+ NSPAIR(_ZN7ee30601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd0601;
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+static Base_Class bases_ee30601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30601[];
+extern void _ZN7ee306013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee306013fooEv,_ZTv0_n12_N7ee306013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306013fooEv,_ZThn8_N7ee306013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee30601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30601[0]),
+ (VTBL_ENTRY)&_ZN7ee306013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306013fooEv,_ZTv0_n12_N7ee306013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30601[];
+static VTT_ENTRY vtt_ee30601[] = {
+ {&(_ZTV7ee30601[3]), 3,10},
+ {&(_ZTV7ee30601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30601[];
+extern VTBL_ENTRY _ZTV7ee30601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30601[];
+static VTBL_ENTRY alt_thunk_names574[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306013fooEv,_ZTv0_n12_N7ee306013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306013fooEv,_ZThn8_N7ee306013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30601 = { "ee30601", // class name
+ bases_ee30601, 4,
+ &(vtc_ee30601[0]), // expected_vtbl_contents
+ &(vtt_ee30601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names574,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40601 : dd0601 {
+ int e;
+ virtual void bar(); // _ZN7ee406013barEv
+ ~ee40601(); // tgen
+ ee40601(); // tgen
+};
+//SIG(1 ee40601) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40601 ::bar(){vfunc_called(this, "_ZN7ee406013barEv");}
+ee40601 ::~ee40601(){ note_dtor("ee40601", this);} // tgen
+ee40601 ::ee40601(){ note_ctor("ee40601", this);} // tgen
+
+static void Test_ee40601()
+{
+ extern Class_Descriptor cd_ee40601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40601, buf);
+ ee40601 *dp, &lv = *(dp=new (buf) ee40601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd0601*), 0, "ee40601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd0601*), 0, "ee40601");
+ check_base_class_offset(lv, (cc601*)(dd0601*), 0, "ee40601");
+ check_base_class_offset(lv, (dd0601*), 0, "ee40601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40601.e");
+ test_class_info(&lv, &cd_ee40601);
+ dp->~ee40601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40601(Test_ee40601, "ee40601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40601C1Ev();
+extern void _ZN7ee40601D1Ev();
+Name_Map name_map_ee40601[] = {
+ NSPAIR(_ZN7ee40601C1Ev),
+ NSPAIR(_ZN7ee40601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd0601;
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+static Base_Class bases_ee40601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN7ee406013barEv();
+static VTBL_ENTRY vtc_ee40601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN7ee406013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40601[];
+extern VTBL_ENTRY _ZTV7ee40601[];
+Class_Descriptor cd_ee40601 = { "ee40601", // class name
+ bases_ee40601, 4,
+ &(vtc_ee40601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50601 : virtual dd0601 {
+ int e;
+ virtual void bar(); // _ZN7ee506013barEv
+ ~ee50601(); // tgen
+ ee50601(); // tgen
+};
+//SIG(1 ee50601) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50601 ::bar(){vfunc_called(this, "_ZN7ee506013barEv");}
+ee50601 ::~ee50601(){ note_dtor("ee50601", this);} // tgen
+ee50601 ::ee50601(){ note_ctor("ee50601", this);} // tgen
+
+static void Test_ee50601()
+{
+ extern Class_Descriptor cd_ee50601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50601, buf);
+ ee50601 *dp, &lv = *(dp=new (buf) ee50601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd0601*), ABISELECT(16,8), "ee50601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd0601*), ABISELECT(16,8), "ee50601");
+ check_base_class_offset(lv, (cc601*)(dd0601*), ABISELECT(16,8), "ee50601");
+ check_base_class_offset(lv, (dd0601*), ABISELECT(16,8), "ee50601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50601.e");
+ test_class_info(&lv, &cd_ee50601);
+ dp->~ee50601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50601(Test_ee50601, "ee50601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50601C1Ev();
+extern void _ZN7ee50601D1Ev();
+Name_Map name_map_ee50601[] = {
+ NSPAIR(_ZN7ee50601C1Ev),
+ NSPAIR(_ZN7ee50601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd0601;
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+static Base_Class bases_ee50601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50601[];
+extern void _ZN7ee506013barEv();
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506013barEv,_ZTv0_n16_N7ee506013barEv)();
+extern void ABISELECT(_ZThn16_N7ee506013barEv,_ZThn8_N7ee506013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50601[0]),
+ (VTBL_ENTRY)&_ZN7ee506013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506013barEv,_ZTv0_n16_N7ee506013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50601[];
+static VTT_ENTRY vtt_ee50601[] = {
+ {&(_ZTV7ee50601[3]), 3,10},
+ {&(_ZTV7ee50601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50601[];
+extern VTBL_ENTRY _ZTV7ee50601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50601[];
+static VTBL_ENTRY alt_thunk_names575[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506013barEv,_ZTv0_n16_N7ee506013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506013barEv,_ZThn8_N7ee506013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50601 = { "ee50601", // class name
+ bases_ee50601, 4,
+ &(vtc_ee50601[0]), // expected_vtbl_contents
+ &(vtt_ee50601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names575,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60601 : dd0601 {
+ int e;
+ virtual void foo(); // _ZN7ee606013fooEv
+ virtual void bar(); // _ZN7ee606013barEv
+ ~ee60601(); // tgen
+ ee60601(); // tgen
+};
+//SIG(1 ee60601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60601 ::foo(){vfunc_called(this, "_ZN7ee606013fooEv");}
+void ee60601 ::bar(){vfunc_called(this, "_ZN7ee606013barEv");}
+ee60601 ::~ee60601(){ note_dtor("ee60601", this);} // tgen
+ee60601 ::ee60601(){ note_ctor("ee60601", this);} // tgen
+
+static void Test_ee60601()
+{
+ extern Class_Descriptor cd_ee60601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60601, buf);
+ ee60601 *dp, &lv = *(dp=new (buf) ee60601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd0601*), 0, "ee60601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd0601*), 0, "ee60601");
+ check_base_class_offset(lv, (cc601*)(dd0601*), 0, "ee60601");
+ check_base_class_offset(lv, (dd0601*), 0, "ee60601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60601.e");
+ test_class_info(&lv, &cd_ee60601);
+ dp->~ee60601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60601(Test_ee60601, "ee60601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60601C1Ev();
+extern void _ZN7ee60601D1Ev();
+Name_Map name_map_ee60601[] = {
+ NSPAIR(_ZN7ee60601C1Ev),
+ NSPAIR(_ZN7ee60601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd0601;
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+static Base_Class bases_ee60601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60601[];
+extern void _ZN7ee606013fooEv();
+extern void _ZN7ee606013barEv();
+static VTBL_ENTRY vtc_ee60601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60601[0]),
+ (VTBL_ENTRY)&_ZN7ee606013fooEv,
+ (VTBL_ENTRY)&_ZN7ee606013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60601[];
+extern VTBL_ENTRY _ZTV7ee60601[];
+Class_Descriptor cd_ee60601 = { "ee60601", // class name
+ bases_ee60601, 4,
+ &(vtc_ee60601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70601 : virtual dd0601 {
+ int e;
+ virtual void foo(); // _ZN7ee706013fooEv
+ virtual void bar(); // _ZN7ee706013barEv
+ ~ee70601(); // tgen
+ ee70601(); // tgen
+};
+//SIG(1 ee70601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70601 ::foo(){vfunc_called(this, "_ZN7ee706013fooEv");}
+void ee70601 ::bar(){vfunc_called(this, "_ZN7ee706013barEv");}
+ee70601 ::~ee70601(){ note_dtor("ee70601", this);} // tgen
+ee70601 ::ee70601(){ note_ctor("ee70601", this);} // tgen
+
+static void Test_ee70601()
+{
+ extern Class_Descriptor cd_ee70601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70601, buf);
+ ee70601 *dp, &lv = *(dp=new (buf) ee70601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd0601*), ABISELECT(16,8), "ee70601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd0601*), ABISELECT(16,8), "ee70601");
+ check_base_class_offset(lv, (cc601*)(dd0601*), ABISELECT(16,8), "ee70601");
+ check_base_class_offset(lv, (dd0601*), ABISELECT(16,8), "ee70601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70601.e");
+ test_class_info(&lv, &cd_ee70601);
+ dp->~ee70601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70601(Test_ee70601, "ee70601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70601C1Ev();
+extern void _ZN7ee70601D1Ev();
+Name_Map name_map_ee70601[] = {
+ NSPAIR(_ZN7ee70601C1Ev),
+ NSPAIR(_ZN7ee70601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd0601;
+extern VTBL_ENTRY _ZTI6dd0601[];
+extern VTBL_ENTRY _ZTV6dd0601[];
+static Base_Class bases_ee70601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70601[];
+extern void _ZN7ee706013fooEv();
+extern void _ZN7ee706013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706013fooEv,_ZTv0_n12_N7ee706013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706013fooEv,_ZThn8_N7ee706013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706013barEv,_ZTv0_n16_N7ee706013barEv)();
+extern void ABISELECT(_ZThn16_N7ee706013barEv,_ZThn8_N7ee706013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70601[0]),
+ (VTBL_ENTRY)&_ZN7ee706013fooEv,
+ (VTBL_ENTRY)&_ZN7ee706013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706013fooEv,_ZTv0_n12_N7ee706013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706013barEv,_ZTv0_n16_N7ee706013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70601[];
+static VTT_ENTRY vtt_ee70601[] = {
+ {&(_ZTV7ee70601[3]), 3,11},
+ {&(_ZTV7ee70601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70601[];
+extern VTBL_ENTRY _ZTV7ee70601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70601[];
+static VTBL_ENTRY alt_thunk_names576[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706013barEv,_ZTv0_n16_N7ee706013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706013barEv,_ZThn8_N7ee706013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706013fooEv,_ZTv0_n12_N7ee706013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706013fooEv,_ZThn8_N7ee706013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70601 = { "ee70601", // class name
+ bases_ee70601, 4,
+ &(vtc_ee70601[0]), // expected_vtbl_contents
+ &(vtt_ee70601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names576,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1601 : virtual cc601 {
+ int d;
+ ~dd1601(); // tgen
+ dd1601(); // tgen
+};
+//SIG(-1 dd1601) C1{ VBC2{ BC3{ BC4{ v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd1601 ::~dd1601(){ note_dtor("dd1601", this);} // tgen
+dd1601 ::dd1601(){ note_ctor("dd1601", this);} // tgen
+
+static void Test_dd1601()
+{
+ extern Class_Descriptor cd_dd1601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1601, buf);
+ dd1601 *dp, &lv = *(dp=new (buf) dd1601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,8), "dd1601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,8), "dd1601");
+ check_base_class_offset(lv, (cc601*), ABISELECT(16,8), "dd1601");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1601.d");
+ test_class_info(&lv, &cd_dd1601);
+ dp->~dd1601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1601(Test_dd1601, "dd1601", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1601C1Ev();
+extern void _ZN6dd1601D1Ev();
+Name_Map name_map_dd1601[] = {
+ NSPAIR(_ZN6dd1601C1Ev),
+ NSPAIR(_ZN6dd1601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+static Base_Class bases_dd1601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_dd1601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1601[];
+static VTT_ENTRY vtt_dd1601[] = {
+ {&(_ZTV6dd1601[3]), 3,9},
+ {&(_ZTV6dd1601[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+Class_Descriptor cd_dd1601 = { "dd1601", // class name
+ bases_dd1601, 3,
+ &(vtc_dd1601[0]), // expected_vtbl_contents
+ &(vtt_dd1601[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1601),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1601),2, //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 ee01601 : dd1601 {
+ int e;
+ ~ee01601(); // tgen
+ ee01601(); // tgen
+};
+//SIG(1 ee01601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01601 ::~ee01601(){ note_dtor("ee01601", this);} // tgen
+ee01601 ::ee01601(){ note_ctor("ee01601", this);} // tgen
+
+static void Test_ee01601()
+{
+ extern Class_Descriptor cd_ee01601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01601, buf);
+ ee01601 *dp, &lv = *(dp=new (buf) ee01601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee01601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee01601");
+ check_base_class_offset(lv, (cc601*)(dd1601*), ABISELECT(16,12), "ee01601");
+ check_base_class_offset(lv, (dd1601*), 0, "ee01601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01601.e");
+ test_class_info(&lv, &cd_ee01601);
+ dp->~ee01601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01601(Test_ee01601, "ee01601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01601C1Ev();
+extern void _ZN7ee01601D1Ev();
+Name_Map name_map_ee01601[] = {
+ NSPAIR(_ZN7ee01601C1Ev),
+ NSPAIR(_ZN7ee01601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd1601;
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+static Base_Class bases_ee01601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee01601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01601[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01601[];
+static VTBL_ENTRY _tg__ZTV6dd1601__7ee01601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+};
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd1601__7ee01601[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee01601[] = {
+ {&(_ZTV7ee01601[3]), 3,9},
+ {&(_tg__ZTV6dd1601__7ee01601[3]), 3,3},
+ {&(_tg__ZTV5cc601__6dd1601__7ee01601[4]), 4,6},
+ {&(_ZTV7ee01601[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01601[];
+extern VTBL_ENTRY _ZTV7ee01601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01601[];
+Class_Descriptor cd_ee01601 = { "ee01601", // class name
+ bases_ee01601, 4,
+ &(vtc_ee01601[0]), // expected_vtbl_contents
+ &(vtt_ee01601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01601),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11601 : virtual dd1601 {
+ int e;
+ ~ee11601(); // tgen
+ ee11601(); // tgen
+};
+//SIG(1 ee11601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11601 ::~ee11601(){ note_dtor("ee11601", this);} // tgen
+ee11601 ::ee11601(){ note_ctor("ee11601", this);} // tgen
+
+static void Test_ee11601()
+{
+ extern Class_Descriptor cd_ee11601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11601, buf);
+ ee11601 *dp, &lv = *(dp=new (buf) ee11601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee11601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee11601");
+ check_base_class_offset(lv, (cc601*)(dd1601*), ABISELECT(32,16), "ee11601");
+ check_base_class_offset(lv, (dd1601*), ABISELECT(16,8), "ee11601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11601.e");
+ test_class_info(&lv, &cd_ee11601);
+ dp->~ee11601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11601(Test_ee11601, "ee11601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11601C1Ev();
+extern void _ZN7ee11601D1Ev();
+Name_Map name_map_ee11601[] = {
+ NSPAIR(_ZN7ee11601C1Ev),
+ NSPAIR(_ZN7ee11601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd1601;
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+static Base_Class bases_ee11601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee11601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11601[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11601[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11601[];
+static VTBL_ENTRY _tg__ZTV6dd1601__7ee11601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+};
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd1601__7ee11601[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee11601[] = {
+ {&(_ZTV7ee11601[4]), 4,13},
+ {&(_ZTV7ee11601[7]), 7,13},
+ {&(_ZTV7ee11601[11]), 11,13},
+ {&(_tg__ZTV6dd1601__7ee11601[3]), 3,3},
+ {&(_tg__ZTV5cc601__6dd1601__7ee11601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11601[];
+extern VTBL_ENTRY _ZTV7ee11601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11601[];
+Class_Descriptor cd_ee11601 = { "ee11601", // class name
+ bases_ee11601, 4,
+ &(vtc_ee11601[0]), // expected_vtbl_contents
+ &(vtt_ee11601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11601),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21601 : dd1601 {
+ int e;
+ virtual void foo(); // _ZN7ee216013fooEv
+ ~ee21601(); // tgen
+ ee21601(); // tgen
+};
+//SIG(1 ee21601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21601 ::foo(){vfunc_called(this, "_ZN7ee216013fooEv");}
+ee21601 ::~ee21601(){ note_dtor("ee21601", this);} // tgen
+ee21601 ::ee21601(){ note_ctor("ee21601", this);} // tgen
+
+static void Test_ee21601()
+{
+ extern Class_Descriptor cd_ee21601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21601, buf);
+ ee21601 *dp, &lv = *(dp=new (buf) ee21601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee21601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee21601");
+ check_base_class_offset(lv, (cc601*)(dd1601*), ABISELECT(16,12), "ee21601");
+ check_base_class_offset(lv, (dd1601*), 0, "ee21601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21601.e");
+ test_class_info(&lv, &cd_ee21601);
+ dp->~ee21601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21601(Test_ee21601, "ee21601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21601C1Ev();
+extern void _ZN7ee21601D1Ev();
+Name_Map name_map_ee21601[] = {
+ NSPAIR(_ZN7ee21601C1Ev),
+ NSPAIR(_ZN7ee21601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd1601;
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+static Base_Class bases_ee21601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21601[];
+extern void _ZN7ee216013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee216013fooEv,_ZTv0_n12_N7ee216013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216013fooEv,_ZThn12_N7ee216013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee21601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21601[0]),
+ (VTBL_ENTRY)&_ZN7ee216013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216013fooEv,_ZTv0_n12_N7ee216013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21601[];
+static VTBL_ENTRY _tg__ZTV6dd1601__7ee21601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+};
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd1601__7ee21601[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee21601[] = {
+ {&(_ZTV7ee21601[3]), 3,10},
+ {&(_tg__ZTV6dd1601__7ee21601[3]), 3,3},
+ {&(_tg__ZTV5cc601__6dd1601__7ee21601[4]), 4,6},
+ {&(_ZTV7ee21601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21601[];
+extern VTBL_ENTRY _ZTV7ee21601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21601[];
+static VTBL_ENTRY alt_thunk_names577[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216013fooEv,_ZTv0_n12_N7ee216013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216013fooEv,_ZThn12_N7ee216013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21601 = { "ee21601", // class name
+ bases_ee21601, 4,
+ &(vtc_ee21601[0]), // expected_vtbl_contents
+ &(vtt_ee21601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names577,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31601 : virtual dd1601 {
+ int e;
+ virtual void foo(); // _ZN7ee316013fooEv
+ ~ee31601(); // tgen
+ ee31601(); // tgen
+};
+//SIG(1 ee31601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31601 ::foo(){vfunc_called(this, "_ZN7ee316013fooEv");}
+ee31601 ::~ee31601(){ note_dtor("ee31601", this);} // tgen
+ee31601 ::ee31601(){ note_ctor("ee31601", this);} // tgen
+
+static void Test_ee31601()
+{
+ extern Class_Descriptor cd_ee31601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31601, buf);
+ ee31601 *dp, &lv = *(dp=new (buf) ee31601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee31601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee31601");
+ check_base_class_offset(lv, (cc601*)(dd1601*), ABISELECT(32,16), "ee31601");
+ check_base_class_offset(lv, (dd1601*), ABISELECT(16,8), "ee31601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31601.e");
+ test_class_info(&lv, &cd_ee31601);
+ dp->~ee31601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31601(Test_ee31601, "ee31601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31601C1Ev();
+extern void _ZN7ee31601D1Ev();
+Name_Map name_map_ee31601[] = {
+ NSPAIR(_ZN7ee31601C1Ev),
+ NSPAIR(_ZN7ee31601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd1601;
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+static Base_Class bases_ee31601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31601[];
+extern void _ZN7ee316013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee316013fooEv,_ZTv0_n12_N7ee316013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316013fooEv,_ZThn16_N7ee316013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee31601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31601[0]),
+ (VTBL_ENTRY)&_ZN7ee316013fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31601[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316013fooEv,_ZTv0_n12_N7ee316013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31601[];
+static VTBL_ENTRY _tg__ZTV6dd1601__7ee31601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+};
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd1601__7ee31601[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee31601[] = {
+ {&(_ZTV7ee31601[4]), 4,14},
+ {&(_ZTV7ee31601[8]), 8,14},
+ {&(_ZTV7ee31601[12]), 12,14},
+ {&(_tg__ZTV6dd1601__7ee31601[3]), 3,3},
+ {&(_tg__ZTV5cc601__6dd1601__7ee31601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31601[];
+extern VTBL_ENTRY _ZTV7ee31601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31601[];
+static VTBL_ENTRY alt_thunk_names578[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316013fooEv,_ZTv0_n12_N7ee316013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316013fooEv,_ZThn16_N7ee316013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31601 = { "ee31601", // class name
+ bases_ee31601, 4,
+ &(vtc_ee31601[0]), // expected_vtbl_contents
+ &(vtt_ee31601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31601),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names578,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41601 : dd1601 {
+ int e;
+ virtual void bar(); // _ZN7ee416013barEv
+ ~ee41601(); // tgen
+ ee41601(); // tgen
+};
+//SIG(1 ee41601) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41601 ::bar(){vfunc_called(this, "_ZN7ee416013barEv");}
+ee41601 ::~ee41601(){ note_dtor("ee41601", this);} // tgen
+ee41601 ::ee41601(){ note_ctor("ee41601", this);} // tgen
+
+static void Test_ee41601()
+{
+ extern Class_Descriptor cd_ee41601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41601, buf);
+ ee41601 *dp, &lv = *(dp=new (buf) ee41601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee41601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee41601");
+ check_base_class_offset(lv, (cc601*)(dd1601*), ABISELECT(16,12), "ee41601");
+ check_base_class_offset(lv, (dd1601*), 0, "ee41601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41601.e");
+ test_class_info(&lv, &cd_ee41601);
+ dp->~ee41601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41601(Test_ee41601, "ee41601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41601C1Ev();
+extern void _ZN7ee41601D1Ev();
+Name_Map name_map_ee41601[] = {
+ NSPAIR(_ZN7ee41601C1Ev),
+ NSPAIR(_ZN7ee41601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd1601;
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+static Base_Class bases_ee41601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41601[];
+extern void _ZN7ee416013barEv();
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416013barEv,_ZTv0_n16_N7ee416013barEv)();
+extern void ABISELECT(_ZThn16_N7ee416013barEv,_ZThn12_N7ee416013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41601[0]),
+ (VTBL_ENTRY)&_ZN7ee416013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416013barEv,_ZTv0_n16_N7ee416013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41601[];
+static VTBL_ENTRY _tg__ZTV6dd1601__7ee41601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+};
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd1601__7ee41601[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee41601[] = {
+ {&(_ZTV7ee41601[3]), 3,10},
+ {&(_tg__ZTV6dd1601__7ee41601[3]), 3,3},
+ {&(_tg__ZTV5cc601__6dd1601__7ee41601[4]), 4,6},
+ {&(_ZTV7ee41601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41601[];
+extern VTBL_ENTRY _ZTV7ee41601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41601[];
+static VTBL_ENTRY alt_thunk_names579[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416013barEv,_ZTv0_n16_N7ee416013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416013barEv,_ZThn12_N7ee416013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41601 = { "ee41601", // class name
+ bases_ee41601, 4,
+ &(vtc_ee41601[0]), // expected_vtbl_contents
+ &(vtt_ee41601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names579,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51601 : virtual dd1601 {
+ int e;
+ virtual void bar(); // _ZN7ee516013barEv
+ ~ee51601(); // tgen
+ ee51601(); // tgen
+};
+//SIG(1 ee51601) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51601 ::bar(){vfunc_called(this, "_ZN7ee516013barEv");}
+ee51601 ::~ee51601(){ note_dtor("ee51601", this);} // tgen
+ee51601 ::ee51601(){ note_ctor("ee51601", this);} // tgen
+
+static void Test_ee51601()
+{
+ extern Class_Descriptor cd_ee51601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51601, buf);
+ ee51601 *dp, &lv = *(dp=new (buf) ee51601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee51601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee51601");
+ check_base_class_offset(lv, (cc601*)(dd1601*), ABISELECT(32,16), "ee51601");
+ check_base_class_offset(lv, (dd1601*), ABISELECT(16,8), "ee51601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51601.e");
+ test_class_info(&lv, &cd_ee51601);
+ dp->~ee51601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51601(Test_ee51601, "ee51601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51601C1Ev();
+extern void _ZN7ee51601D1Ev();
+Name_Map name_map_ee51601[] = {
+ NSPAIR(_ZN7ee51601C1Ev),
+ NSPAIR(_ZN7ee51601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd1601;
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+static Base_Class bases_ee51601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51601[];
+extern void _ZN7ee516013barEv();
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516013barEv,_ZTv0_n16_N7ee516013barEv)();
+extern void ABISELECT(_ZThn32_N7ee516013barEv,_ZThn16_N7ee516013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51601[0]),
+ (VTBL_ENTRY)&_ZN7ee516013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51601[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516013barEv,_ZTv0_n16_N7ee516013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51601[];
+static VTBL_ENTRY _tg__ZTV6dd1601__7ee51601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+};
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd1601__7ee51601[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee51601[] = {
+ {&(_ZTV7ee51601[4]), 4,14},
+ {&(_ZTV7ee51601[8]), 8,14},
+ {&(_ZTV7ee51601[12]), 12,14},
+ {&(_tg__ZTV6dd1601__7ee51601[3]), 3,3},
+ {&(_tg__ZTV5cc601__6dd1601__7ee51601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51601[];
+extern VTBL_ENTRY _ZTV7ee51601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51601[];
+static VTBL_ENTRY alt_thunk_names580[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516013barEv,_ZTv0_n16_N7ee516013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516013barEv,_ZThn16_N7ee516013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51601 = { "ee51601", // class name
+ bases_ee51601, 4,
+ &(vtc_ee51601[0]), // expected_vtbl_contents
+ &(vtt_ee51601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51601),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names580,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61601 : dd1601 {
+ int e;
+ virtual void foo(); // _ZN7ee616013fooEv
+ virtual void bar(); // _ZN7ee616013barEv
+ ~ee61601(); // tgen
+ ee61601(); // tgen
+};
+//SIG(1 ee61601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61601 ::foo(){vfunc_called(this, "_ZN7ee616013fooEv");}
+void ee61601 ::bar(){vfunc_called(this, "_ZN7ee616013barEv");}
+ee61601 ::~ee61601(){ note_dtor("ee61601", this);} // tgen
+ee61601 ::ee61601(){ note_ctor("ee61601", this);} // tgen
+
+static void Test_ee61601()
+{
+ extern Class_Descriptor cd_ee61601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61601, buf);
+ ee61601 *dp, &lv = *(dp=new (buf) ee61601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee61601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee61601");
+ check_base_class_offset(lv, (cc601*)(dd1601*), ABISELECT(16,12), "ee61601");
+ check_base_class_offset(lv, (dd1601*), 0, "ee61601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61601.e");
+ test_class_info(&lv, &cd_ee61601);
+ dp->~ee61601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61601(Test_ee61601, "ee61601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61601C1Ev();
+extern void _ZN7ee61601D1Ev();
+Name_Map name_map_ee61601[] = {
+ NSPAIR(_ZN7ee61601C1Ev),
+ NSPAIR(_ZN7ee61601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd1601;
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+static Base_Class bases_ee61601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61601[];
+extern void _ZN7ee616013fooEv();
+extern void _ZN7ee616013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616013fooEv,_ZTv0_n12_N7ee616013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616013fooEv,_ZThn12_N7ee616013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616013barEv,_ZTv0_n16_N7ee616013barEv)();
+extern void ABISELECT(_ZThn16_N7ee616013barEv,_ZThn12_N7ee616013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61601[0]),
+ (VTBL_ENTRY)&_ZN7ee616013fooEv,
+ (VTBL_ENTRY)&_ZN7ee616013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616013fooEv,_ZTv0_n12_N7ee616013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616013barEv,_ZTv0_n16_N7ee616013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61601[];
+static VTBL_ENTRY _tg__ZTV6dd1601__7ee61601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+};
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd1601__7ee61601[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee61601[] = {
+ {&(_ZTV7ee61601[3]), 3,11},
+ {&(_tg__ZTV6dd1601__7ee61601[3]), 3,3},
+ {&(_tg__ZTV5cc601__6dd1601__7ee61601[4]), 4,6},
+ {&(_ZTV7ee61601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61601[];
+extern VTBL_ENTRY _ZTV7ee61601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61601[];
+static VTBL_ENTRY alt_thunk_names581[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616013barEv,_ZTv0_n16_N7ee616013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616013barEv,_ZThn12_N7ee616013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616013fooEv,_ZTv0_n12_N7ee616013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616013fooEv,_ZThn12_N7ee616013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61601 = { "ee61601", // class name
+ bases_ee61601, 4,
+ &(vtc_ee61601[0]), // expected_vtbl_contents
+ &(vtt_ee61601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names581,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71601 : virtual dd1601 {
+ int e;
+ virtual void foo(); // _ZN7ee716013fooEv
+ virtual void bar(); // _ZN7ee716013barEv
+ ~ee71601(); // tgen
+ ee71601(); // tgen
+};
+//SIG(1 ee71601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71601 ::foo(){vfunc_called(this, "_ZN7ee716013fooEv");}
+void ee71601 ::bar(){vfunc_called(this, "_ZN7ee716013barEv");}
+ee71601 ::~ee71601(){ note_dtor("ee71601", this);} // tgen
+ee71601 ::ee71601(){ note_ctor("ee71601", this);} // tgen
+
+static void Test_ee71601()
+{
+ extern Class_Descriptor cd_ee71601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71601, buf);
+ ee71601 *dp, &lv = *(dp=new (buf) ee71601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee71601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee71601");
+ check_base_class_offset(lv, (cc601*)(dd1601*), ABISELECT(32,16), "ee71601");
+ check_base_class_offset(lv, (dd1601*), ABISELECT(16,8), "ee71601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71601.e");
+ test_class_info(&lv, &cd_ee71601);
+ dp->~ee71601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71601(Test_ee71601, "ee71601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71601C1Ev();
+extern void _ZN7ee71601D1Ev();
+Name_Map name_map_ee71601[] = {
+ NSPAIR(_ZN7ee71601C1Ev),
+ NSPAIR(_ZN7ee71601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd1601;
+extern VTBL_ENTRY _ZTI6dd1601[];
+extern VTBL_ENTRY _ZTV6dd1601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1601[];
+static Base_Class bases_ee71601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1601, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71601[];
+extern void _ZN7ee716013fooEv();
+extern void _ZN7ee716013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716013fooEv,_ZTv0_n12_N7ee716013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716013fooEv,_ZThn16_N7ee716013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716013barEv,_ZTv0_n16_N7ee716013barEv)();
+extern void ABISELECT(_ZThn32_N7ee716013barEv,_ZThn16_N7ee716013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71601[0]),
+ (VTBL_ENTRY)&_ZN7ee716013fooEv,
+ (VTBL_ENTRY)&_ZN7ee716013barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71601[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716013fooEv,_ZTv0_n12_N7ee716013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716013barEv,_ZTv0_n16_N7ee716013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71601[];
+static VTBL_ENTRY _tg__ZTV6dd1601__7ee71601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+};
+extern void _ZN5cc6013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd1601__7ee71601[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee71601[] = {
+ {&(_ZTV7ee71601[4]), 4,15},
+ {&(_ZTV7ee71601[9]), 9,15},
+ {&(_ZTV7ee71601[13]), 13,15},
+ {&(_tg__ZTV6dd1601__7ee71601[3]), 3,3},
+ {&(_tg__ZTV5cc601__6dd1601__7ee71601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71601[];
+extern VTBL_ENTRY _ZTV7ee71601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71601[];
+static VTBL_ENTRY alt_thunk_names582[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716013barEv,_ZTv0_n16_N7ee716013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716013barEv,_ZThn16_N7ee716013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716013fooEv,_ZTv0_n12_N7ee716013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716013fooEv,_ZThn16_N7ee716013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71601 = { "ee71601", // class name
+ bases_ee71601, 4,
+ &(vtc_ee71601[0]), // expected_vtbl_contents
+ &(vtt_ee71601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71601),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names582,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2601 : cc601 {
+ int d;
+ virtual void foo(); // _ZN6dd26013fooEv
+ ~dd2601(); // tgen
+ dd2601(); // tgen
+};
+//SIG(-1 dd2601) C1{ BC2{ BC3{ BC4{ v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2601 ::foo(){vfunc_called(this, "_ZN6dd26013fooEv");}
+dd2601 ::~dd2601(){ note_dtor("dd2601", this);} // tgen
+dd2601 ::dd2601(){ note_ctor("dd2601", this);} // tgen
+
+static void Test_dd2601()
+{
+ extern Class_Descriptor cd_dd2601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2601, buf);
+ dd2601 *dp, &lv = *(dp=new (buf) dd2601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), 0, "dd2601");
+ check_base_class_offset(lv, (bb01*)(cc601*), 0, "dd2601");
+ check_base_class_offset(lv, (cc601*), 0, "dd2601");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2601.d");
+ test_class_info(&lv, &cd_dd2601);
+ dp->~dd2601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2601(Test_dd2601, "dd2601", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2601C1Ev();
+extern void _ZN6dd2601D1Ev();
+Name_Map name_map_dd2601[] = {
+ NSPAIR(_ZN6dd2601C1Ev),
+ NSPAIR(_ZN6dd2601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+static Base_Class bases_dd2601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern void _ZN6dd26013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_dd2601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2601[0]),
+ (VTBL_ENTRY)&_ZN6dd26013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+Class_Descriptor cd_dd2601 = { "dd2601", // class name
+ bases_dd2601, 3,
+ &(vtc_dd2601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02601 : dd2601 {
+ int e;
+ ~ee02601(); // tgen
+ ee02601(); // tgen
+};
+//SIG(1 ee02601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02601 ::~ee02601(){ note_dtor("ee02601", this);} // tgen
+ee02601 ::ee02601(){ note_ctor("ee02601", this);} // tgen
+
+static void Test_ee02601()
+{
+ extern Class_Descriptor cd_ee02601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02601, buf);
+ ee02601 *dp, &lv = *(dp=new (buf) ee02601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd2601*), 0, "ee02601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd2601*), 0, "ee02601");
+ check_base_class_offset(lv, (cc601*)(dd2601*), 0, "ee02601");
+ check_base_class_offset(lv, (dd2601*), 0, "ee02601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02601.e");
+ test_class_info(&lv, &cd_ee02601);
+ dp->~ee02601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02601(Test_ee02601, "ee02601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02601C1Ev();
+extern void _ZN7ee02601D1Ev();
+Name_Map name_map_ee02601[] = {
+ NSPAIR(_ZN7ee02601C1Ev),
+ NSPAIR(_ZN7ee02601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd2601;
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+static Base_Class bases_ee02601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2601, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02601[];
+extern void _ZN6dd26013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee02601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02601[0]),
+ (VTBL_ENTRY)&_ZN6dd26013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02601[];
+extern VTBL_ENTRY _ZTV7ee02601[];
+Class_Descriptor cd_ee02601 = { "ee02601", // class name
+ bases_ee02601, 4,
+ &(vtc_ee02601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12601 : virtual dd2601 {
+ int e;
+ ~ee12601(); // tgen
+ ee12601(); // tgen
+};
+//SIG(1 ee12601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12601 ::~ee12601(){ note_dtor("ee12601", this);} // tgen
+ee12601 ::ee12601(){ note_ctor("ee12601", this);} // tgen
+
+static void Test_ee12601()
+{
+ extern Class_Descriptor cd_ee12601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12601, buf);
+ ee12601 *dp, &lv = *(dp=new (buf) ee12601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd2601*), ABISELECT(16,8), "ee12601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd2601*), ABISELECT(16,8), "ee12601");
+ check_base_class_offset(lv, (cc601*)(dd2601*), ABISELECT(16,8), "ee12601");
+ check_base_class_offset(lv, (dd2601*), ABISELECT(16,8), "ee12601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12601.e");
+ test_class_info(&lv, &cd_ee12601);
+ dp->~ee12601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12601(Test_ee12601, "ee12601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12601C1Ev();
+extern void _ZN7ee12601D1Ev();
+Name_Map name_map_ee12601[] = {
+ NSPAIR(_ZN7ee12601C1Ev),
+ NSPAIR(_ZN7ee12601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd2601;
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+static Base_Class bases_ee12601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2601, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12601[];
+extern void _ZN6dd26013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee12601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12601[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12601[0]),
+ (VTBL_ENTRY)&_ZN6dd26013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12601[];
+static VTT_ENTRY vtt_ee12601[] = {
+ {&(_ZTV7ee12601[3]), 3,9},
+ {&(_ZTV7ee12601[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12601[];
+extern VTBL_ENTRY _ZTV7ee12601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12601[];
+Class_Descriptor cd_ee12601 = { "ee12601", // class name
+ bases_ee12601, 4,
+ &(vtc_ee12601[0]), // expected_vtbl_contents
+ &(vtt_ee12601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12601),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22601 : dd2601 {
+ int e;
+ virtual void foo(); // _ZN7ee226013fooEv
+ ~ee22601(); // tgen
+ ee22601(); // tgen
+};
+//SIG(1 ee22601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22601 ::foo(){vfunc_called(this, "_ZN7ee226013fooEv");}
+ee22601 ::~ee22601(){ note_dtor("ee22601", this);} // tgen
+ee22601 ::ee22601(){ note_ctor("ee22601", this);} // tgen
+
+static void Test_ee22601()
+{
+ extern Class_Descriptor cd_ee22601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22601, buf);
+ ee22601 *dp, &lv = *(dp=new (buf) ee22601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd2601*), 0, "ee22601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd2601*), 0, "ee22601");
+ check_base_class_offset(lv, (cc601*)(dd2601*), 0, "ee22601");
+ check_base_class_offset(lv, (dd2601*), 0, "ee22601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22601.e");
+ test_class_info(&lv, &cd_ee22601);
+ dp->~ee22601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22601(Test_ee22601, "ee22601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22601C1Ev();
+extern void _ZN7ee22601D1Ev();
+Name_Map name_map_ee22601[] = {
+ NSPAIR(_ZN7ee22601C1Ev),
+ NSPAIR(_ZN7ee22601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd2601;
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+static Base_Class bases_ee22601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22601[];
+extern void _ZN7ee226013fooEv();
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee22601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22601[0]),
+ (VTBL_ENTRY)&_ZN7ee226013fooEv,
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22601[];
+extern VTBL_ENTRY _ZTV7ee22601[];
+Class_Descriptor cd_ee22601 = { "ee22601", // class name
+ bases_ee22601, 4,
+ &(vtc_ee22601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32601 : virtual dd2601 {
+ int e;
+ virtual void foo(); // _ZN7ee326013fooEv
+ ~ee32601(); // tgen
+ ee32601(); // tgen
+};
+//SIG(1 ee32601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32601 ::foo(){vfunc_called(this, "_ZN7ee326013fooEv");}
+ee32601 ::~ee32601(){ note_dtor("ee32601", this);} // tgen
+ee32601 ::ee32601(){ note_ctor("ee32601", this);} // tgen
+
+static void Test_ee32601()
+{
+ extern Class_Descriptor cd_ee32601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32601, buf);
+ ee32601 *dp, &lv = *(dp=new (buf) ee32601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd2601*), ABISELECT(16,8), "ee32601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd2601*), ABISELECT(16,8), "ee32601");
+ check_base_class_offset(lv, (cc601*)(dd2601*), ABISELECT(16,8), "ee32601");
+ check_base_class_offset(lv, (dd2601*), ABISELECT(16,8), "ee32601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32601.e");
+ test_class_info(&lv, &cd_ee32601);
+ dp->~ee32601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32601(Test_ee32601, "ee32601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32601C1Ev();
+extern void _ZN7ee32601D1Ev();
+Name_Map name_map_ee32601[] = {
+ NSPAIR(_ZN7ee32601C1Ev),
+ NSPAIR(_ZN7ee32601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd2601;
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+static Base_Class bases_ee32601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32601[];
+extern void _ZN7ee326013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee326013fooEv,_ZTv0_n12_N7ee326013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326013fooEv,_ZThn8_N7ee326013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee32601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32601[0]),
+ (VTBL_ENTRY)&_ZN7ee326013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326013fooEv,_ZTv0_n12_N7ee326013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32601[];
+static VTT_ENTRY vtt_ee32601[] = {
+ {&(_ZTV7ee32601[3]), 3,10},
+ {&(_ZTV7ee32601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32601[];
+extern VTBL_ENTRY _ZTV7ee32601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32601[];
+static VTBL_ENTRY alt_thunk_names583[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326013fooEv,_ZTv0_n12_N7ee326013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326013fooEv,_ZThn8_N7ee326013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32601 = { "ee32601", // class name
+ bases_ee32601, 4,
+ &(vtc_ee32601[0]), // expected_vtbl_contents
+ &(vtt_ee32601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names583,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42601 : dd2601 {
+ int e;
+ virtual void bar(); // _ZN7ee426013barEv
+ ~ee42601(); // tgen
+ ee42601(); // tgen
+};
+//SIG(1 ee42601) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42601 ::bar(){vfunc_called(this, "_ZN7ee426013barEv");}
+ee42601 ::~ee42601(){ note_dtor("ee42601", this);} // tgen
+ee42601 ::ee42601(){ note_ctor("ee42601", this);} // tgen
+
+static void Test_ee42601()
+{
+ extern Class_Descriptor cd_ee42601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42601, buf);
+ ee42601 *dp, &lv = *(dp=new (buf) ee42601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd2601*), 0, "ee42601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd2601*), 0, "ee42601");
+ check_base_class_offset(lv, (cc601*)(dd2601*), 0, "ee42601");
+ check_base_class_offset(lv, (dd2601*), 0, "ee42601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42601.e");
+ test_class_info(&lv, &cd_ee42601);
+ dp->~ee42601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42601(Test_ee42601, "ee42601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42601C1Ev();
+extern void _ZN7ee42601D1Ev();
+Name_Map name_map_ee42601[] = {
+ NSPAIR(_ZN7ee42601C1Ev),
+ NSPAIR(_ZN7ee42601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd2601;
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+static Base_Class bases_ee42601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42601[];
+extern void _ZN6dd26013fooEv();
+extern void _ZN7ee426013barEv();
+static VTBL_ENTRY vtc_ee42601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42601[0]),
+ (VTBL_ENTRY)&_ZN6dd26013fooEv,
+ (VTBL_ENTRY)&_ZN7ee426013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42601[];
+extern VTBL_ENTRY _ZTV7ee42601[];
+Class_Descriptor cd_ee42601 = { "ee42601", // class name
+ bases_ee42601, 4,
+ &(vtc_ee42601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52601 : virtual dd2601 {
+ int e;
+ virtual void bar(); // _ZN7ee526013barEv
+ ~ee52601(); // tgen
+ ee52601(); // tgen
+};
+//SIG(1 ee52601) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52601 ::bar(){vfunc_called(this, "_ZN7ee526013barEv");}
+ee52601 ::~ee52601(){ note_dtor("ee52601", this);} // tgen
+ee52601 ::ee52601(){ note_ctor("ee52601", this);} // tgen
+
+static void Test_ee52601()
+{
+ extern Class_Descriptor cd_ee52601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52601, buf);
+ ee52601 *dp, &lv = *(dp=new (buf) ee52601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd2601*), ABISELECT(16,8), "ee52601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd2601*), ABISELECT(16,8), "ee52601");
+ check_base_class_offset(lv, (cc601*)(dd2601*), ABISELECT(16,8), "ee52601");
+ check_base_class_offset(lv, (dd2601*), ABISELECT(16,8), "ee52601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52601.e");
+ test_class_info(&lv, &cd_ee52601);
+ dp->~ee52601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52601(Test_ee52601, "ee52601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52601C1Ev();
+extern void _ZN7ee52601D1Ev();
+Name_Map name_map_ee52601[] = {
+ NSPAIR(_ZN7ee52601C1Ev),
+ NSPAIR(_ZN7ee52601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd2601;
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+static Base_Class bases_ee52601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52601[];
+extern void _ZN7ee526013barEv();
+extern void _ZN6dd26013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526013barEv,_ZTv0_n16_N7ee526013barEv)();
+extern void ABISELECT(_ZThn16_N7ee526013barEv,_ZThn8_N7ee526013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52601[0]),
+ (VTBL_ENTRY)&_ZN7ee526013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52601[0]),
+ (VTBL_ENTRY)&_ZN6dd26013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526013barEv,_ZTv0_n16_N7ee526013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52601[];
+static VTT_ENTRY vtt_ee52601[] = {
+ {&(_ZTV7ee52601[3]), 3,10},
+ {&(_ZTV7ee52601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52601[];
+extern VTBL_ENTRY _ZTV7ee52601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52601[];
+static VTBL_ENTRY alt_thunk_names584[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526013barEv,_ZTv0_n16_N7ee526013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526013barEv,_ZThn8_N7ee526013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52601 = { "ee52601", // class name
+ bases_ee52601, 4,
+ &(vtc_ee52601[0]), // expected_vtbl_contents
+ &(vtt_ee52601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names584,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62601 : dd2601 {
+ int e;
+ virtual void foo(); // _ZN7ee626013fooEv
+ virtual void bar(); // _ZN7ee626013barEv
+ ~ee62601(); // tgen
+ ee62601(); // tgen
+};
+//SIG(1 ee62601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62601 ::foo(){vfunc_called(this, "_ZN7ee626013fooEv");}
+void ee62601 ::bar(){vfunc_called(this, "_ZN7ee626013barEv");}
+ee62601 ::~ee62601(){ note_dtor("ee62601", this);} // tgen
+ee62601 ::ee62601(){ note_ctor("ee62601", this);} // tgen
+
+static void Test_ee62601()
+{
+ extern Class_Descriptor cd_ee62601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62601, buf);
+ ee62601 *dp, &lv = *(dp=new (buf) ee62601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd2601*), 0, "ee62601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd2601*), 0, "ee62601");
+ check_base_class_offset(lv, (cc601*)(dd2601*), 0, "ee62601");
+ check_base_class_offset(lv, (dd2601*), 0, "ee62601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62601.e");
+ test_class_info(&lv, &cd_ee62601);
+ dp->~ee62601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62601(Test_ee62601, "ee62601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62601C1Ev();
+extern void _ZN7ee62601D1Ev();
+Name_Map name_map_ee62601[] = {
+ NSPAIR(_ZN7ee62601C1Ev),
+ NSPAIR(_ZN7ee62601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd2601;
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+static Base_Class bases_ee62601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62601[];
+extern void _ZN7ee626013fooEv();
+extern void _ZN7ee626013barEv();
+static VTBL_ENTRY vtc_ee62601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62601[0]),
+ (VTBL_ENTRY)&_ZN7ee626013fooEv,
+ (VTBL_ENTRY)&_ZN7ee626013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62601[];
+extern VTBL_ENTRY _ZTV7ee62601[];
+Class_Descriptor cd_ee62601 = { "ee62601", // class name
+ bases_ee62601, 4,
+ &(vtc_ee62601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72601 : virtual dd2601 {
+ int e;
+ virtual void foo(); // _ZN7ee726013fooEv
+ virtual void bar(); // _ZN7ee726013barEv
+ ~ee72601(); // tgen
+ ee72601(); // tgen
+};
+//SIG(1 ee72601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72601 ::foo(){vfunc_called(this, "_ZN7ee726013fooEv");}
+void ee72601 ::bar(){vfunc_called(this, "_ZN7ee726013barEv");}
+ee72601 ::~ee72601(){ note_dtor("ee72601", this);} // tgen
+ee72601 ::ee72601(){ note_ctor("ee72601", this);} // tgen
+
+static void Test_ee72601()
+{
+ extern Class_Descriptor cd_ee72601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72601, buf);
+ ee72601 *dp, &lv = *(dp=new (buf) ee72601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd2601*), ABISELECT(16,8), "ee72601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd2601*), ABISELECT(16,8), "ee72601");
+ check_base_class_offset(lv, (cc601*)(dd2601*), ABISELECT(16,8), "ee72601");
+ check_base_class_offset(lv, (dd2601*), ABISELECT(16,8), "ee72601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72601.e");
+ test_class_info(&lv, &cd_ee72601);
+ dp->~ee72601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72601(Test_ee72601, "ee72601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72601C1Ev();
+extern void _ZN7ee72601D1Ev();
+Name_Map name_map_ee72601[] = {
+ NSPAIR(_ZN7ee72601C1Ev),
+ NSPAIR(_ZN7ee72601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd2601;
+extern VTBL_ENTRY _ZTI6dd2601[];
+extern VTBL_ENTRY _ZTV6dd2601[];
+static Base_Class bases_ee72601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72601[];
+extern void _ZN7ee726013fooEv();
+extern void _ZN7ee726013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726013fooEv,_ZTv0_n12_N7ee726013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726013fooEv,_ZThn8_N7ee726013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726013barEv,_ZTv0_n16_N7ee726013barEv)();
+extern void ABISELECT(_ZThn16_N7ee726013barEv,_ZThn8_N7ee726013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72601[0]),
+ (VTBL_ENTRY)&_ZN7ee726013fooEv,
+ (VTBL_ENTRY)&_ZN7ee726013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726013fooEv,_ZTv0_n12_N7ee726013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726013barEv,_ZTv0_n16_N7ee726013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72601[];
+static VTT_ENTRY vtt_ee72601[] = {
+ {&(_ZTV7ee72601[3]), 3,11},
+ {&(_ZTV7ee72601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72601[];
+extern VTBL_ENTRY _ZTV7ee72601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72601[];
+static VTBL_ENTRY alt_thunk_names585[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726013barEv,_ZTv0_n16_N7ee726013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726013barEv,_ZThn8_N7ee726013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726013fooEv,_ZTv0_n12_N7ee726013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726013fooEv,_ZThn8_N7ee726013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72601 = { "ee72601", // class name
+ bases_ee72601, 4,
+ &(vtc_ee72601[0]), // expected_vtbl_contents
+ &(vtt_ee72601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names585,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3601 : virtual cc601 {
+ int d;
+ virtual void foo(); // _ZN6dd36013fooEv
+ ~dd3601(); // tgen
+ dd3601(); // tgen
+};
+//SIG(-1 dd3601) C1{ VBC2{ BC3{ BC4{ v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3601 ::foo(){vfunc_called(this, "_ZN6dd36013fooEv");}
+dd3601 ::~dd3601(){ note_dtor("dd3601", this);} // tgen
+dd3601 ::dd3601(){ note_ctor("dd3601", this);} // tgen
+
+static void Test_dd3601()
+{
+ extern Class_Descriptor cd_dd3601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3601, buf);
+ dd3601 *dp, &lv = *(dp=new (buf) dd3601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,8), "dd3601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,8), "dd3601");
+ check_base_class_offset(lv, (cc601*), ABISELECT(16,8), "dd3601");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3601.d");
+ test_class_info(&lv, &cd_dd3601);
+ dp->~dd3601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3601(Test_dd3601, "dd3601", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3601C1Ev();
+extern void _ZN6dd3601D1Ev();
+Name_Map name_map_dd3601[] = {
+ NSPAIR(_ZN6dd3601C1Ev),
+ NSPAIR(_ZN6dd3601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+static Base_Class bases_dd3601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern void _ZN6dd36013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_dd3601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3601[];
+static VTT_ENTRY vtt_dd3601[] = {
+ {&(_ZTV6dd3601[3]), 3,10},
+ {&(_ZTV6dd3601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static VTBL_ENTRY alt_thunk_names586[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3601 = { "dd3601", // class name
+ bases_dd3601, 3,
+ &(vtc_dd3601[0]), // expected_vtbl_contents
+ &(vtt_dd3601[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3601),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names586,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03601 : dd3601 {
+ int e;
+ ~ee03601(); // tgen
+ ee03601(); // tgen
+};
+//SIG(1 ee03601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03601 ::~ee03601(){ note_dtor("ee03601", this);} // tgen
+ee03601 ::ee03601(){ note_ctor("ee03601", this);} // tgen
+
+static void Test_ee03601()
+{
+ extern Class_Descriptor cd_ee03601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03601, buf);
+ ee03601 *dp, &lv = *(dp=new (buf) ee03601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee03601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee03601");
+ check_base_class_offset(lv, (cc601*)(dd3601*), ABISELECT(16,12), "ee03601");
+ check_base_class_offset(lv, (dd3601*), 0, "ee03601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03601.e");
+ test_class_info(&lv, &cd_ee03601);
+ dp->~ee03601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03601(Test_ee03601, "ee03601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03601C1Ev();
+extern void _ZN7ee03601D1Ev();
+Name_Map name_map_ee03601[] = {
+ NSPAIR(_ZN7ee03601C1Ev),
+ NSPAIR(_ZN7ee03601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd3601;
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static Base_Class bases_ee03601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03601[];
+extern void _ZN6dd36013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee03601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03601[];
+extern void _ZN6dd36013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3601__7ee03601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd3601__7ee03601[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee03601[] = {
+ {&(_ZTV7ee03601[3]), 3,10},
+ {&(_tg__ZTV6dd3601__7ee03601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd3601__7ee03601[4]), 4,6},
+ {&(_ZTV7ee03601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03601[];
+extern VTBL_ENTRY _ZTV7ee03601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03601[];
+static VTBL_ENTRY alt_thunk_names587[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03601 = { "ee03601", // class name
+ bases_ee03601, 4,
+ &(vtc_ee03601[0]), // expected_vtbl_contents
+ &(vtt_ee03601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names587,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13601 : virtual dd3601 {
+ int e;
+ ~ee13601(); // tgen
+ ee13601(); // tgen
+};
+//SIG(1 ee13601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13601 ::~ee13601(){ note_dtor("ee13601", this);} // tgen
+ee13601 ::ee13601(){ note_ctor("ee13601", this);} // tgen
+
+static void Test_ee13601()
+{
+ extern Class_Descriptor cd_ee13601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13601, buf);
+ ee13601 *dp, &lv = *(dp=new (buf) ee13601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee13601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee13601");
+ check_base_class_offset(lv, (cc601*)(dd3601*), ABISELECT(32,16), "ee13601");
+ check_base_class_offset(lv, (dd3601*), ABISELECT(16,8), "ee13601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13601.e");
+ test_class_info(&lv, &cd_ee13601);
+ dp->~ee13601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13601(Test_ee13601, "ee13601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13601C1Ev();
+extern void _ZN7ee13601D1Ev();
+Name_Map name_map_ee13601[] = {
+ NSPAIR(_ZN7ee13601C1Ev),
+ NSPAIR(_ZN7ee13601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd3601;
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static Base_Class bases_ee13601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13601[];
+extern void _ZN6dd36013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee13601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13601[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13601[];
+extern void _ZN6dd36013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3601__7ee13601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd3601__7ee13601[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee13601[] = {
+ {&(_ZTV7ee13601[4]), 4,15},
+ {&(_ZTV7ee13601[8]), 8,15},
+ {&(_ZTV7ee13601[13]), 13,15},
+ {&(_tg__ZTV6dd3601__7ee13601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd3601__7ee13601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13601[];
+extern VTBL_ENTRY _ZTV7ee13601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13601[];
+static VTBL_ENTRY alt_thunk_names588[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13601 = { "ee13601", // class name
+ bases_ee13601, 4,
+ &(vtc_ee13601[0]), // expected_vtbl_contents
+ &(vtt_ee13601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13601),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names588,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23601 : dd3601 {
+ int e;
+ virtual void foo(); // _ZN7ee236013fooEv
+ ~ee23601(); // tgen
+ ee23601(); // tgen
+};
+//SIG(1 ee23601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23601 ::foo(){vfunc_called(this, "_ZN7ee236013fooEv");}
+ee23601 ::~ee23601(){ note_dtor("ee23601", this);} // tgen
+ee23601 ::ee23601(){ note_ctor("ee23601", this);} // tgen
+
+static void Test_ee23601()
+{
+ extern Class_Descriptor cd_ee23601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23601, buf);
+ ee23601 *dp, &lv = *(dp=new (buf) ee23601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee23601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee23601");
+ check_base_class_offset(lv, (cc601*)(dd3601*), ABISELECT(16,12), "ee23601");
+ check_base_class_offset(lv, (dd3601*), 0, "ee23601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23601.e");
+ test_class_info(&lv, &cd_ee23601);
+ dp->~ee23601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23601(Test_ee23601, "ee23601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23601C1Ev();
+extern void _ZN7ee23601D1Ev();
+Name_Map name_map_ee23601[] = {
+ NSPAIR(_ZN7ee23601C1Ev),
+ NSPAIR(_ZN7ee23601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd3601;
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static Base_Class bases_ee23601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23601[];
+extern void _ZN7ee236013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee236013fooEv,_ZTv0_n12_N7ee236013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236013fooEv,_ZThn12_N7ee236013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee23601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23601[0]),
+ (VTBL_ENTRY)&_ZN7ee236013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236013fooEv,_ZTv0_n12_N7ee236013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23601[];
+extern void _ZN6dd36013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3601__7ee23601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd3601__7ee23601[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee23601[] = {
+ {&(_ZTV7ee23601[3]), 3,10},
+ {&(_tg__ZTV6dd3601__7ee23601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd3601__7ee23601[4]), 4,6},
+ {&(_ZTV7ee23601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23601[];
+extern VTBL_ENTRY _ZTV7ee23601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23601[];
+static VTBL_ENTRY alt_thunk_names589[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236013fooEv,_ZTv0_n12_N7ee236013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236013fooEv,_ZThn12_N7ee236013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23601 = { "ee23601", // class name
+ bases_ee23601, 4,
+ &(vtc_ee23601[0]), // expected_vtbl_contents
+ &(vtt_ee23601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names589,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33601 : virtual dd3601 {
+ int e;
+ virtual void foo(); // _ZN7ee336013fooEv
+ ~ee33601(); // tgen
+ ee33601(); // tgen
+};
+//SIG(1 ee33601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33601 ::foo(){vfunc_called(this, "_ZN7ee336013fooEv");}
+ee33601 ::~ee33601(){ note_dtor("ee33601", this);} // tgen
+ee33601 ::ee33601(){ note_ctor("ee33601", this);} // tgen
+
+static void Test_ee33601()
+{
+ extern Class_Descriptor cd_ee33601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33601, buf);
+ ee33601 *dp, &lv = *(dp=new (buf) ee33601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee33601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee33601");
+ check_base_class_offset(lv, (cc601*)(dd3601*), ABISELECT(32,16), "ee33601");
+ check_base_class_offset(lv, (dd3601*), ABISELECT(16,8), "ee33601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33601.e");
+ test_class_info(&lv, &cd_ee33601);
+ dp->~ee33601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33601(Test_ee33601, "ee33601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33601C1Ev();
+extern void _ZN7ee33601D1Ev();
+Name_Map name_map_ee33601[] = {
+ NSPAIR(_ZN7ee33601C1Ev),
+ NSPAIR(_ZN7ee33601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd3601;
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static Base_Class bases_ee33601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33601[];
+extern void _ZN7ee336013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336013fooEv,_ZTv0_n16_N7ee336013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336013fooEv,_ZThn8_N7ee336013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336013fooEv,_ZTv0_n12_N7ee336013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336013fooEv,_ZThn16_N7ee336013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY vtc_ee33601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33601[0]),
+ (VTBL_ENTRY)&_ZN7ee336013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336013fooEv,_ZTv0_n16_N7ee336013fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336013fooEv,_ZTv0_n12_N7ee336013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33601[];
+extern void _ZN6dd36013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3601__7ee33601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd3601__7ee33601[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee33601[] = {
+ {&(_ZTV7ee33601[4]), 4,16},
+ {&(_ZTV7ee33601[9]), 9,16},
+ {&(_ZTV7ee33601[14]), 14,16},
+ {&(_tg__ZTV6dd3601__7ee33601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd3601__7ee33601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33601[];
+extern VTBL_ENTRY _ZTV7ee33601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33601[];
+static VTBL_ENTRY alt_thunk_names590[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336013fooEv,_ZTv0_n12_N7ee336013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336013fooEv,_ZThn16_N7ee336013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336013fooEv,_ZTv0_n16_N7ee336013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336013fooEv,_ZThn8_N7ee336013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33601 = { "ee33601", // class name
+ bases_ee33601, 4,
+ &(vtc_ee33601[0]), // expected_vtbl_contents
+ &(vtt_ee33601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33601),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names590,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43601 : dd3601 {
+ int e;
+ virtual void bar(); // _ZN7ee436013barEv
+ ~ee43601(); // tgen
+ ee43601(); // tgen
+};
+//SIG(1 ee43601) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43601 ::bar(){vfunc_called(this, "_ZN7ee436013barEv");}
+ee43601 ::~ee43601(){ note_dtor("ee43601", this);} // tgen
+ee43601 ::ee43601(){ note_ctor("ee43601", this);} // tgen
+
+static void Test_ee43601()
+{
+ extern Class_Descriptor cd_ee43601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43601, buf);
+ ee43601 *dp, &lv = *(dp=new (buf) ee43601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee43601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee43601");
+ check_base_class_offset(lv, (cc601*)(dd3601*), ABISELECT(16,12), "ee43601");
+ check_base_class_offset(lv, (dd3601*), 0, "ee43601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43601.e");
+ test_class_info(&lv, &cd_ee43601);
+ dp->~ee43601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43601(Test_ee43601, "ee43601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43601C1Ev();
+extern void _ZN7ee43601D1Ev();
+Name_Map name_map_ee43601[] = {
+ NSPAIR(_ZN7ee43601C1Ev),
+ NSPAIR(_ZN7ee43601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd3601;
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static Base_Class bases_ee43601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43601[];
+extern void _ZN6dd36013fooEv();
+extern void _ZN7ee436013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436013barEv,_ZTv0_n16_N7ee436013barEv)();
+extern void ABISELECT(_ZThn16_N7ee436013barEv,_ZThn12_N7ee436013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+ (VTBL_ENTRY)&_ZN7ee436013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436013barEv,_ZTv0_n16_N7ee436013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43601[];
+extern void _ZN6dd36013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3601__7ee43601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd3601__7ee43601[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee43601[] = {
+ {&(_ZTV7ee43601[3]), 3,11},
+ {&(_tg__ZTV6dd3601__7ee43601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd3601__7ee43601[4]), 4,6},
+ {&(_ZTV7ee43601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43601[];
+extern VTBL_ENTRY _ZTV7ee43601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43601[];
+static VTBL_ENTRY alt_thunk_names591[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436013barEv,_ZTv0_n16_N7ee436013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436013barEv,_ZThn12_N7ee436013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43601 = { "ee43601", // class name
+ bases_ee43601, 4,
+ &(vtc_ee43601[0]), // expected_vtbl_contents
+ &(vtt_ee43601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names591,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53601 : virtual dd3601 {
+ int e;
+ virtual void bar(); // _ZN7ee536013barEv
+ ~ee53601(); // tgen
+ ee53601(); // tgen
+};
+//SIG(1 ee53601) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53601 ::bar(){vfunc_called(this, "_ZN7ee536013barEv");}
+ee53601 ::~ee53601(){ note_dtor("ee53601", this);} // tgen
+ee53601 ::ee53601(){ note_ctor("ee53601", this);} // tgen
+
+static void Test_ee53601()
+{
+ extern Class_Descriptor cd_ee53601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53601, buf);
+ ee53601 *dp, &lv = *(dp=new (buf) ee53601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee53601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee53601");
+ check_base_class_offset(lv, (cc601*)(dd3601*), ABISELECT(32,16), "ee53601");
+ check_base_class_offset(lv, (dd3601*), ABISELECT(16,8), "ee53601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53601.e");
+ test_class_info(&lv, &cd_ee53601);
+ dp->~ee53601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53601(Test_ee53601, "ee53601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53601C1Ev();
+extern void _ZN7ee53601D1Ev();
+Name_Map name_map_ee53601[] = {
+ NSPAIR(_ZN7ee53601C1Ev),
+ NSPAIR(_ZN7ee53601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd3601;
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static Base_Class bases_ee53601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53601[];
+extern void _ZN7ee536013barEv();
+extern void _ZN6dd36013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536013barEv,_ZTv0_n16_N7ee536013barEv)();
+extern void ABISELECT(_ZThn32_N7ee536013barEv,_ZThn16_N7ee536013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53601[0]),
+ (VTBL_ENTRY)&_ZN7ee536013barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536013barEv,_ZTv0_n16_N7ee536013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53601[];
+extern void _ZN6dd36013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3601__7ee53601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd3601__7ee53601[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee53601[] = {
+ {&(_ZTV7ee53601[4]), 4,16},
+ {&(_ZTV7ee53601[9]), 9,16},
+ {&(_ZTV7ee53601[14]), 14,16},
+ {&(_tg__ZTV6dd3601__7ee53601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd3601__7ee53601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53601[];
+extern VTBL_ENTRY _ZTV7ee53601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53601[];
+static VTBL_ENTRY alt_thunk_names592[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536013barEv,_ZTv0_n16_N7ee536013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536013barEv,_ZThn16_N7ee536013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53601 = { "ee53601", // class name
+ bases_ee53601, 4,
+ &(vtc_ee53601[0]), // expected_vtbl_contents
+ &(vtt_ee53601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53601),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names592,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63601 : dd3601 {
+ int e;
+ virtual void foo(); // _ZN7ee636013fooEv
+ virtual void bar(); // _ZN7ee636013barEv
+ ~ee63601(); // tgen
+ ee63601(); // tgen
+};
+//SIG(1 ee63601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63601 ::foo(){vfunc_called(this, "_ZN7ee636013fooEv");}
+void ee63601 ::bar(){vfunc_called(this, "_ZN7ee636013barEv");}
+ee63601 ::~ee63601(){ note_dtor("ee63601", this);} // tgen
+ee63601 ::ee63601(){ note_ctor("ee63601", this);} // tgen
+
+static void Test_ee63601()
+{
+ extern Class_Descriptor cd_ee63601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63601, buf);
+ ee63601 *dp, &lv = *(dp=new (buf) ee63601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee63601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee63601");
+ check_base_class_offset(lv, (cc601*)(dd3601*), ABISELECT(16,12), "ee63601");
+ check_base_class_offset(lv, (dd3601*), 0, "ee63601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63601.e");
+ test_class_info(&lv, &cd_ee63601);
+ dp->~ee63601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63601(Test_ee63601, "ee63601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63601C1Ev();
+extern void _ZN7ee63601D1Ev();
+Name_Map name_map_ee63601[] = {
+ NSPAIR(_ZN7ee63601C1Ev),
+ NSPAIR(_ZN7ee63601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd3601;
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static Base_Class bases_ee63601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63601[];
+extern void _ZN7ee636013fooEv();
+extern void _ZN7ee636013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636013fooEv,_ZTv0_n12_N7ee636013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636013fooEv,_ZThn12_N7ee636013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636013barEv,_ZTv0_n16_N7ee636013barEv)();
+extern void ABISELECT(_ZThn16_N7ee636013barEv,_ZThn12_N7ee636013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63601[0]),
+ (VTBL_ENTRY)&_ZN7ee636013fooEv,
+ (VTBL_ENTRY)&_ZN7ee636013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636013fooEv,_ZTv0_n12_N7ee636013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636013barEv,_ZTv0_n16_N7ee636013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63601[];
+extern void _ZN6dd36013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3601__7ee63601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd3601__7ee63601[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee63601[] = {
+ {&(_ZTV7ee63601[3]), 3,11},
+ {&(_tg__ZTV6dd3601__7ee63601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd3601__7ee63601[4]), 4,6},
+ {&(_ZTV7ee63601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63601[];
+extern VTBL_ENTRY _ZTV7ee63601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63601[];
+static VTBL_ENTRY alt_thunk_names593[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn12_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636013barEv,_ZTv0_n16_N7ee636013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636013barEv,_ZThn12_N7ee636013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636013fooEv,_ZTv0_n12_N7ee636013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636013fooEv,_ZThn12_N7ee636013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63601 = { "ee63601", // class name
+ bases_ee63601, 4,
+ &(vtc_ee63601[0]), // expected_vtbl_contents
+ &(vtt_ee63601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names593,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73601 : virtual dd3601 {
+ int e;
+ virtual void foo(); // _ZN7ee736013fooEv
+ virtual void bar(); // _ZN7ee736013barEv
+ ~ee73601(); // tgen
+ ee73601(); // tgen
+};
+//SIG(1 ee73601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73601 ::foo(){vfunc_called(this, "_ZN7ee736013fooEv");}
+void ee73601 ::bar(){vfunc_called(this, "_ZN7ee736013barEv");}
+ee73601 ::~ee73601(){ note_dtor("ee73601", this);} // tgen
+ee73601 ::ee73601(){ note_ctor("ee73601", this);} // tgen
+
+static void Test_ee73601()
+{
+ extern Class_Descriptor cd_ee73601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73601, buf);
+ ee73601 *dp, &lv = *(dp=new (buf) ee73601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee73601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee73601");
+ check_base_class_offset(lv, (cc601*)(dd3601*), ABISELECT(32,16), "ee73601");
+ check_base_class_offset(lv, (dd3601*), ABISELECT(16,8), "ee73601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73601.e");
+ test_class_info(&lv, &cd_ee73601);
+ dp->~ee73601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73601(Test_ee73601, "ee73601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73601C1Ev();
+extern void _ZN7ee73601D1Ev();
+Name_Map name_map_ee73601[] = {
+ NSPAIR(_ZN7ee73601C1Ev),
+ NSPAIR(_ZN7ee73601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd3601;
+extern VTBL_ENTRY _ZTI6dd3601[];
+extern VTBL_ENTRY _ZTV6dd3601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3601[];
+static Base_Class bases_ee73601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3601, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73601[];
+extern void _ZN7ee736013fooEv();
+extern void _ZN7ee736013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736013fooEv,_ZTv0_n16_N7ee736013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736013fooEv,_ZThn8_N7ee736013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736013fooEv,_ZTv0_n12_N7ee736013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736013fooEv,_ZThn16_N7ee736013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736013barEv,_ZTv0_n16_N7ee736013barEv)();
+extern void ABISELECT(_ZThn32_N7ee736013barEv,_ZThn16_N7ee736013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73601[0]),
+ (VTBL_ENTRY)&_ZN7ee736013fooEv,
+ (VTBL_ENTRY)&_ZN7ee736013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736013fooEv,_ZTv0_n16_N7ee736013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736013fooEv,_ZTv0_n12_N7ee736013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736013barEv,_ZTv0_n16_N7ee736013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73601[];
+extern void _ZN6dd36013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3601__7ee73601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&_ZN6dd36013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv)() __attribute__((weak));
+extern void _ZN5cc6013barEv();
+static VTBL_ENTRY _tg__ZTV5cc601__6dd3601__7ee73601[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv),
+ (VTBL_ENTRY)&_ZN5cc6013barEv,
+};
+static VTT_ENTRY vtt_ee73601[] = {
+ {&(_ZTV7ee73601[4]), 4,17},
+ {&(_ZTV7ee73601[10]), 10,17},
+ {&(_ZTV7ee73601[15]), 15,17},
+ {&(_tg__ZTV6dd3601__7ee73601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd3601__7ee73601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73601[];
+extern VTBL_ENTRY _ZTV7ee73601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73601[];
+static VTBL_ENTRY alt_thunk_names594[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36013fooEv,_ZTv0_n12_N6dd36013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36013fooEv,_ZThn8_N6dd36013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736013barEv,_ZTv0_n16_N7ee736013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736013barEv,_ZThn16_N7ee736013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736013fooEv,_ZTv0_n12_N7ee736013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736013fooEv,_ZThn16_N7ee736013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736013fooEv,_ZTv0_n16_N7ee736013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736013fooEv,_ZThn8_N7ee736013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73601 = { "ee73601", // class name
+ bases_ee73601, 4,
+ &(vtc_ee73601[0]), // expected_vtbl_contents
+ &(vtt_ee73601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73601),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names594,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4601 : cc601 {
+ int d;
+ virtual void bar(); // _ZN6dd46013barEv
+ ~dd4601(); // tgen
+ dd4601(); // tgen
+};
+//SIG(-1 dd4601) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4601 ::bar(){vfunc_called(this, "_ZN6dd46013barEv");}
+dd4601 ::~dd4601(){ note_dtor("dd4601", this);} // tgen
+dd4601 ::dd4601(){ note_ctor("dd4601", this);} // tgen
+
+static void Test_dd4601()
+{
+ extern Class_Descriptor cd_dd4601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4601, buf);
+ dd4601 *dp, &lv = *(dp=new (buf) dd4601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), 0, "dd4601");
+ check_base_class_offset(lv, (bb01*)(cc601*), 0, "dd4601");
+ check_base_class_offset(lv, (cc601*), 0, "dd4601");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4601.d");
+ test_class_info(&lv, &cd_dd4601);
+ dp->~dd4601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4601(Test_dd4601, "dd4601", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4601C1Ev();
+extern void _ZN6dd4601D1Ev();
+Name_Map name_map_dd4601[] = {
+ NSPAIR(_ZN6dd4601C1Ev),
+ NSPAIR(_ZN6dd4601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+static Base_Class bases_dd4601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN6dd46013barEv();
+static VTBL_ENTRY vtc_dd4601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN6dd46013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+Class_Descriptor cd_dd4601 = { "dd4601", // class name
+ bases_dd4601, 3,
+ &(vtc_dd4601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04601 : dd4601 {
+ int e;
+ ~ee04601(); // tgen
+ ee04601(); // tgen
+};
+//SIG(1 ee04601) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04601 ::~ee04601(){ note_dtor("ee04601", this);} // tgen
+ee04601 ::ee04601(){ note_ctor("ee04601", this);} // tgen
+
+static void Test_ee04601()
+{
+ extern Class_Descriptor cd_ee04601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04601, buf);
+ ee04601 *dp, &lv = *(dp=new (buf) ee04601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd4601*), 0, "ee04601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd4601*), 0, "ee04601");
+ check_base_class_offset(lv, (cc601*)(dd4601*), 0, "ee04601");
+ check_base_class_offset(lv, (dd4601*), 0, "ee04601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04601.e");
+ test_class_info(&lv, &cd_ee04601);
+ dp->~ee04601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04601(Test_ee04601, "ee04601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04601C1Ev();
+extern void _ZN7ee04601D1Ev();
+Name_Map name_map_ee04601[] = {
+ NSPAIR(_ZN7ee04601C1Ev),
+ NSPAIR(_ZN7ee04601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd4601;
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+static Base_Class bases_ee04601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4601, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN6dd46013barEv();
+static VTBL_ENTRY vtc_ee04601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN6dd46013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04601[];
+extern VTBL_ENTRY _ZTV7ee04601[];
+Class_Descriptor cd_ee04601 = { "ee04601", // class name
+ bases_ee04601, 4,
+ &(vtc_ee04601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14601 : virtual dd4601 {
+ int e;
+ ~ee14601(); // tgen
+ ee14601(); // tgen
+};
+//SIG(1 ee14601) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14601 ::~ee14601(){ note_dtor("ee14601", this);} // tgen
+ee14601 ::ee14601(){ note_ctor("ee14601", this);} // tgen
+
+static void Test_ee14601()
+{
+ extern Class_Descriptor cd_ee14601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14601, buf);
+ ee14601 *dp, &lv = *(dp=new (buf) ee14601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd4601*), ABISELECT(16,8), "ee14601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd4601*), ABISELECT(16,8), "ee14601");
+ check_base_class_offset(lv, (cc601*)(dd4601*), ABISELECT(16,8), "ee14601");
+ check_base_class_offset(lv, (dd4601*), ABISELECT(16,8), "ee14601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14601.e");
+ test_class_info(&lv, &cd_ee14601);
+ dp->~ee14601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14601(Test_ee14601, "ee14601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14601C1Ev();
+extern void _ZN7ee14601D1Ev();
+Name_Map name_map_ee14601[] = {
+ NSPAIR(_ZN7ee14601C1Ev),
+ NSPAIR(_ZN7ee14601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd4601;
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+static Base_Class bases_ee14601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4601, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN6dd46013barEv();
+static VTBL_ENTRY vtc_ee14601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14601[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN6dd46013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14601[];
+static VTT_ENTRY vtt_ee14601[] = {
+ {&(_ZTV7ee14601[3]), 3,9},
+ {&(_ZTV7ee14601[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14601[];
+extern VTBL_ENTRY _ZTV7ee14601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14601[];
+Class_Descriptor cd_ee14601 = { "ee14601", // class name
+ bases_ee14601, 4,
+ &(vtc_ee14601[0]), // expected_vtbl_contents
+ &(vtt_ee14601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14601),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24601 : dd4601 {
+ int e;
+ virtual void foo(); // _ZN7ee246013fooEv
+ ~ee24601(); // tgen
+ ee24601(); // tgen
+};
+//SIG(1 ee24601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24601 ::foo(){vfunc_called(this, "_ZN7ee246013fooEv");}
+ee24601 ::~ee24601(){ note_dtor("ee24601", this);} // tgen
+ee24601 ::ee24601(){ note_ctor("ee24601", this);} // tgen
+
+static void Test_ee24601()
+{
+ extern Class_Descriptor cd_ee24601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24601, buf);
+ ee24601 *dp, &lv = *(dp=new (buf) ee24601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd4601*), 0, "ee24601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd4601*), 0, "ee24601");
+ check_base_class_offset(lv, (cc601*)(dd4601*), 0, "ee24601");
+ check_base_class_offset(lv, (dd4601*), 0, "ee24601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24601.e");
+ test_class_info(&lv, &cd_ee24601);
+ dp->~ee24601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24601(Test_ee24601, "ee24601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24601C1Ev();
+extern void _ZN7ee24601D1Ev();
+Name_Map name_map_ee24601[] = {
+ NSPAIR(_ZN7ee24601C1Ev),
+ NSPAIR(_ZN7ee24601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd4601;
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+static Base_Class bases_ee24601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24601[];
+extern void _ZN7ee246013fooEv();
+extern void _ZN6dd46013barEv();
+static VTBL_ENTRY vtc_ee24601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24601[0]),
+ (VTBL_ENTRY)&_ZN7ee246013fooEv,
+ (VTBL_ENTRY)&_ZN6dd46013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24601[];
+extern VTBL_ENTRY _ZTV7ee24601[];
+Class_Descriptor cd_ee24601 = { "ee24601", // class name
+ bases_ee24601, 4,
+ &(vtc_ee24601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34601 : virtual dd4601 {
+ int e;
+ virtual void foo(); // _ZN7ee346013fooEv
+ ~ee34601(); // tgen
+ ee34601(); // tgen
+};
+//SIG(1 ee34601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34601 ::foo(){vfunc_called(this, "_ZN7ee346013fooEv");}
+ee34601 ::~ee34601(){ note_dtor("ee34601", this);} // tgen
+ee34601 ::ee34601(){ note_ctor("ee34601", this);} // tgen
+
+static void Test_ee34601()
+{
+ extern Class_Descriptor cd_ee34601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34601, buf);
+ ee34601 *dp, &lv = *(dp=new (buf) ee34601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd4601*), ABISELECT(16,8), "ee34601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd4601*), ABISELECT(16,8), "ee34601");
+ check_base_class_offset(lv, (cc601*)(dd4601*), ABISELECT(16,8), "ee34601");
+ check_base_class_offset(lv, (dd4601*), ABISELECT(16,8), "ee34601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34601.e");
+ test_class_info(&lv, &cd_ee34601);
+ dp->~ee34601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34601(Test_ee34601, "ee34601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34601C1Ev();
+extern void _ZN7ee34601D1Ev();
+Name_Map name_map_ee34601[] = {
+ NSPAIR(_ZN7ee34601C1Ev),
+ NSPAIR(_ZN7ee34601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd4601;
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+static Base_Class bases_ee34601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34601[];
+extern void _ZN7ee346013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee346013fooEv,_ZTv0_n12_N7ee346013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346013fooEv,_ZThn8_N7ee346013fooEv)() __attribute__((weak));
+extern void _ZN6dd46013barEv();
+static VTBL_ENTRY vtc_ee34601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34601[0]),
+ (VTBL_ENTRY)&_ZN7ee346013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346013fooEv,_ZTv0_n12_N7ee346013fooEv),
+ (VTBL_ENTRY)&_ZN6dd46013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34601[];
+static VTT_ENTRY vtt_ee34601[] = {
+ {&(_ZTV7ee34601[3]), 3,10},
+ {&(_ZTV7ee34601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34601[];
+extern VTBL_ENTRY _ZTV7ee34601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34601[];
+static VTBL_ENTRY alt_thunk_names595[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346013fooEv,_ZTv0_n12_N7ee346013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346013fooEv,_ZThn8_N7ee346013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34601 = { "ee34601", // class name
+ bases_ee34601, 4,
+ &(vtc_ee34601[0]), // expected_vtbl_contents
+ &(vtt_ee34601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names595,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44601 : dd4601 {
+ int e;
+ virtual void bar(); // _ZN7ee446013barEv
+ ~ee44601(); // tgen
+ ee44601(); // tgen
+};
+//SIG(1 ee44601) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44601 ::bar(){vfunc_called(this, "_ZN7ee446013barEv");}
+ee44601 ::~ee44601(){ note_dtor("ee44601", this);} // tgen
+ee44601 ::ee44601(){ note_ctor("ee44601", this);} // tgen
+
+static void Test_ee44601()
+{
+ extern Class_Descriptor cd_ee44601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44601, buf);
+ ee44601 *dp, &lv = *(dp=new (buf) ee44601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd4601*), 0, "ee44601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd4601*), 0, "ee44601");
+ check_base_class_offset(lv, (cc601*)(dd4601*), 0, "ee44601");
+ check_base_class_offset(lv, (dd4601*), 0, "ee44601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44601.e");
+ test_class_info(&lv, &cd_ee44601);
+ dp->~ee44601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44601(Test_ee44601, "ee44601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44601C1Ev();
+extern void _ZN7ee44601D1Ev();
+Name_Map name_map_ee44601[] = {
+ NSPAIR(_ZN7ee44601C1Ev),
+ NSPAIR(_ZN7ee44601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd4601;
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+static Base_Class bases_ee44601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44601[];
+extern void _ZN5cc6013fooEv();
+extern void _ZN7ee446013barEv();
+static VTBL_ENTRY vtc_ee44601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&_ZN7ee446013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44601[];
+extern VTBL_ENTRY _ZTV7ee44601[];
+Class_Descriptor cd_ee44601 = { "ee44601", // class name
+ bases_ee44601, 4,
+ &(vtc_ee44601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54601 : virtual dd4601 {
+ int e;
+ virtual void bar(); // _ZN7ee546013barEv
+ ~ee54601(); // tgen
+ ee54601(); // tgen
+};
+//SIG(1 ee54601) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54601 ::bar(){vfunc_called(this, "_ZN7ee546013barEv");}
+ee54601 ::~ee54601(){ note_dtor("ee54601", this);} // tgen
+ee54601 ::ee54601(){ note_ctor("ee54601", this);} // tgen
+
+static void Test_ee54601()
+{
+ extern Class_Descriptor cd_ee54601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54601, buf);
+ ee54601 *dp, &lv = *(dp=new (buf) ee54601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd4601*), ABISELECT(16,8), "ee54601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd4601*), ABISELECT(16,8), "ee54601");
+ check_base_class_offset(lv, (cc601*)(dd4601*), ABISELECT(16,8), "ee54601");
+ check_base_class_offset(lv, (dd4601*), ABISELECT(16,8), "ee54601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54601.e");
+ test_class_info(&lv, &cd_ee54601);
+ dp->~ee54601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54601(Test_ee54601, "ee54601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54601C1Ev();
+extern void _ZN7ee54601D1Ev();
+Name_Map name_map_ee54601[] = {
+ NSPAIR(_ZN7ee54601C1Ev),
+ NSPAIR(_ZN7ee54601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd4601;
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+static Base_Class bases_ee54601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54601[];
+extern void _ZN7ee546013barEv();
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546013barEv,_ZTv0_n16_N7ee546013barEv)();
+extern void ABISELECT(_ZThn16_N7ee546013barEv,_ZThn8_N7ee546013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54601[0]),
+ (VTBL_ENTRY)&_ZN7ee546013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546013barEv,_ZTv0_n16_N7ee546013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54601[];
+static VTT_ENTRY vtt_ee54601[] = {
+ {&(_ZTV7ee54601[3]), 3,10},
+ {&(_ZTV7ee54601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54601[];
+extern VTBL_ENTRY _ZTV7ee54601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54601[];
+static VTBL_ENTRY alt_thunk_names596[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546013barEv,_ZTv0_n16_N7ee546013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546013barEv,_ZThn8_N7ee546013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54601 = { "ee54601", // class name
+ bases_ee54601, 4,
+ &(vtc_ee54601[0]), // expected_vtbl_contents
+ &(vtt_ee54601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names596,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64601 : dd4601 {
+ int e;
+ virtual void foo(); // _ZN7ee646013fooEv
+ virtual void bar(); // _ZN7ee646013barEv
+ ~ee64601(); // tgen
+ ee64601(); // tgen
+};
+//SIG(1 ee64601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64601 ::foo(){vfunc_called(this, "_ZN7ee646013fooEv");}
+void ee64601 ::bar(){vfunc_called(this, "_ZN7ee646013barEv");}
+ee64601 ::~ee64601(){ note_dtor("ee64601", this);} // tgen
+ee64601 ::ee64601(){ note_ctor("ee64601", this);} // tgen
+
+static void Test_ee64601()
+{
+ extern Class_Descriptor cd_ee64601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64601, buf);
+ ee64601 *dp, &lv = *(dp=new (buf) ee64601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd4601*), 0, "ee64601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd4601*), 0, "ee64601");
+ check_base_class_offset(lv, (cc601*)(dd4601*), 0, "ee64601");
+ check_base_class_offset(lv, (dd4601*), 0, "ee64601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64601.e");
+ test_class_info(&lv, &cd_ee64601);
+ dp->~ee64601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64601(Test_ee64601, "ee64601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64601C1Ev();
+extern void _ZN7ee64601D1Ev();
+Name_Map name_map_ee64601[] = {
+ NSPAIR(_ZN7ee64601C1Ev),
+ NSPAIR(_ZN7ee64601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd4601;
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+static Base_Class bases_ee64601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64601[];
+extern void _ZN7ee646013fooEv();
+extern void _ZN7ee646013barEv();
+static VTBL_ENTRY vtc_ee64601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64601[0]),
+ (VTBL_ENTRY)&_ZN7ee646013fooEv,
+ (VTBL_ENTRY)&_ZN7ee646013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64601[];
+extern VTBL_ENTRY _ZTV7ee64601[];
+Class_Descriptor cd_ee64601 = { "ee64601", // class name
+ bases_ee64601, 4,
+ &(vtc_ee64601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74601 : virtual dd4601 {
+ int e;
+ virtual void foo(); // _ZN7ee746013fooEv
+ virtual void bar(); // _ZN7ee746013barEv
+ ~ee74601(); // tgen
+ ee74601(); // tgen
+};
+//SIG(1 ee74601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74601 ::foo(){vfunc_called(this, "_ZN7ee746013fooEv");}
+void ee74601 ::bar(){vfunc_called(this, "_ZN7ee746013barEv");}
+ee74601 ::~ee74601(){ note_dtor("ee74601", this);} // tgen
+ee74601 ::ee74601(){ note_ctor("ee74601", this);} // tgen
+
+static void Test_ee74601()
+{
+ extern Class_Descriptor cd_ee74601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74601, buf);
+ ee74601 *dp, &lv = *(dp=new (buf) ee74601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd4601*), ABISELECT(16,8), "ee74601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd4601*), ABISELECT(16,8), "ee74601");
+ check_base_class_offset(lv, (cc601*)(dd4601*), ABISELECT(16,8), "ee74601");
+ check_base_class_offset(lv, (dd4601*), ABISELECT(16,8), "ee74601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74601.e");
+ test_class_info(&lv, &cd_ee74601);
+ dp->~ee74601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74601(Test_ee74601, "ee74601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74601C1Ev();
+extern void _ZN7ee74601D1Ev();
+Name_Map name_map_ee74601[] = {
+ NSPAIR(_ZN7ee74601C1Ev),
+ NSPAIR(_ZN7ee74601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd4601;
+extern VTBL_ENTRY _ZTI6dd4601[];
+extern VTBL_ENTRY _ZTV6dd4601[];
+static Base_Class bases_ee74601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74601[];
+extern void _ZN7ee746013fooEv();
+extern void _ZN7ee746013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746013fooEv,_ZTv0_n12_N7ee746013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746013fooEv,_ZThn8_N7ee746013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746013barEv,_ZTv0_n16_N7ee746013barEv)();
+extern void ABISELECT(_ZThn16_N7ee746013barEv,_ZThn8_N7ee746013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74601[0]),
+ (VTBL_ENTRY)&_ZN7ee746013fooEv,
+ (VTBL_ENTRY)&_ZN7ee746013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746013fooEv,_ZTv0_n12_N7ee746013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746013barEv,_ZTv0_n16_N7ee746013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74601[];
+static VTT_ENTRY vtt_ee74601[] = {
+ {&(_ZTV7ee74601[3]), 3,11},
+ {&(_ZTV7ee74601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74601[];
+extern VTBL_ENTRY _ZTV7ee74601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74601[];
+static VTBL_ENTRY alt_thunk_names597[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746013barEv,_ZTv0_n16_N7ee746013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746013barEv,_ZThn8_N7ee746013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746013fooEv,_ZTv0_n12_N7ee746013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746013fooEv,_ZThn8_N7ee746013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74601 = { "ee74601", // class name
+ bases_ee74601, 4,
+ &(vtc_ee74601[0]), // expected_vtbl_contents
+ &(vtt_ee74601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names597,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5601 : virtual cc601 {
+ int d;
+ virtual void bar(); // _ZN6dd56013barEv
+ ~dd5601(); // tgen
+ dd5601(); // tgen
+};
+//SIG(-1 dd5601) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5601 ::bar(){vfunc_called(this, "_ZN6dd56013barEv");}
+dd5601 ::~dd5601(){ note_dtor("dd5601", this);} // tgen
+dd5601 ::dd5601(){ note_ctor("dd5601", this);} // tgen
+
+static void Test_dd5601()
+{
+ extern Class_Descriptor cd_dd5601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5601, buf);
+ dd5601 *dp, &lv = *(dp=new (buf) dd5601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,8), "dd5601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,8), "dd5601");
+ check_base_class_offset(lv, (cc601*), ABISELECT(16,8), "dd5601");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5601.d");
+ test_class_info(&lv, &cd_dd5601);
+ dp->~dd5601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5601(Test_dd5601, "dd5601", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5601C1Ev();
+extern void _ZN6dd5601D1Ev();
+Name_Map name_map_dd5601[] = {
+ NSPAIR(_ZN6dd5601C1Ev),
+ NSPAIR(_ZN6dd5601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+static Base_Class bases_dd5601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern void _ZN6dd56013barEv();
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5601[];
+static VTT_ENTRY vtt_dd5601[] = {
+ {&(_ZTV6dd5601[3]), 3,10},
+ {&(_ZTV6dd5601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static VTBL_ENTRY alt_thunk_names598[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5601 = { "dd5601", // class name
+ bases_dd5601, 3,
+ &(vtc_dd5601[0]), // expected_vtbl_contents
+ &(vtt_dd5601[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5601),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names598,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05601 : dd5601 {
+ int e;
+ ~ee05601(); // tgen
+ ee05601(); // tgen
+};
+//SIG(1 ee05601) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05601 ::~ee05601(){ note_dtor("ee05601", this);} // tgen
+ee05601 ::ee05601(){ note_ctor("ee05601", this);} // tgen
+
+static void Test_ee05601()
+{
+ extern Class_Descriptor cd_ee05601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05601, buf);
+ ee05601 *dp, &lv = *(dp=new (buf) ee05601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee05601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee05601");
+ check_base_class_offset(lv, (cc601*)(dd5601*), ABISELECT(16,12), "ee05601");
+ check_base_class_offset(lv, (dd5601*), 0, "ee05601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05601.e");
+ test_class_info(&lv, &cd_ee05601);
+ dp->~ee05601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05601(Test_ee05601, "ee05601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05601C1Ev();
+extern void _ZN7ee05601D1Ev();
+Name_Map name_map_ee05601[] = {
+ NSPAIR(_ZN7ee05601C1Ev),
+ NSPAIR(_ZN7ee05601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd5601;
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static Base_Class bases_ee05601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05601[];
+extern void _ZN6dd56013barEv();
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05601[];
+extern void _ZN6dd56013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5601__7ee05601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+};
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd5601__7ee05601[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+static VTT_ENTRY vtt_ee05601[] = {
+ {&(_ZTV7ee05601[3]), 3,10},
+ {&(_tg__ZTV6dd5601__7ee05601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd5601__7ee05601[4]), 4,6},
+ {&(_ZTV7ee05601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05601[];
+extern VTBL_ENTRY _ZTV7ee05601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05601[];
+static VTBL_ENTRY alt_thunk_names599[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05601 = { "ee05601", // class name
+ bases_ee05601, 4,
+ &(vtc_ee05601[0]), // expected_vtbl_contents
+ &(vtt_ee05601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names599,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15601 : virtual dd5601 {
+ int e;
+ ~ee15601(); // tgen
+ ee15601(); // tgen
+};
+//SIG(1 ee15601) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15601 ::~ee15601(){ note_dtor("ee15601", this);} // tgen
+ee15601 ::ee15601(){ note_ctor("ee15601", this);} // tgen
+
+static void Test_ee15601()
+{
+ extern Class_Descriptor cd_ee15601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15601, buf);
+ ee15601 *dp, &lv = *(dp=new (buf) ee15601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee15601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee15601");
+ check_base_class_offset(lv, (cc601*)(dd5601*), ABISELECT(32,16), "ee15601");
+ check_base_class_offset(lv, (dd5601*), ABISELECT(16,8), "ee15601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15601.e");
+ test_class_info(&lv, &cd_ee15601);
+ dp->~ee15601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15601(Test_ee15601, "ee15601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15601C1Ev();
+extern void _ZN7ee15601D1Ev();
+Name_Map name_map_ee15601[] = {
+ NSPAIR(_ZN7ee15601C1Ev),
+ NSPAIR(_ZN7ee15601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd5601;
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static Base_Class bases_ee15601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15601[];
+extern void _ZN6dd56013barEv();
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15601[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15601[];
+extern void _ZN6dd56013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5601__7ee15601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+};
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd5601__7ee15601[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+static VTT_ENTRY vtt_ee15601[] = {
+ {&(_ZTV7ee15601[4]), 4,15},
+ {&(_ZTV7ee15601[8]), 8,15},
+ {&(_ZTV7ee15601[13]), 13,15},
+ {&(_tg__ZTV6dd5601__7ee15601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd5601__7ee15601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15601[];
+extern VTBL_ENTRY _ZTV7ee15601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15601[];
+static VTBL_ENTRY alt_thunk_names600[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15601 = { "ee15601", // class name
+ bases_ee15601, 4,
+ &(vtc_ee15601[0]), // expected_vtbl_contents
+ &(vtt_ee15601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15601),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names600,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25601 : dd5601 {
+ int e;
+ virtual void foo(); // _ZN7ee256013fooEv
+ ~ee25601(); // tgen
+ ee25601(); // tgen
+};
+//SIG(1 ee25601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25601 ::foo(){vfunc_called(this, "_ZN7ee256013fooEv");}
+ee25601 ::~ee25601(){ note_dtor("ee25601", this);} // tgen
+ee25601 ::ee25601(){ note_ctor("ee25601", this);} // tgen
+
+static void Test_ee25601()
+{
+ extern Class_Descriptor cd_ee25601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25601, buf);
+ ee25601 *dp, &lv = *(dp=new (buf) ee25601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee25601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee25601");
+ check_base_class_offset(lv, (cc601*)(dd5601*), ABISELECT(16,12), "ee25601");
+ check_base_class_offset(lv, (dd5601*), 0, "ee25601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25601.e");
+ test_class_info(&lv, &cd_ee25601);
+ dp->~ee25601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25601(Test_ee25601, "ee25601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25601C1Ev();
+extern void _ZN7ee25601D1Ev();
+Name_Map name_map_ee25601[] = {
+ NSPAIR(_ZN7ee25601C1Ev),
+ NSPAIR(_ZN7ee25601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd5601;
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static Base_Class bases_ee25601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25601[];
+extern void _ZN6dd56013barEv();
+extern void _ZN7ee256013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee256013fooEv,_ZTv0_n12_N7ee256013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256013fooEv,_ZThn12_N7ee256013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+ (VTBL_ENTRY)&_ZN7ee256013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256013fooEv,_ZTv0_n12_N7ee256013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25601[];
+extern void _ZN6dd56013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5601__7ee25601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+};
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd5601__7ee25601[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+static VTT_ENTRY vtt_ee25601[] = {
+ {&(_ZTV7ee25601[3]), 3,11},
+ {&(_tg__ZTV6dd5601__7ee25601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd5601__7ee25601[4]), 4,6},
+ {&(_ZTV7ee25601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25601[];
+extern VTBL_ENTRY _ZTV7ee25601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25601[];
+static VTBL_ENTRY alt_thunk_names601[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256013fooEv,_ZTv0_n12_N7ee256013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256013fooEv,_ZThn12_N7ee256013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25601 = { "ee25601", // class name
+ bases_ee25601, 4,
+ &(vtc_ee25601[0]), // expected_vtbl_contents
+ &(vtt_ee25601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names601,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35601 : virtual dd5601 {
+ int e;
+ virtual void foo(); // _ZN7ee356013fooEv
+ ~ee35601(); // tgen
+ ee35601(); // tgen
+};
+//SIG(1 ee35601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35601 ::foo(){vfunc_called(this, "_ZN7ee356013fooEv");}
+ee35601 ::~ee35601(){ note_dtor("ee35601", this);} // tgen
+ee35601 ::ee35601(){ note_ctor("ee35601", this);} // tgen
+
+static void Test_ee35601()
+{
+ extern Class_Descriptor cd_ee35601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35601, buf);
+ ee35601 *dp, &lv = *(dp=new (buf) ee35601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee35601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee35601");
+ check_base_class_offset(lv, (cc601*)(dd5601*), ABISELECT(32,16), "ee35601");
+ check_base_class_offset(lv, (dd5601*), ABISELECT(16,8), "ee35601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35601.e");
+ test_class_info(&lv, &cd_ee35601);
+ dp->~ee35601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35601(Test_ee35601, "ee35601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35601C1Ev();
+extern void _ZN7ee35601D1Ev();
+Name_Map name_map_ee35601[] = {
+ NSPAIR(_ZN7ee35601C1Ev),
+ NSPAIR(_ZN7ee35601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd5601;
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static Base_Class bases_ee35601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35601[];
+extern void _ZN7ee356013fooEv();
+extern void _ZN6dd56013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee356013fooEv,_ZTv0_n12_N7ee356013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356013fooEv,_ZThn16_N7ee356013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35601[0]),
+ (VTBL_ENTRY)&_ZN7ee356013fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356013fooEv,_ZTv0_n12_N7ee356013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35601[];
+extern void _ZN6dd56013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5601__7ee35601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+};
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd5601__7ee35601[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+static VTT_ENTRY vtt_ee35601[] = {
+ {&(_ZTV7ee35601[4]), 4,16},
+ {&(_ZTV7ee35601[9]), 9,16},
+ {&(_ZTV7ee35601[14]), 14,16},
+ {&(_tg__ZTV6dd5601__7ee35601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd5601__7ee35601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35601[];
+extern VTBL_ENTRY _ZTV7ee35601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35601[];
+static VTBL_ENTRY alt_thunk_names602[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356013fooEv,_ZTv0_n12_N7ee356013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356013fooEv,_ZThn16_N7ee356013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35601 = { "ee35601", // class name
+ bases_ee35601, 4,
+ &(vtc_ee35601[0]), // expected_vtbl_contents
+ &(vtt_ee35601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35601),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names602,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45601 : dd5601 {
+ int e;
+ virtual void bar(); // _ZN7ee456013barEv
+ ~ee45601(); // tgen
+ ee45601(); // tgen
+};
+//SIG(1 ee45601) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45601 ::bar(){vfunc_called(this, "_ZN7ee456013barEv");}
+ee45601 ::~ee45601(){ note_dtor("ee45601", this);} // tgen
+ee45601 ::ee45601(){ note_ctor("ee45601", this);} // tgen
+
+static void Test_ee45601()
+{
+ extern Class_Descriptor cd_ee45601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45601, buf);
+ ee45601 *dp, &lv = *(dp=new (buf) ee45601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee45601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee45601");
+ check_base_class_offset(lv, (cc601*)(dd5601*), ABISELECT(16,12), "ee45601");
+ check_base_class_offset(lv, (dd5601*), 0, "ee45601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45601.e");
+ test_class_info(&lv, &cd_ee45601);
+ dp->~ee45601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45601(Test_ee45601, "ee45601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45601C1Ev();
+extern void _ZN7ee45601D1Ev();
+Name_Map name_map_ee45601[] = {
+ NSPAIR(_ZN7ee45601C1Ev),
+ NSPAIR(_ZN7ee45601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd5601;
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static Base_Class bases_ee45601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45601[];
+extern void _ZN7ee456013barEv();
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456013barEv,_ZTv0_n16_N7ee456013barEv)();
+extern void ABISELECT(_ZThn16_N7ee456013barEv,_ZThn12_N7ee456013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45601[0]),
+ (VTBL_ENTRY)&_ZN7ee456013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456013barEv,_ZTv0_n16_N7ee456013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45601[];
+extern void _ZN6dd56013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5601__7ee45601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+};
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd5601__7ee45601[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+static VTT_ENTRY vtt_ee45601[] = {
+ {&(_ZTV7ee45601[3]), 3,10},
+ {&(_tg__ZTV6dd5601__7ee45601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd5601__7ee45601[4]), 4,6},
+ {&(_ZTV7ee45601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45601[];
+extern VTBL_ENTRY _ZTV7ee45601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45601[];
+static VTBL_ENTRY alt_thunk_names603[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456013barEv,_ZTv0_n16_N7ee456013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456013barEv,_ZThn12_N7ee456013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45601 = { "ee45601", // class name
+ bases_ee45601, 4,
+ &(vtc_ee45601[0]), // expected_vtbl_contents
+ &(vtt_ee45601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names603,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55601 : virtual dd5601 {
+ int e;
+ virtual void bar(); // _ZN7ee556013barEv
+ ~ee55601(); // tgen
+ ee55601(); // tgen
+};
+//SIG(1 ee55601) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55601 ::bar(){vfunc_called(this, "_ZN7ee556013barEv");}
+ee55601 ::~ee55601(){ note_dtor("ee55601", this);} // tgen
+ee55601 ::ee55601(){ note_ctor("ee55601", this);} // tgen
+
+static void Test_ee55601()
+{
+ extern Class_Descriptor cd_ee55601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55601, buf);
+ ee55601 *dp, &lv = *(dp=new (buf) ee55601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee55601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee55601");
+ check_base_class_offset(lv, (cc601*)(dd5601*), ABISELECT(32,16), "ee55601");
+ check_base_class_offset(lv, (dd5601*), ABISELECT(16,8), "ee55601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55601.e");
+ test_class_info(&lv, &cd_ee55601);
+ dp->~ee55601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55601(Test_ee55601, "ee55601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55601C1Ev();
+extern void _ZN7ee55601D1Ev();
+Name_Map name_map_ee55601[] = {
+ NSPAIR(_ZN7ee55601C1Ev),
+ NSPAIR(_ZN7ee55601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd5601;
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static Base_Class bases_ee55601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55601[];
+extern void _ZN7ee556013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556013barEv,_ZTv0_n16_N7ee556013barEv)();
+extern void ABISELECT(_ZThn16_N7ee556013barEv,_ZThn8_N7ee556013barEv)() __attribute__((weak));
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556013barEv,_ZTv0_n16_N7ee556013barEv)();
+extern void ABISELECT(_ZThn32_N7ee556013barEv,_ZThn16_N7ee556013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55601[0]),
+ (VTBL_ENTRY)&_ZN7ee556013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556013barEv,_ZTv0_n16_N7ee556013barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556013barEv,_ZTv0_n16_N7ee556013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55601[];
+extern void _ZN6dd56013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5601__7ee55601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+};
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd5601__7ee55601[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+static VTT_ENTRY vtt_ee55601[] = {
+ {&(_ZTV7ee55601[4]), 4,16},
+ {&(_ZTV7ee55601[9]), 9,16},
+ {&(_ZTV7ee55601[14]), 14,16},
+ {&(_tg__ZTV6dd5601__7ee55601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd5601__7ee55601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55601[];
+extern VTBL_ENTRY _ZTV7ee55601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55601[];
+static VTBL_ENTRY alt_thunk_names604[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556013barEv,_ZTv0_n16_N7ee556013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556013barEv,_ZThn16_N7ee556013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556013barEv,_ZThn8_N7ee556013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55601 = { "ee55601", // class name
+ bases_ee55601, 4,
+ &(vtc_ee55601[0]), // expected_vtbl_contents
+ &(vtt_ee55601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55601),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names604,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65601 : dd5601 {
+ int e;
+ virtual void foo(); // _ZN7ee656013fooEv
+ virtual void bar(); // _ZN7ee656013barEv
+ ~ee65601(); // tgen
+ ee65601(); // tgen
+};
+//SIG(1 ee65601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65601 ::foo(){vfunc_called(this, "_ZN7ee656013fooEv");}
+void ee65601 ::bar(){vfunc_called(this, "_ZN7ee656013barEv");}
+ee65601 ::~ee65601(){ note_dtor("ee65601", this);} // tgen
+ee65601 ::ee65601(){ note_ctor("ee65601", this);} // tgen
+
+static void Test_ee65601()
+{
+ extern Class_Descriptor cd_ee65601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65601, buf);
+ ee65601 *dp, &lv = *(dp=new (buf) ee65601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee65601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee65601");
+ check_base_class_offset(lv, (cc601*)(dd5601*), ABISELECT(16,12), "ee65601");
+ check_base_class_offset(lv, (dd5601*), 0, "ee65601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65601.e");
+ test_class_info(&lv, &cd_ee65601);
+ dp->~ee65601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65601(Test_ee65601, "ee65601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65601C1Ev();
+extern void _ZN7ee65601D1Ev();
+Name_Map name_map_ee65601[] = {
+ NSPAIR(_ZN7ee65601C1Ev),
+ NSPAIR(_ZN7ee65601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd5601;
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static Base_Class bases_ee65601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65601[];
+extern void _ZN7ee656013barEv();
+extern void _ZN7ee656013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656013fooEv,_ZTv0_n12_N7ee656013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656013fooEv,_ZThn12_N7ee656013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656013barEv,_ZTv0_n16_N7ee656013barEv)();
+extern void ABISELECT(_ZThn16_N7ee656013barEv,_ZThn12_N7ee656013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65601[0]),
+ (VTBL_ENTRY)&_ZN7ee656013barEv,
+ (VTBL_ENTRY)&_ZN7ee656013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656013fooEv,_ZTv0_n12_N7ee656013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656013barEv,_ZTv0_n16_N7ee656013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65601[];
+extern void _ZN6dd56013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5601__7ee65601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+};
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd5601__7ee65601[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+static VTT_ENTRY vtt_ee65601[] = {
+ {&(_ZTV7ee65601[3]), 3,11},
+ {&(_tg__ZTV6dd5601__7ee65601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd5601__7ee65601[4]), 4,6},
+ {&(_ZTV7ee65601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65601[];
+extern VTBL_ENTRY _ZTV7ee65601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65601[];
+static VTBL_ENTRY alt_thunk_names605[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn12_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656013barEv,_ZTv0_n16_N7ee656013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656013barEv,_ZThn12_N7ee656013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656013fooEv,_ZTv0_n12_N7ee656013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656013fooEv,_ZThn12_N7ee656013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65601 = { "ee65601", // class name
+ bases_ee65601, 4,
+ &(vtc_ee65601[0]), // expected_vtbl_contents
+ &(vtt_ee65601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names605,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75601 : virtual dd5601 {
+ int e;
+ virtual void foo(); // _ZN7ee756013fooEv
+ virtual void bar(); // _ZN7ee756013barEv
+ ~ee75601(); // tgen
+ ee75601(); // tgen
+};
+//SIG(1 ee75601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75601 ::foo(){vfunc_called(this, "_ZN7ee756013fooEv");}
+void ee75601 ::bar(){vfunc_called(this, "_ZN7ee756013barEv");}
+ee75601 ::~ee75601(){ note_dtor("ee75601", this);} // tgen
+ee75601 ::ee75601(){ note_ctor("ee75601", this);} // tgen
+
+static void Test_ee75601()
+{
+ extern Class_Descriptor cd_ee75601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75601, buf);
+ ee75601 *dp, &lv = *(dp=new (buf) ee75601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee75601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee75601");
+ check_base_class_offset(lv, (cc601*)(dd5601*), ABISELECT(32,16), "ee75601");
+ check_base_class_offset(lv, (dd5601*), ABISELECT(16,8), "ee75601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75601.e");
+ test_class_info(&lv, &cd_ee75601);
+ dp->~ee75601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75601(Test_ee75601, "ee75601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75601C1Ev();
+extern void _ZN7ee75601D1Ev();
+Name_Map name_map_ee75601[] = {
+ NSPAIR(_ZN7ee75601C1Ev),
+ NSPAIR(_ZN7ee75601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd5601;
+extern VTBL_ENTRY _ZTI6dd5601[];
+extern VTBL_ENTRY _ZTV6dd5601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5601[];
+static Base_Class bases_ee75601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5601, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75601[];
+extern void _ZN7ee756013fooEv();
+extern void _ZN7ee756013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756013barEv,_ZTv0_n16_N7ee756013barEv)();
+extern void ABISELECT(_ZThn16_N7ee756013barEv,_ZThn8_N7ee756013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756013fooEv,_ZTv0_n12_N7ee756013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756013fooEv,_ZThn16_N7ee756013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756013barEv,_ZTv0_n16_N7ee756013barEv)();
+extern void ABISELECT(_ZThn32_N7ee756013barEv,_ZThn16_N7ee756013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75601[0]),
+ (VTBL_ENTRY)&_ZN7ee756013fooEv,
+ (VTBL_ENTRY)&_ZN7ee756013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756013barEv,_ZTv0_n16_N7ee756013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756013fooEv,_ZTv0_n12_N7ee756013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756013barEv,_ZTv0_n16_N7ee756013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75601[];
+extern void _ZN6dd56013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5601__7ee75601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN6dd56013barEv,
+};
+extern void _ZN5cc6013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv)();
+extern void ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd5601__7ee75601[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5601[0]),
+ (VTBL_ENTRY)&_ZN5cc6013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv),
+};
+static VTT_ENTRY vtt_ee75601[] = {
+ {&(_ZTV7ee75601[4]), 4,17},
+ {&(_ZTV7ee75601[10]), 10,17},
+ {&(_ZTV7ee75601[15]), 15,17},
+ {&(_tg__ZTV6dd5601__7ee75601[3]), 3,4},
+ {&(_tg__ZTV5cc601__6dd5601__7ee75601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75601[];
+extern VTBL_ENTRY _ZTV7ee75601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75601[];
+static VTBL_ENTRY alt_thunk_names606[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56013barEv,_ZTv0_n16_N6dd56013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56013barEv,_ZThn8_N6dd56013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756013fooEv,_ZTv0_n12_N7ee756013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756013fooEv,_ZThn16_N7ee756013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756013barEv,_ZTv0_n16_N7ee756013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756013barEv,_ZThn16_N7ee756013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756013barEv,_ZThn8_N7ee756013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75601 = { "ee75601", // class name
+ bases_ee75601, 4,
+ &(vtc_ee75601[0]), // expected_vtbl_contents
+ &(vtt_ee75601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75601),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names606,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6601 : cc601 {
+ int d;
+ virtual void bar(); // _ZN6dd66013barEv
+ virtual void foo(); // _ZN6dd66013fooEv
+ ~dd6601(); // tgen
+ dd6601(); // tgen
+};
+//SIG(-1 dd6601) C1{ BC2{ BC3{ BC4{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6601 ::bar(){vfunc_called(this, "_ZN6dd66013barEv");}
+void dd6601 ::foo(){vfunc_called(this, "_ZN6dd66013fooEv");}
+dd6601 ::~dd6601(){ note_dtor("dd6601", this);} // tgen
+dd6601 ::dd6601(){ note_ctor("dd6601", this);} // tgen
+
+static void Test_dd6601()
+{
+ extern Class_Descriptor cd_dd6601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6601, buf);
+ dd6601 *dp, &lv = *(dp=new (buf) dd6601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), 0, "dd6601");
+ check_base_class_offset(lv, (bb01*)(cc601*), 0, "dd6601");
+ check_base_class_offset(lv, (cc601*), 0, "dd6601");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6601.d");
+ test_class_info(&lv, &cd_dd6601);
+ dp->~dd6601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6601(Test_dd6601, "dd6601", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6601C1Ev();
+extern void _ZN6dd6601D1Ev();
+Name_Map name_map_dd6601[] = {
+ NSPAIR(_ZN6dd6601C1Ev),
+ NSPAIR(_ZN6dd6601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+static Base_Class bases_dd6601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern void _ZN6dd66013fooEv();
+extern void _ZN6dd66013barEv();
+static VTBL_ENTRY vtc_dd6601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6601[0]),
+ (VTBL_ENTRY)&_ZN6dd66013fooEv,
+ (VTBL_ENTRY)&_ZN6dd66013barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+Class_Descriptor cd_dd6601 = { "dd6601", // class name
+ bases_dd6601, 3,
+ &(vtc_dd6601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06601 : dd6601 {
+ int e;
+ ~ee06601(); // tgen
+ ee06601(); // tgen
+};
+//SIG(1 ee06601) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06601 ::~ee06601(){ note_dtor("ee06601", this);} // tgen
+ee06601 ::ee06601(){ note_ctor("ee06601", this);} // tgen
+
+static void Test_ee06601()
+{
+ extern Class_Descriptor cd_ee06601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06601, buf);
+ ee06601 *dp, &lv = *(dp=new (buf) ee06601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd6601*), 0, "ee06601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd6601*), 0, "ee06601");
+ check_base_class_offset(lv, (cc601*)(dd6601*), 0, "ee06601");
+ check_base_class_offset(lv, (dd6601*), 0, "ee06601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06601.e");
+ test_class_info(&lv, &cd_ee06601);
+ dp->~ee06601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06601(Test_ee06601, "ee06601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06601C1Ev();
+extern void _ZN7ee06601D1Ev();
+Name_Map name_map_ee06601[] = {
+ NSPAIR(_ZN7ee06601C1Ev),
+ NSPAIR(_ZN7ee06601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd6601;
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+static Base_Class bases_ee06601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6601, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06601[];
+extern void _ZN6dd66013fooEv();
+extern void _ZN6dd66013barEv();
+static VTBL_ENTRY vtc_ee06601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06601[0]),
+ (VTBL_ENTRY)&_ZN6dd66013fooEv,
+ (VTBL_ENTRY)&_ZN6dd66013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06601[];
+extern VTBL_ENTRY _ZTV7ee06601[];
+Class_Descriptor cd_ee06601 = { "ee06601", // class name
+ bases_ee06601, 4,
+ &(vtc_ee06601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16601 : virtual dd6601 {
+ int e;
+ ~ee16601(); // tgen
+ ee16601(); // tgen
+};
+//SIG(1 ee16601) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16601 ::~ee16601(){ note_dtor("ee16601", this);} // tgen
+ee16601 ::ee16601(){ note_ctor("ee16601", this);} // tgen
+
+static void Test_ee16601()
+{
+ extern Class_Descriptor cd_ee16601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16601, buf);
+ ee16601 *dp, &lv = *(dp=new (buf) ee16601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd6601*), ABISELECT(16,8), "ee16601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd6601*), ABISELECT(16,8), "ee16601");
+ check_base_class_offset(lv, (cc601*)(dd6601*), ABISELECT(16,8), "ee16601");
+ check_base_class_offset(lv, (dd6601*), ABISELECT(16,8), "ee16601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16601.e");
+ test_class_info(&lv, &cd_ee16601);
+ dp->~ee16601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16601(Test_ee16601, "ee16601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16601C1Ev();
+extern void _ZN7ee16601D1Ev();
+Name_Map name_map_ee16601[] = {
+ NSPAIR(_ZN7ee16601C1Ev),
+ NSPAIR(_ZN7ee16601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd6601;
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+static Base_Class bases_ee16601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6601, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16601[];
+extern void _ZN6dd66013fooEv();
+extern void _ZN6dd66013barEv();
+static VTBL_ENTRY vtc_ee16601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16601[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16601[0]),
+ (VTBL_ENTRY)&_ZN6dd66013fooEv,
+ (VTBL_ENTRY)&_ZN6dd66013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16601[];
+static VTT_ENTRY vtt_ee16601[] = {
+ {&(_ZTV7ee16601[3]), 3,9},
+ {&(_ZTV7ee16601[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16601[];
+extern VTBL_ENTRY _ZTV7ee16601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16601[];
+Class_Descriptor cd_ee16601 = { "ee16601", // class name
+ bases_ee16601, 4,
+ &(vtc_ee16601[0]), // expected_vtbl_contents
+ &(vtt_ee16601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16601),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26601 : dd6601 {
+ int e;
+ virtual void foo(); // _ZN7ee266013fooEv
+ ~ee26601(); // tgen
+ ee26601(); // tgen
+};
+//SIG(1 ee26601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26601 ::foo(){vfunc_called(this, "_ZN7ee266013fooEv");}
+ee26601 ::~ee26601(){ note_dtor("ee26601", this);} // tgen
+ee26601 ::ee26601(){ note_ctor("ee26601", this);} // tgen
+
+static void Test_ee26601()
+{
+ extern Class_Descriptor cd_ee26601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26601, buf);
+ ee26601 *dp, &lv = *(dp=new (buf) ee26601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd6601*), 0, "ee26601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd6601*), 0, "ee26601");
+ check_base_class_offset(lv, (cc601*)(dd6601*), 0, "ee26601");
+ check_base_class_offset(lv, (dd6601*), 0, "ee26601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26601.e");
+ test_class_info(&lv, &cd_ee26601);
+ dp->~ee26601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26601(Test_ee26601, "ee26601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26601C1Ev();
+extern void _ZN7ee26601D1Ev();
+Name_Map name_map_ee26601[] = {
+ NSPAIR(_ZN7ee26601C1Ev),
+ NSPAIR(_ZN7ee26601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd6601;
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+static Base_Class bases_ee26601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26601[];
+extern void _ZN7ee266013fooEv();
+extern void _ZN6dd66013barEv();
+static VTBL_ENTRY vtc_ee26601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26601[0]),
+ (VTBL_ENTRY)&_ZN7ee266013fooEv,
+ (VTBL_ENTRY)&_ZN6dd66013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26601[];
+extern VTBL_ENTRY _ZTV7ee26601[];
+Class_Descriptor cd_ee26601 = { "ee26601", // class name
+ bases_ee26601, 4,
+ &(vtc_ee26601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36601 : virtual dd6601 {
+ int e;
+ virtual void foo(); // _ZN7ee366013fooEv
+ ~ee36601(); // tgen
+ ee36601(); // tgen
+};
+//SIG(1 ee36601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36601 ::foo(){vfunc_called(this, "_ZN7ee366013fooEv");}
+ee36601 ::~ee36601(){ note_dtor("ee36601", this);} // tgen
+ee36601 ::ee36601(){ note_ctor("ee36601", this);} // tgen
+
+static void Test_ee36601()
+{
+ extern Class_Descriptor cd_ee36601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36601, buf);
+ ee36601 *dp, &lv = *(dp=new (buf) ee36601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd6601*), ABISELECT(16,8), "ee36601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd6601*), ABISELECT(16,8), "ee36601");
+ check_base_class_offset(lv, (cc601*)(dd6601*), ABISELECT(16,8), "ee36601");
+ check_base_class_offset(lv, (dd6601*), ABISELECT(16,8), "ee36601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36601.e");
+ test_class_info(&lv, &cd_ee36601);
+ dp->~ee36601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36601(Test_ee36601, "ee36601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36601C1Ev();
+extern void _ZN7ee36601D1Ev();
+Name_Map name_map_ee36601[] = {
+ NSPAIR(_ZN7ee36601C1Ev),
+ NSPAIR(_ZN7ee36601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd6601;
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+static Base_Class bases_ee36601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36601[];
+extern void _ZN7ee366013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee366013fooEv,_ZTv0_n12_N7ee366013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366013fooEv,_ZThn8_N7ee366013fooEv)() __attribute__((weak));
+extern void _ZN6dd66013barEv();
+static VTBL_ENTRY vtc_ee36601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36601[0]),
+ (VTBL_ENTRY)&_ZN7ee366013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366013fooEv,_ZTv0_n12_N7ee366013fooEv),
+ (VTBL_ENTRY)&_ZN6dd66013barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36601[];
+static VTT_ENTRY vtt_ee36601[] = {
+ {&(_ZTV7ee36601[3]), 3,10},
+ {&(_ZTV7ee36601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36601[];
+extern VTBL_ENTRY _ZTV7ee36601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36601[];
+static VTBL_ENTRY alt_thunk_names607[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366013fooEv,_ZTv0_n12_N7ee366013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366013fooEv,_ZThn8_N7ee366013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36601 = { "ee36601", // class name
+ bases_ee36601, 4,
+ &(vtc_ee36601[0]), // expected_vtbl_contents
+ &(vtt_ee36601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names607,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46601 : dd6601 {
+ int e;
+ virtual void bar(); // _ZN7ee466013barEv
+ ~ee46601(); // tgen
+ ee46601(); // tgen
+};
+//SIG(1 ee46601) C1{ BC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46601 ::bar(){vfunc_called(this, "_ZN7ee466013barEv");}
+ee46601 ::~ee46601(){ note_dtor("ee46601", this);} // tgen
+ee46601 ::ee46601(){ note_ctor("ee46601", this);} // tgen
+
+static void Test_ee46601()
+{
+ extern Class_Descriptor cd_ee46601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46601, buf);
+ ee46601 *dp, &lv = *(dp=new (buf) ee46601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd6601*), 0, "ee46601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd6601*), 0, "ee46601");
+ check_base_class_offset(lv, (cc601*)(dd6601*), 0, "ee46601");
+ check_base_class_offset(lv, (dd6601*), 0, "ee46601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46601.e");
+ test_class_info(&lv, &cd_ee46601);
+ dp->~ee46601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46601(Test_ee46601, "ee46601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46601C1Ev();
+extern void _ZN7ee46601D1Ev();
+Name_Map name_map_ee46601[] = {
+ NSPAIR(_ZN7ee46601C1Ev),
+ NSPAIR(_ZN7ee46601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd6601;
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+static Base_Class bases_ee46601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46601[];
+extern void _ZN6dd66013fooEv();
+extern void _ZN7ee466013barEv();
+static VTBL_ENTRY vtc_ee46601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46601[0]),
+ (VTBL_ENTRY)&_ZN6dd66013fooEv,
+ (VTBL_ENTRY)&_ZN7ee466013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46601[];
+extern VTBL_ENTRY _ZTV7ee46601[];
+Class_Descriptor cd_ee46601 = { "ee46601", // class name
+ bases_ee46601, 4,
+ &(vtc_ee46601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56601 : virtual dd6601 {
+ int e;
+ virtual void bar(); // _ZN7ee566013barEv
+ ~ee56601(); // tgen
+ ee56601(); // tgen
+};
+//SIG(1 ee56601) C1{ VBC2{ BC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56601 ::bar(){vfunc_called(this, "_ZN7ee566013barEv");}
+ee56601 ::~ee56601(){ note_dtor("ee56601", this);} // tgen
+ee56601 ::ee56601(){ note_ctor("ee56601", this);} // tgen
+
+static void Test_ee56601()
+{
+ extern Class_Descriptor cd_ee56601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56601, buf);
+ ee56601 *dp, &lv = *(dp=new (buf) ee56601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd6601*), ABISELECT(16,8), "ee56601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd6601*), ABISELECT(16,8), "ee56601");
+ check_base_class_offset(lv, (cc601*)(dd6601*), ABISELECT(16,8), "ee56601");
+ check_base_class_offset(lv, (dd6601*), ABISELECT(16,8), "ee56601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56601.e");
+ test_class_info(&lv, &cd_ee56601);
+ dp->~ee56601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56601(Test_ee56601, "ee56601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56601C1Ev();
+extern void _ZN7ee56601D1Ev();
+Name_Map name_map_ee56601[] = {
+ NSPAIR(_ZN7ee56601C1Ev),
+ NSPAIR(_ZN7ee56601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd6601;
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+static Base_Class bases_ee56601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56601[];
+extern void _ZN7ee566013barEv();
+extern void _ZN6dd66013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566013barEv,_ZTv0_n16_N7ee566013barEv)();
+extern void ABISELECT(_ZThn16_N7ee566013barEv,_ZThn8_N7ee566013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56601[0]),
+ (VTBL_ENTRY)&_ZN7ee566013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56601[0]),
+ (VTBL_ENTRY)&_ZN6dd66013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566013barEv,_ZTv0_n16_N7ee566013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56601[];
+static VTT_ENTRY vtt_ee56601[] = {
+ {&(_ZTV7ee56601[3]), 3,10},
+ {&(_ZTV7ee56601[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56601[];
+extern VTBL_ENTRY _ZTV7ee56601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56601[];
+static VTBL_ENTRY alt_thunk_names608[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566013barEv,_ZTv0_n16_N7ee566013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566013barEv,_ZThn8_N7ee566013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56601 = { "ee56601", // class name
+ bases_ee56601, 4,
+ &(vtc_ee56601[0]), // expected_vtbl_contents
+ &(vtt_ee56601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56601),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names608,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66601 : dd6601 {
+ int e;
+ virtual void foo(); // _ZN7ee666013fooEv
+ virtual void bar(); // _ZN7ee666013barEv
+ ~ee66601(); // tgen
+ ee66601(); // tgen
+};
+//SIG(1 ee66601) C1{ BC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66601 ::foo(){vfunc_called(this, "_ZN7ee666013fooEv");}
+void ee66601 ::bar(){vfunc_called(this, "_ZN7ee666013barEv");}
+ee66601 ::~ee66601(){ note_dtor("ee66601", this);} // tgen
+ee66601 ::ee66601(){ note_ctor("ee66601", this);} // tgen
+
+static void Test_ee66601()
+{
+ extern Class_Descriptor cd_ee66601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66601, buf);
+ ee66601 *dp, &lv = *(dp=new (buf) ee66601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd6601*), 0, "ee66601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd6601*), 0, "ee66601");
+ check_base_class_offset(lv, (cc601*)(dd6601*), 0, "ee66601");
+ check_base_class_offset(lv, (dd6601*), 0, "ee66601");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66601.e");
+ test_class_info(&lv, &cd_ee66601);
+ dp->~ee66601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66601(Test_ee66601, "ee66601", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66601C1Ev();
+extern void _ZN7ee66601D1Ev();
+Name_Map name_map_ee66601[] = {
+ NSPAIR(_ZN7ee66601C1Ev),
+ NSPAIR(_ZN7ee66601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd6601;
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+static Base_Class bases_ee66601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66601[];
+extern void _ZN7ee666013fooEv();
+extern void _ZN7ee666013barEv();
+static VTBL_ENTRY vtc_ee66601[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66601[0]),
+ (VTBL_ENTRY)&_ZN7ee666013fooEv,
+ (VTBL_ENTRY)&_ZN7ee666013barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66601[];
+extern VTBL_ENTRY _ZTV7ee66601[];
+Class_Descriptor cd_ee66601 = { "ee66601", // class name
+ bases_ee66601, 4,
+ &(vtc_ee66601[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66601),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76601 : virtual dd6601 {
+ int e;
+ virtual void foo(); // _ZN7ee766013fooEv
+ virtual void bar(); // _ZN7ee766013barEv
+ ~ee76601(); // tgen
+ ee76601(); // tgen
+};
+//SIG(1 ee76601) C1{ VBC2{ BC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76601 ::foo(){vfunc_called(this, "_ZN7ee766013fooEv");}
+void ee76601 ::bar(){vfunc_called(this, "_ZN7ee766013barEv");}
+ee76601 ::~ee76601(){ note_dtor("ee76601", this);} // tgen
+ee76601 ::ee76601(){ note_ctor("ee76601", this);} // tgen
+
+static void Test_ee76601()
+{
+ extern Class_Descriptor cd_ee76601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76601, buf);
+ ee76601 *dp, &lv = *(dp=new (buf) ee76601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*)(dd6601*), ABISELECT(16,8), "ee76601");
+ check_base_class_offset(lv, (bb01*)(cc601*)(dd6601*), ABISELECT(16,8), "ee76601");
+ check_base_class_offset(lv, (cc601*)(dd6601*), ABISELECT(16,8), "ee76601");
+ check_base_class_offset(lv, (dd6601*), ABISELECT(16,8), "ee76601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76601.e");
+ test_class_info(&lv, &cd_ee76601);
+ dp->~ee76601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76601(Test_ee76601, "ee76601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76601C1Ev();
+extern void _ZN7ee76601D1Ev();
+Name_Map name_map_ee76601[] = {
+ NSPAIR(_ZN7ee76601C1Ev),
+ NSPAIR(_ZN7ee76601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd6601;
+extern VTBL_ENTRY _ZTI6dd6601[];
+extern VTBL_ENTRY _ZTV6dd6601[];
+static Base_Class bases_ee76601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76601[];
+extern void _ZN7ee766013fooEv();
+extern void _ZN7ee766013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766013fooEv,_ZTv0_n12_N7ee766013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766013fooEv,_ZThn8_N7ee766013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766013barEv,_ZTv0_n16_N7ee766013barEv)();
+extern void ABISELECT(_ZThn16_N7ee766013barEv,_ZThn8_N7ee766013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76601[0]),
+ (VTBL_ENTRY)&_ZN7ee766013fooEv,
+ (VTBL_ENTRY)&_ZN7ee766013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766013fooEv,_ZTv0_n12_N7ee766013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766013barEv,_ZTv0_n16_N7ee766013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76601[];
+static VTT_ENTRY vtt_ee76601[] = {
+ {&(_ZTV7ee76601[3]), 3,11},
+ {&(_ZTV7ee76601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76601[];
+extern VTBL_ENTRY _ZTV7ee76601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76601[];
+static VTBL_ENTRY alt_thunk_names609[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766013barEv,_ZTv0_n16_N7ee766013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766013barEv,_ZThn8_N7ee766013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766013fooEv,_ZTv0_n12_N7ee766013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766013fooEv,_ZThn8_N7ee766013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76601 = { "ee76601", // class name
+ bases_ee76601, 4,
+ &(vtc_ee76601[0]), // expected_vtbl_contents
+ &(vtt_ee76601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76601),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names609,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7601 : virtual cc601 {
+ int d;
+ virtual void bar(); // _ZN6dd76013barEv
+ virtual void foo(); // _ZN6dd76013fooEv
+ ~dd7601(); // tgen
+ dd7601(); // tgen
+};
+//SIG(-1 dd7601) C1{ VBC2{ BC3{ BC4{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7601 ::bar(){vfunc_called(this, "_ZN6dd76013barEv");}
+void dd7601 ::foo(){vfunc_called(this, "_ZN6dd76013fooEv");}
+dd7601 ::~dd7601(){ note_dtor("dd7601", this);} // tgen
+dd7601 ::dd7601(){ note_ctor("dd7601", this);} // tgen
+
+static void Test_dd7601()
+{
+ extern Class_Descriptor cd_dd7601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7601, buf);
+ dd7601 *dp, &lv = *(dp=new (buf) dd7601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,8), "dd7601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,8), "dd7601");
+ check_base_class_offset(lv, (cc601*), ABISELECT(16,8), "dd7601");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7601.d");
+ test_class_info(&lv, &cd_dd7601);
+ dp->~dd7601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7601(Test_dd7601, "dd7601", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7601C1Ev();
+extern void _ZN6dd7601D1Ev();
+Name_Map name_map_dd7601[] = {
+ NSPAIR(_ZN6dd7601C1Ev),
+ NSPAIR(_ZN6dd7601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+static Base_Class bases_dd7601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7601[];
+static VTT_ENTRY vtt_dd7601[] = {
+ {&(_ZTV6dd7601[3]), 3,11},
+ {&(_ZTV6dd7601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static VTBL_ENTRY alt_thunk_names610[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7601 = { "dd7601", // class name
+ bases_dd7601, 3,
+ &(vtc_dd7601[0]), // expected_vtbl_contents
+ &(vtt_dd7601[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7601),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names610,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07601 : dd7601 {
+ int e;
+ ~ee07601(); // tgen
+ ee07601(); // tgen
+};
+//SIG(1 ee07601) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07601 ::~ee07601(){ note_dtor("ee07601", this);} // tgen
+ee07601 ::ee07601(){ note_ctor("ee07601", this);} // tgen
+
+static void Test_ee07601()
+{
+ extern Class_Descriptor cd_ee07601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07601, buf);
+ ee07601 *dp, &lv = *(dp=new (buf) ee07601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee07601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee07601");
+ check_base_class_offset(lv, (cc601*)(dd7601*), ABISELECT(16,12), "ee07601");
+ check_base_class_offset(lv, (dd7601*), 0, "ee07601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07601.e");
+ test_class_info(&lv, &cd_ee07601);
+ dp->~ee07601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07601(Test_ee07601, "ee07601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07601C1Ev();
+extern void _ZN7ee07601D1Ev();
+Name_Map name_map_ee07601[] = {
+ NSPAIR(_ZN7ee07601C1Ev),
+ NSPAIR(_ZN7ee07601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd7601;
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static Base_Class bases_ee07601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7601__7ee07601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd7601__7ee07601[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+static VTT_ENTRY vtt_ee07601[] = {
+ {&(_ZTV7ee07601[3]), 3,11},
+ {&(_tg__ZTV6dd7601__7ee07601[3]), 3,5},
+ {&(_tg__ZTV5cc601__6dd7601__7ee07601[4]), 4,6},
+ {&(_ZTV7ee07601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07601[];
+extern VTBL_ENTRY _ZTV7ee07601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07601[];
+static VTBL_ENTRY alt_thunk_names611[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07601 = { "ee07601", // class name
+ bases_ee07601, 4,
+ &(vtc_ee07601[0]), // expected_vtbl_contents
+ &(vtt_ee07601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names611,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17601 : virtual dd7601 {
+ int e;
+ ~ee17601(); // tgen
+ ee17601(); // tgen
+};
+//SIG(1 ee17601) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17601 ::~ee17601(){ note_dtor("ee17601", this);} // tgen
+ee17601 ::ee17601(){ note_ctor("ee17601", this);} // tgen
+
+static void Test_ee17601()
+{
+ extern Class_Descriptor cd_ee17601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17601, buf);
+ ee17601 *dp, &lv = *(dp=new (buf) ee17601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee17601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee17601");
+ check_base_class_offset(lv, (cc601*)(dd7601*), ABISELECT(32,16), "ee17601");
+ check_base_class_offset(lv, (dd7601*), ABISELECT(16,8), "ee17601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17601.e");
+ test_class_info(&lv, &cd_ee17601);
+ dp->~ee17601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17601(Test_ee17601, "ee17601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17601C1Ev();
+extern void _ZN7ee17601D1Ev();
+Name_Map name_map_ee17601[] = {
+ NSPAIR(_ZN7ee17601C1Ev),
+ NSPAIR(_ZN7ee17601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd7601;
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static Base_Class bases_ee17601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7601, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17601[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7601__7ee17601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd7601__7ee17601[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+static VTT_ENTRY vtt_ee17601[] = {
+ {&(_ZTV7ee17601[4]), 4,17},
+ {&(_ZTV7ee17601[9]), 9,17},
+ {&(_ZTV7ee17601[15]), 15,17},
+ {&(_tg__ZTV6dd7601__7ee17601[3]), 3,5},
+ {&(_tg__ZTV5cc601__6dd7601__7ee17601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17601[];
+extern VTBL_ENTRY _ZTV7ee17601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17601[];
+static VTBL_ENTRY alt_thunk_names612[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17601 = { "ee17601", // class name
+ bases_ee17601, 4,
+ &(vtc_ee17601[0]), // expected_vtbl_contents
+ &(vtt_ee17601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17601),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names612,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27601 : dd7601 {
+ int e;
+ virtual void foo(); // _ZN7ee276013fooEv
+ ~ee27601(); // tgen
+ ee27601(); // tgen
+};
+//SIG(1 ee27601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27601 ::foo(){vfunc_called(this, "_ZN7ee276013fooEv");}
+ee27601 ::~ee27601(){ note_dtor("ee27601", this);} // tgen
+ee27601 ::ee27601(){ note_ctor("ee27601", this);} // tgen
+
+static void Test_ee27601()
+{
+ extern Class_Descriptor cd_ee27601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27601, buf);
+ ee27601 *dp, &lv = *(dp=new (buf) ee27601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee27601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee27601");
+ check_base_class_offset(lv, (cc601*)(dd7601*), ABISELECT(16,12), "ee27601");
+ check_base_class_offset(lv, (dd7601*), 0, "ee27601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27601.e");
+ test_class_info(&lv, &cd_ee27601);
+ dp->~ee27601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27601(Test_ee27601, "ee27601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27601C1Ev();
+extern void _ZN7ee27601D1Ev();
+Name_Map name_map_ee27601[] = {
+ NSPAIR(_ZN7ee27601C1Ev),
+ NSPAIR(_ZN7ee27601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd7601;
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static Base_Class bases_ee27601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN7ee276013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee276013fooEv,_ZTv0_n12_N7ee276013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276013fooEv,_ZThn12_N7ee276013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN7ee276013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276013fooEv,_ZTv0_n12_N7ee276013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7601__7ee27601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd7601__7ee27601[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+static VTT_ENTRY vtt_ee27601[] = {
+ {&(_ZTV7ee27601[3]), 3,11},
+ {&(_tg__ZTV6dd7601__7ee27601[3]), 3,5},
+ {&(_tg__ZTV5cc601__6dd7601__7ee27601[4]), 4,6},
+ {&(_ZTV7ee27601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27601[];
+extern VTBL_ENTRY _ZTV7ee27601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27601[];
+static VTBL_ENTRY alt_thunk_names613[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276013fooEv,_ZTv0_n12_N7ee276013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276013fooEv,_ZThn12_N7ee276013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27601 = { "ee27601", // class name
+ bases_ee27601, 4,
+ &(vtc_ee27601[0]), // expected_vtbl_contents
+ &(vtt_ee27601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names613,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37601 : virtual dd7601 {
+ int e;
+ virtual void foo(); // _ZN7ee376013fooEv
+ ~ee37601(); // tgen
+ ee37601(); // tgen
+};
+//SIG(1 ee37601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37601 ::foo(){vfunc_called(this, "_ZN7ee376013fooEv");}
+ee37601 ::~ee37601(){ note_dtor("ee37601", this);} // tgen
+ee37601 ::ee37601(){ note_ctor("ee37601", this);} // tgen
+
+static void Test_ee37601()
+{
+ extern Class_Descriptor cd_ee37601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37601, buf);
+ ee37601 *dp, &lv = *(dp=new (buf) ee37601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee37601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee37601");
+ check_base_class_offset(lv, (cc601*)(dd7601*), ABISELECT(32,16), "ee37601");
+ check_base_class_offset(lv, (dd7601*), ABISELECT(16,8), "ee37601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37601.e");
+ test_class_info(&lv, &cd_ee37601);
+ dp->~ee37601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37601(Test_ee37601, "ee37601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37601C1Ev();
+extern void _ZN7ee37601D1Ev();
+Name_Map name_map_ee37601[] = {
+ NSPAIR(_ZN7ee37601C1Ev),
+ NSPAIR(_ZN7ee37601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd7601;
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static Base_Class bases_ee37601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37601[];
+extern void _ZN7ee376013fooEv();
+extern void _ZN6dd76013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376013fooEv,_ZTv0_n20_N7ee376013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376013fooEv,_ZThn8_N7ee376013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376013fooEv,_ZTv0_n12_N7ee376013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376013fooEv,_ZThn16_N7ee376013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37601[0]),
+ (VTBL_ENTRY)&_ZN7ee376013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376013fooEv,_ZTv0_n20_N7ee376013fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376013fooEv,_ZTv0_n12_N7ee376013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7601__7ee37601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd7601__7ee37601[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+static VTT_ENTRY vtt_ee37601[] = {
+ {&(_ZTV7ee37601[4]), 4,18},
+ {&(_ZTV7ee37601[10]), 10,18},
+ {&(_ZTV7ee37601[16]), 16,18},
+ {&(_tg__ZTV6dd7601__7ee37601[3]), 3,5},
+ {&(_tg__ZTV5cc601__6dd7601__7ee37601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37601[];
+extern VTBL_ENTRY _ZTV7ee37601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37601[];
+static VTBL_ENTRY alt_thunk_names614[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376013fooEv,_ZTv0_n12_N7ee376013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376013fooEv,_ZThn16_N7ee376013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376013fooEv,_ZTv0_n20_N7ee376013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376013fooEv,_ZThn8_N7ee376013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37601 = { "ee37601", // class name
+ bases_ee37601, 4,
+ &(vtc_ee37601[0]), // expected_vtbl_contents
+ &(vtt_ee37601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37601),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names614,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47601 : dd7601 {
+ int e;
+ virtual void bar(); // _ZN7ee476013barEv
+ ~ee47601(); // tgen
+ ee47601(); // tgen
+};
+//SIG(1 ee47601) C1{ BC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47601 ::bar(){vfunc_called(this, "_ZN7ee476013barEv");}
+ee47601 ::~ee47601(){ note_dtor("ee47601", this);} // tgen
+ee47601 ::ee47601(){ note_ctor("ee47601", this);} // tgen
+
+static void Test_ee47601()
+{
+ extern Class_Descriptor cd_ee47601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47601, buf);
+ ee47601 *dp, &lv = *(dp=new (buf) ee47601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee47601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee47601");
+ check_base_class_offset(lv, (cc601*)(dd7601*), ABISELECT(16,12), "ee47601");
+ check_base_class_offset(lv, (dd7601*), 0, "ee47601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47601.e");
+ test_class_info(&lv, &cd_ee47601);
+ dp->~ee47601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47601(Test_ee47601, "ee47601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47601C1Ev();
+extern void _ZN7ee47601D1Ev();
+Name_Map name_map_ee47601[] = {
+ NSPAIR(_ZN7ee47601C1Ev),
+ NSPAIR(_ZN7ee47601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd7601;
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static Base_Class bases_ee47601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47601[];
+extern void _ZN7ee476013barEv();
+extern void _ZN6dd76013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476013barEv,_ZTv0_n16_N7ee476013barEv)();
+extern void ABISELECT(_ZThn16_N7ee476013barEv,_ZThn12_N7ee476013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47601[0]),
+ (VTBL_ENTRY)&_ZN7ee476013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476013barEv,_ZTv0_n16_N7ee476013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7601__7ee47601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd7601__7ee47601[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+static VTT_ENTRY vtt_ee47601[] = {
+ {&(_ZTV7ee47601[3]), 3,11},
+ {&(_tg__ZTV6dd7601__7ee47601[3]), 3,5},
+ {&(_tg__ZTV5cc601__6dd7601__7ee47601[4]), 4,6},
+ {&(_ZTV7ee47601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47601[];
+extern VTBL_ENTRY _ZTV7ee47601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47601[];
+static VTBL_ENTRY alt_thunk_names615[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476013barEv,_ZTv0_n16_N7ee476013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476013barEv,_ZThn12_N7ee476013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47601 = { "ee47601", // class name
+ bases_ee47601, 4,
+ &(vtc_ee47601[0]), // expected_vtbl_contents
+ &(vtt_ee47601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names615,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57601 : virtual dd7601 {
+ int e;
+ virtual void bar(); // _ZN7ee576013barEv
+ ~ee57601(); // tgen
+ ee57601(); // tgen
+};
+//SIG(1 ee57601) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57601 ::bar(){vfunc_called(this, "_ZN7ee576013barEv");}
+ee57601 ::~ee57601(){ note_dtor("ee57601", this);} // tgen
+ee57601 ::ee57601(){ note_ctor("ee57601", this);} // tgen
+
+static void Test_ee57601()
+{
+ extern Class_Descriptor cd_ee57601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57601, buf);
+ ee57601 *dp, &lv = *(dp=new (buf) ee57601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee57601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee57601");
+ check_base_class_offset(lv, (cc601*)(dd7601*), ABISELECT(32,16), "ee57601");
+ check_base_class_offset(lv, (dd7601*), ABISELECT(16,8), "ee57601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57601.e");
+ test_class_info(&lv, &cd_ee57601);
+ dp->~ee57601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57601(Test_ee57601, "ee57601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57601C1Ev();
+extern void _ZN7ee57601D1Ev();
+Name_Map name_map_ee57601[] = {
+ NSPAIR(_ZN7ee57601C1Ev),
+ NSPAIR(_ZN7ee57601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd7601;
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static Base_Class bases_ee57601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7601, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57601[];
+extern void _ZN7ee576013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576013barEv,_ZTv0_n16_N7ee576013barEv)();
+extern void ABISELECT(_ZThn16_N7ee576013barEv,_ZThn8_N7ee576013barEv)() __attribute__((weak));
+extern void _ZN6dd76013fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576013barEv,_ZTv0_n16_N7ee576013barEv)();
+extern void ABISELECT(_ZThn32_N7ee576013barEv,_ZThn16_N7ee576013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57601[0]),
+ (VTBL_ENTRY)&_ZN7ee576013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576013barEv,_ZTv0_n16_N7ee576013barEv),
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576013barEv,_ZTv0_n16_N7ee576013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7601__7ee57601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd7601__7ee57601[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+static VTT_ENTRY vtt_ee57601[] = {
+ {&(_ZTV7ee57601[4]), 4,18},
+ {&(_ZTV7ee57601[10]), 10,18},
+ {&(_ZTV7ee57601[16]), 16,18},
+ {&(_tg__ZTV6dd7601__7ee57601[3]), 3,5},
+ {&(_tg__ZTV5cc601__6dd7601__7ee57601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57601[];
+extern VTBL_ENTRY _ZTV7ee57601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57601[];
+static VTBL_ENTRY alt_thunk_names616[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576013barEv,_ZTv0_n16_N7ee576013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576013barEv,_ZThn16_N7ee576013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576013barEv,_ZThn8_N7ee576013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57601 = { "ee57601", // class name
+ bases_ee57601, 4,
+ &(vtc_ee57601[0]), // expected_vtbl_contents
+ &(vtt_ee57601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57601),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names616,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67601 : dd7601 {
+ int e;
+ virtual void foo(); // _ZN7ee676013fooEv
+ virtual void bar(); // _ZN7ee676013barEv
+ ~ee67601(); // tgen
+ ee67601(); // tgen
+};
+//SIG(1 ee67601) C1{ BC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67601 ::foo(){vfunc_called(this, "_ZN7ee676013fooEv");}
+void ee67601 ::bar(){vfunc_called(this, "_ZN7ee676013barEv");}
+ee67601 ::~ee67601(){ note_dtor("ee67601", this);} // tgen
+ee67601 ::ee67601(){ note_ctor("ee67601", this);} // tgen
+
+static void Test_ee67601()
+{
+ extern Class_Descriptor cd_ee67601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67601, buf);
+ ee67601 *dp, &lv = *(dp=new (buf) ee67601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(16,12), "ee67601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(16,12), "ee67601");
+ check_base_class_offset(lv, (cc601*)(dd7601*), ABISELECT(16,12), "ee67601");
+ check_base_class_offset(lv, (dd7601*), 0, "ee67601");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67601.e");
+ test_class_info(&lv, &cd_ee67601);
+ dp->~ee67601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67601(Test_ee67601, "ee67601", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67601C1Ev();
+extern void _ZN7ee67601D1Ev();
+Name_Map name_map_ee67601[] = {
+ NSPAIR(_ZN7ee67601C1Ev),
+ NSPAIR(_ZN7ee67601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd7601;
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static Base_Class bases_ee67601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7601, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67601[];
+extern void _ZN7ee676013barEv();
+extern void _ZN7ee676013fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676013fooEv,_ZTv0_n12_N7ee676013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676013fooEv,_ZThn12_N7ee676013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676013barEv,_ZTv0_n16_N7ee676013barEv)();
+extern void ABISELECT(_ZThn16_N7ee676013barEv,_ZThn12_N7ee676013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67601[0]),
+ (VTBL_ENTRY)&_ZN7ee676013barEv,
+ (VTBL_ENTRY)&_ZN7ee676013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676013fooEv,_ZTv0_n12_N7ee676013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676013barEv,_ZTv0_n16_N7ee676013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7601__7ee67601[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd7601__7ee67601[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+static VTT_ENTRY vtt_ee67601[] = {
+ {&(_ZTV7ee67601[3]), 3,11},
+ {&(_tg__ZTV6dd7601__7ee67601[3]), 3,5},
+ {&(_tg__ZTV5cc601__6dd7601__7ee67601[4]), 4,6},
+ {&(_ZTV7ee67601[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67601[];
+extern VTBL_ENTRY _ZTV7ee67601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67601[];
+static VTBL_ENTRY alt_thunk_names617[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn12_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn12_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676013barEv,_ZTv0_n16_N7ee676013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676013barEv,_ZThn12_N7ee676013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676013fooEv,_ZTv0_n12_N7ee676013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676013fooEv,_ZThn12_N7ee676013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67601 = { "ee67601", // class name
+ bases_ee67601, 4,
+ &(vtc_ee67601[0]), // expected_vtbl_contents
+ &(vtt_ee67601[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67601),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67601),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67601),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names617,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77601 : virtual dd7601 {
+ int e;
+ virtual void foo(); // _ZN7ee776013fooEv
+ virtual void bar(); // _ZN7ee776013barEv
+ ~ee77601(); // tgen
+ ee77601(); // tgen
+};
+//SIG(1 ee77601) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77601 ::foo(){vfunc_called(this, "_ZN7ee776013fooEv");}
+void ee77601 ::bar(){vfunc_called(this, "_ZN7ee776013barEv");}
+ee77601 ::~ee77601(){ note_dtor("ee77601", this);} // tgen
+ee77601 ::ee77601(){ note_ctor("ee77601", this);} // tgen
+
+static void Test_ee77601()
+{
+ extern Class_Descriptor cd_ee77601;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77601, buf);
+ ee77601 *dp, &lv = *(dp=new (buf) ee77601());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77601)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77601)");
+ check_base_class_offset(lv, (aa1*)(bb01*)(cc601*), ABISELECT(32,16), "ee77601");
+ check_base_class_offset(lv, (bb01*)(cc601*), ABISELECT(32,16), "ee77601");
+ check_base_class_offset(lv, (cc601*)(dd7601*), ABISELECT(32,16), "ee77601");
+ check_base_class_offset(lv, (dd7601*), ABISELECT(16,8), "ee77601");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77601.e");
+ test_class_info(&lv, &cd_ee77601);
+ dp->~ee77601();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77601(Test_ee77601, "ee77601", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77601C1Ev();
+extern void _ZN7ee77601D1Ev();
+Name_Map name_map_ee77601[] = {
+ NSPAIR(_ZN7ee77601C1Ev),
+ NSPAIR(_ZN7ee77601D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc601;
+extern VTBL_ENTRY _ZTI5cc601[];
+extern VTBL_ENTRY _ZTV5cc601[];
+extern Class_Descriptor cd_dd7601;
+extern VTBL_ENTRY _ZTI6dd7601[];
+extern VTBL_ENTRY _ZTV6dd7601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7601[];
+static Base_Class bases_ee77601[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc601, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7601, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77601[];
+extern void _ZN7ee776013fooEv();
+extern void _ZN7ee776013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776013barEv,_ZTv0_n16_N7ee776013barEv)();
+extern void ABISELECT(_ZThn16_N7ee776013barEv,_ZThn8_N7ee776013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776013fooEv,_ZTv0_n20_N7ee776013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776013fooEv,_ZThn8_N7ee776013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776013fooEv,_ZTv0_n12_N7ee776013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776013fooEv,_ZThn16_N7ee776013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776013barEv,_ZTv0_n16_N7ee776013barEv)();
+extern void ABISELECT(_ZThn32_N7ee776013barEv,_ZThn16_N7ee776013barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77601[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77601[0]),
+ (VTBL_ENTRY)&_ZN7ee776013fooEv,
+ (VTBL_ENTRY)&_ZN7ee776013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776013barEv,_ZTv0_n16_N7ee776013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776013fooEv,_ZTv0_n20_N7ee776013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776013fooEv,_ZTv0_n12_N7ee776013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776013barEv,_ZTv0_n16_N7ee776013barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77601[];
+extern void _ZN6dd76013barEv();
+extern void _ZN6dd76013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7601__7ee77601[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&_ZN6dd76013barEv,
+ (VTBL_ENTRY)&_ZN6dd76013fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv)();
+extern void ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc601__6dd7601__7ee77601[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7601[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv),
+};
+static VTT_ENTRY vtt_ee77601[] = {
+ {&(_ZTV7ee77601[4]), 4,19},
+ {&(_ZTV7ee77601[11]), 11,19},
+ {&(_ZTV7ee77601[17]), 17,19},
+ {&(_tg__ZTV6dd7601__7ee77601[3]), 3,5},
+ {&(_tg__ZTV5cc601__6dd7601__7ee77601[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77601[];
+extern VTBL_ENTRY _ZTV7ee77601[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77601[];
+static VTBL_ENTRY alt_thunk_names618[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76013barEv,_ZTv0_n16_N6dd76013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013barEv,_ZThn8_N6dd76013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76013fooEv,_ZTv0_n12_N6dd76013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76013fooEv,_ZThn8_N6dd76013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776013fooEv,_ZTv0_n12_N7ee776013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776013fooEv,_ZThn16_N7ee776013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776013fooEv,_ZTv0_n20_N7ee776013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776013fooEv,_ZThn8_N7ee776013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776013barEv,_ZTv0_n16_N7ee776013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776013barEv,_ZThn16_N7ee776013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776013barEv,_ZThn8_N7ee776013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77601 = { "ee77601", // class name
+ bases_ee77601, 4,
+ &(vtc_ee77601[0]), // expected_vtbl_contents
+ &(vtt_ee77601[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77601),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77601),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77601),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names618,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc701 : virtual bb01 {
+ int c;
+ virtual void foo(); // _ZN5cc7013fooEv
+ virtual void bar(); // _ZN5cc7013barEv
+ ~cc701(); // tgen
+ cc701(); // tgen
+};
+//SIG(-1 cc701) C1{ VBC2{ BC3{ v1 Fi} Fi} v1 v2 Fi}
+
+
+void cc701 ::foo(){vfunc_called(this, "_ZN5cc7013fooEv");}
+void cc701 ::bar(){vfunc_called(this, "_ZN5cc7013barEv");}
+cc701 ::~cc701(){ note_dtor("cc701", this);} // tgen
+cc701 ::cc701(){ note_ctor("cc701", this);} // tgen
+
+static void Test_cc701()
+{
+ extern Class_Descriptor cd_cc701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc701, buf);
+ cc701 *dp, &lv = *(dp=new (buf) cc701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,8), "cc701");
+ check_base_class_offset(lv, (bb01*), ABISELECT(16,8), "cc701");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc701.c");
+ test_class_info(&lv, &cd_cc701);
+ dp->~cc701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc701(Test_cc701, "cc701", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc701C1Ev();
+extern void _ZN5cc701D1Ev();
+Name_Map name_map_cc701[] = {
+ NSPAIR(_ZN5cc701C1Ev),
+ NSPAIR(_ZN5cc701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+static Base_Class bases_cc701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc701[];
+static VTT_ENTRY vtt_cc701[] = {
+ {&(_ZTV5cc701[3]), 3,9},
+ {&(_ZTV5cc701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static VTBL_ENTRY alt_thunk_names619[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc701 = { "cc701", // class name
+ bases_cc701, 2,
+ &(vtc_cc701[0]), // expected_vtbl_contents
+ &(vtt_cc701[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc701),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names619,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0701 : cc701 {
+ int d;
+ ~dd0701(); // tgen
+ dd0701(); // tgen
+};
+//SIG(-1 dd0701) C1{ BC2{ VBC3{ BC4{ v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd0701 ::~dd0701(){ note_dtor("dd0701", this);} // tgen
+dd0701 ::dd0701(){ note_ctor("dd0701", this);} // tgen
+
+static void Test_dd0701()
+{
+ extern Class_Descriptor cd_dd0701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0701, buf);
+ dd0701 *dp, &lv = *(dp=new (buf) dd0701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd0701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(16,12), "dd0701");
+ check_base_class_offset(lv, (cc701*), 0, "dd0701");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0701.d");
+ test_class_info(&lv, &cd_dd0701);
+ dp->~dd0701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0701(Test_dd0701, "dd0701", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0701C1Ev();
+extern void _ZN6dd0701D1Ev();
+Name_Map name_map_dd0701[] = {
+ NSPAIR(_ZN6dd0701C1Ev),
+ NSPAIR(_ZN6dd0701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static Base_Class bases_dd0701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd0701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__6dd0701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_dd0701[] = {
+ {&(_ZTV6dd0701[3]), 3,9},
+ {&(_tg__ZTV5cc701__6dd0701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__6dd0701[3]), 3,4},
+ {&(_ZTV6dd0701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static VTBL_ENTRY alt_thunk_names620[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0701 = { "dd0701", // class name
+ bases_dd0701, 3,
+ &(vtc_dd0701[0]), // expected_vtbl_contents
+ &(vtt_dd0701[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0701),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names620,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00701 : dd0701 {
+ int e;
+ ~ee00701(); // tgen
+ ee00701(); // tgen
+};
+//SIG(1 ee00701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00701 ::~ee00701(){ note_dtor("ee00701", this);} // tgen
+ee00701 ::ee00701(){ note_ctor("ee00701", this);} // tgen
+
+static void Test_ee00701()
+{
+ extern Class_Descriptor cd_ee00701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00701, buf);
+ ee00701 *dp, &lv = *(dp=new (buf) ee00701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee00701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd0701*), ABISELECT(24,16), "ee00701");
+ check_base_class_offset(lv, (cc701*)(dd0701*), 0, "ee00701");
+ check_base_class_offset(lv, (dd0701*), 0, "ee00701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00701.e");
+ test_class_info(&lv, &cd_ee00701);
+ dp->~ee00701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00701(Test_ee00701, "ee00701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00701C1Ev();
+extern void _ZN7ee00701D1Ev();
+Name_Map name_map_ee00701[] = {
+ NSPAIR(_ZN7ee00701C1Ev),
+ NSPAIR(_ZN7ee00701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd0701;
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static Base_Class bases_ee00701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0701__7ee00701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd0701__7ee00701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd0701__7ee00701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0701__7ee00701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee00701[] = {
+ {&(_ZTV7ee00701[3]), 3,9},
+ {&(_tg__ZTV6dd0701__7ee00701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd0701__7ee00701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd0701__7ee00701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0701__7ee00701[3]), 3,4},
+ {&(_ZTV7ee00701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee00701[];
+extern VTBL_ENTRY _ZTV7ee00701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00701[];
+static VTBL_ENTRY alt_thunk_names621[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00701 = { "ee00701", // class name
+ bases_ee00701, 4,
+ &(vtc_ee00701[0]), // expected_vtbl_contents
+ &(vtt_ee00701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names621,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10701 : virtual dd0701 {
+ int e;
+ ~ee10701(); // tgen
+ ee10701(); // tgen
+};
+//SIG(1 ee10701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10701 ::~ee10701(){ note_dtor("ee10701", this);} // tgen
+ee10701 ::ee10701(){ note_ctor("ee10701", this);} // tgen
+
+static void Test_ee10701()
+{
+ extern Class_Descriptor cd_ee10701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10701, buf);
+ ee10701 *dp, &lv = *(dp=new (buf) ee10701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee10701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd0701*), ABISELECT(32,20), "ee10701");
+ check_base_class_offset(lv, (cc701*)(dd0701*), ABISELECT(16,8), "ee10701");
+ check_base_class_offset(lv, (dd0701*), ABISELECT(16,8), "ee10701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10701.e");
+ test_class_info(&lv, &cd_ee10701);
+ dp->~ee10701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10701(Test_ee10701, "ee10701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10701C1Ev();
+extern void _ZN7ee10701D1Ev();
+Name_Map name_map_ee10701[] = {
+ NSPAIR(_ZN7ee10701C1Ev),
+ NSPAIR(_ZN7ee10701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd0701;
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static Base_Class bases_ee10701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0701, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10701[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0701__7ee10701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd0701__7ee10701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd0701__7ee10701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0701__7ee10701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee10701[] = {
+ {&(_ZTV7ee10701[4]), 4,15},
+ {&(_ZTV7ee10701[9]), 9,15},
+ {&(_ZTV7ee10701[14]), 14,15},
+ {&(_tg__ZTV6dd0701__7ee10701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd0701__7ee10701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd0701__7ee10701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0701__7ee10701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10701[];
+extern VTBL_ENTRY _ZTV7ee10701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10701[];
+static VTBL_ENTRY alt_thunk_names622[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10701 = { "ee10701", // class name
+ bases_ee10701, 4,
+ &(vtc_ee10701[0]), // expected_vtbl_contents
+ &(vtt_ee10701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10701),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names622,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20701 : dd0701 {
+ int e;
+ virtual void foo(); // _ZN7ee207013fooEv
+ ~ee20701(); // tgen
+ ee20701(); // tgen
+};
+//SIG(1 ee20701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20701 ::foo(){vfunc_called(this, "_ZN7ee207013fooEv");}
+ee20701 ::~ee20701(){ note_dtor("ee20701", this);} // tgen
+ee20701 ::ee20701(){ note_ctor("ee20701", this);} // tgen
+
+static void Test_ee20701()
+{
+ extern Class_Descriptor cd_ee20701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20701, buf);
+ ee20701 *dp, &lv = *(dp=new (buf) ee20701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee20701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd0701*), ABISELECT(24,16), "ee20701");
+ check_base_class_offset(lv, (cc701*)(dd0701*), 0, "ee20701");
+ check_base_class_offset(lv, (dd0701*), 0, "ee20701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20701.e");
+ test_class_info(&lv, &cd_ee20701);
+ dp->~ee20701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20701(Test_ee20701, "ee20701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20701C1Ev();
+extern void _ZN7ee20701D1Ev();
+Name_Map name_map_ee20701[] = {
+ NSPAIR(_ZN7ee20701C1Ev),
+ NSPAIR(_ZN7ee20701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd0701;
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static Base_Class bases_ee20701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20701[];
+extern void _ZN7ee207013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee207013fooEv,_ZTv0_n12_N7ee207013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee207013fooEv,_ZThn16_N7ee207013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20701[0]),
+ (VTBL_ENTRY)&_ZN7ee207013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207013fooEv,_ZTv0_n12_N7ee207013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0701__7ee20701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd0701__7ee20701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd0701__7ee20701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0701__7ee20701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee20701[] = {
+ {&(_ZTV7ee20701[3]), 3,9},
+ {&(_tg__ZTV6dd0701__7ee20701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd0701__7ee20701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd0701__7ee20701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0701__7ee20701[3]), 3,4},
+ {&(_ZTV7ee20701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20701[];
+extern VTBL_ENTRY _ZTV7ee20701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20701[];
+static VTBL_ENTRY alt_thunk_names623[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207013fooEv,_ZTv0_n12_N7ee207013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee207013fooEv,_ZThn16_N7ee207013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20701 = { "ee20701", // class name
+ bases_ee20701, 4,
+ &(vtc_ee20701[0]), // expected_vtbl_contents
+ &(vtt_ee20701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names623,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30701 : virtual dd0701 {
+ int e;
+ virtual void foo(); // _ZN7ee307013fooEv
+ ~ee30701(); // tgen
+ ee30701(); // tgen
+};
+//SIG(1 ee30701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30701 ::foo(){vfunc_called(this, "_ZN7ee307013fooEv");}
+ee30701 ::~ee30701(){ note_dtor("ee30701", this);} // tgen
+ee30701 ::ee30701(){ note_ctor("ee30701", this);} // tgen
+
+static void Test_ee30701()
+{
+ extern Class_Descriptor cd_ee30701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30701, buf);
+ ee30701 *dp, &lv = *(dp=new (buf) ee30701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee30701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd0701*), ABISELECT(32,20), "ee30701");
+ check_base_class_offset(lv, (cc701*)(dd0701*), ABISELECT(16,8), "ee30701");
+ check_base_class_offset(lv, (dd0701*), ABISELECT(16,8), "ee30701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30701.e");
+ test_class_info(&lv, &cd_ee30701);
+ dp->~ee30701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30701(Test_ee30701, "ee30701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30701C1Ev();
+extern void _ZN7ee30701D1Ev();
+Name_Map name_map_ee30701[] = {
+ NSPAIR(_ZN7ee30701C1Ev),
+ NSPAIR(_ZN7ee30701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd0701;
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static Base_Class bases_ee30701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30701[];
+extern void _ZN7ee307013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307013fooEv,_ZTv0_n16_N7ee307013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307013fooEv,_ZThn8_N7ee307013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee307013fooEv,_ZTv0_n12_N7ee307013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee307013fooEv,_ZThn20_N7ee307013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30701[0]),
+ (VTBL_ENTRY)&_ZN7ee307013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307013fooEv,_ZTv0_n16_N7ee307013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307013fooEv,_ZTv0_n12_N7ee307013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0701__7ee30701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd0701__7ee30701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd0701__7ee30701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0701__7ee30701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee30701[] = {
+ {&(_ZTV7ee30701[4]), 4,16},
+ {&(_ZTV7ee30701[10]), 10,16},
+ {&(_ZTV7ee30701[15]), 15,16},
+ {&(_tg__ZTV6dd0701__7ee30701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd0701__7ee30701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd0701__7ee30701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0701__7ee30701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30701[];
+extern VTBL_ENTRY _ZTV7ee30701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30701[];
+static VTBL_ENTRY alt_thunk_names624[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307013fooEv,_ZTv0_n12_N7ee307013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee307013fooEv,_ZThn20_N7ee307013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307013fooEv,_ZTv0_n16_N7ee307013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307013fooEv,_ZThn8_N7ee307013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30701 = { "ee30701", // class name
+ bases_ee30701, 4,
+ &(vtc_ee30701[0]), // expected_vtbl_contents
+ &(vtt_ee30701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names624,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40701 : dd0701 {
+ int e;
+ virtual void bar(); // _ZN7ee407013barEv
+ ~ee40701(); // tgen
+ ee40701(); // tgen
+};
+//SIG(1 ee40701) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40701 ::bar(){vfunc_called(this, "_ZN7ee407013barEv");}
+ee40701 ::~ee40701(){ note_dtor("ee40701", this);} // tgen
+ee40701 ::ee40701(){ note_ctor("ee40701", this);} // tgen
+
+static void Test_ee40701()
+{
+ extern Class_Descriptor cd_ee40701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40701, buf);
+ ee40701 *dp, &lv = *(dp=new (buf) ee40701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee40701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd0701*), ABISELECT(24,16), "ee40701");
+ check_base_class_offset(lv, (cc701*)(dd0701*), 0, "ee40701");
+ check_base_class_offset(lv, (dd0701*), 0, "ee40701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40701.e");
+ test_class_info(&lv, &cd_ee40701);
+ dp->~ee40701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40701(Test_ee40701, "ee40701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40701C1Ev();
+extern void _ZN7ee40701D1Ev();
+Name_Map name_map_ee40701[] = {
+ NSPAIR(_ZN7ee40701C1Ev),
+ NSPAIR(_ZN7ee40701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd0701;
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static Base_Class bases_ee40701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN7ee407013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN7ee407013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0701__7ee40701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd0701__7ee40701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd0701__7ee40701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0701__7ee40701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee40701[] = {
+ {&(_ZTV7ee40701[3]), 3,9},
+ {&(_tg__ZTV6dd0701__7ee40701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd0701__7ee40701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd0701__7ee40701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0701__7ee40701[3]), 3,4},
+ {&(_ZTV7ee40701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee40701[];
+extern VTBL_ENTRY _ZTV7ee40701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40701[];
+static VTBL_ENTRY alt_thunk_names625[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40701 = { "ee40701", // class name
+ bases_ee40701, 4,
+ &(vtc_ee40701[0]), // expected_vtbl_contents
+ &(vtt_ee40701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names625,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50701 : virtual dd0701 {
+ int e;
+ virtual void bar(); // _ZN7ee507013barEv
+ ~ee50701(); // tgen
+ ee50701(); // tgen
+};
+//SIG(1 ee50701) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50701 ::bar(){vfunc_called(this, "_ZN7ee507013barEv");}
+ee50701 ::~ee50701(){ note_dtor("ee50701", this);} // tgen
+ee50701 ::ee50701(){ note_ctor("ee50701", this);} // tgen
+
+static void Test_ee50701()
+{
+ extern Class_Descriptor cd_ee50701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50701, buf);
+ ee50701 *dp, &lv = *(dp=new (buf) ee50701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee50701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd0701*), ABISELECT(32,20), "ee50701");
+ check_base_class_offset(lv, (cc701*)(dd0701*), ABISELECT(16,8), "ee50701");
+ check_base_class_offset(lv, (dd0701*), ABISELECT(16,8), "ee50701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50701.e");
+ test_class_info(&lv, &cd_ee50701);
+ dp->~ee50701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50701(Test_ee50701, "ee50701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50701C1Ev();
+extern void _ZN7ee50701D1Ev();
+Name_Map name_map_ee50701[] = {
+ NSPAIR(_ZN7ee50701C1Ev),
+ NSPAIR(_ZN7ee50701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd0701;
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static Base_Class bases_ee50701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50701[];
+extern void _ZN7ee507013barEv();
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507013barEv,_ZTv0_n20_N7ee507013barEv)();
+extern void ABISELECT(_ZThn16_N7ee507013barEv,_ZThn8_N7ee507013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50701[0]),
+ (VTBL_ENTRY)&_ZN7ee507013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507013barEv,_ZTv0_n20_N7ee507013barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0701__7ee50701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd0701__7ee50701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd0701__7ee50701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0701__7ee50701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee50701[] = {
+ {&(_ZTV7ee50701[4]), 4,16},
+ {&(_ZTV7ee50701[10]), 10,16},
+ {&(_ZTV7ee50701[15]), 15,16},
+ {&(_tg__ZTV6dd0701__7ee50701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd0701__7ee50701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd0701__7ee50701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0701__7ee50701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50701[];
+extern VTBL_ENTRY _ZTV7ee50701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50701[];
+static VTBL_ENTRY alt_thunk_names626[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507013barEv,_ZTv0_n20_N7ee507013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507013barEv,_ZThn8_N7ee507013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50701 = { "ee50701", // class name
+ bases_ee50701, 4,
+ &(vtc_ee50701[0]), // expected_vtbl_contents
+ &(vtt_ee50701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names626,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60701 : dd0701 {
+ int e;
+ virtual void foo(); // _ZN7ee607013fooEv
+ virtual void bar(); // _ZN7ee607013barEv
+ ~ee60701(); // tgen
+ ee60701(); // tgen
+};
+//SIG(1 ee60701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60701 ::foo(){vfunc_called(this, "_ZN7ee607013fooEv");}
+void ee60701 ::bar(){vfunc_called(this, "_ZN7ee607013barEv");}
+ee60701 ::~ee60701(){ note_dtor("ee60701", this);} // tgen
+ee60701 ::ee60701(){ note_ctor("ee60701", this);} // tgen
+
+static void Test_ee60701()
+{
+ extern Class_Descriptor cd_ee60701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60701, buf);
+ ee60701 *dp, &lv = *(dp=new (buf) ee60701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee60701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd0701*), ABISELECT(24,16), "ee60701");
+ check_base_class_offset(lv, (cc701*)(dd0701*), 0, "ee60701");
+ check_base_class_offset(lv, (dd0701*), 0, "ee60701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60701.e");
+ test_class_info(&lv, &cd_ee60701);
+ dp->~ee60701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60701(Test_ee60701, "ee60701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60701C1Ev();
+extern void _ZN7ee60701D1Ev();
+Name_Map name_map_ee60701[] = {
+ NSPAIR(_ZN7ee60701C1Ev),
+ NSPAIR(_ZN7ee60701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd0701;
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static Base_Class bases_ee60701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60701[];
+extern void _ZN7ee607013fooEv();
+extern void _ZN7ee607013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee607013fooEv,_ZTv0_n12_N7ee607013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee607013fooEv,_ZThn16_N7ee607013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60701[0]),
+ (VTBL_ENTRY)&_ZN7ee607013fooEv,
+ (VTBL_ENTRY)&_ZN7ee607013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607013fooEv,_ZTv0_n12_N7ee607013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0701__7ee60701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd0701__7ee60701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd0701__7ee60701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0701__7ee60701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee60701[] = {
+ {&(_ZTV7ee60701[3]), 3,9},
+ {&(_tg__ZTV6dd0701__7ee60701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd0701__7ee60701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd0701__7ee60701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0701__7ee60701[3]), 3,4},
+ {&(_ZTV7ee60701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60701[];
+extern VTBL_ENTRY _ZTV7ee60701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60701[];
+static VTBL_ENTRY alt_thunk_names627[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607013fooEv,_ZTv0_n12_N7ee607013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607013fooEv,_ZThn16_N7ee607013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60701 = { "ee60701", // class name
+ bases_ee60701, 4,
+ &(vtc_ee60701[0]), // expected_vtbl_contents
+ &(vtt_ee60701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names627,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70701 : virtual dd0701 {
+ int e;
+ virtual void foo(); // _ZN7ee707013fooEv
+ virtual void bar(); // _ZN7ee707013barEv
+ ~ee70701(); // tgen
+ ee70701(); // tgen
+};
+//SIG(1 ee70701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70701 ::foo(){vfunc_called(this, "_ZN7ee707013fooEv");}
+void ee70701 ::bar(){vfunc_called(this, "_ZN7ee707013barEv");}
+ee70701 ::~ee70701(){ note_dtor("ee70701", this);} // tgen
+ee70701 ::ee70701(){ note_ctor("ee70701", this);} // tgen
+
+static void Test_ee70701()
+{
+ extern Class_Descriptor cd_ee70701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70701, buf);
+ ee70701 *dp, &lv = *(dp=new (buf) ee70701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee70701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd0701*), ABISELECT(32,20), "ee70701");
+ check_base_class_offset(lv, (cc701*)(dd0701*), ABISELECT(16,8), "ee70701");
+ check_base_class_offset(lv, (dd0701*), ABISELECT(16,8), "ee70701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70701.e");
+ test_class_info(&lv, &cd_ee70701);
+ dp->~ee70701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70701(Test_ee70701, "ee70701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70701C1Ev();
+extern void _ZN7ee70701D1Ev();
+Name_Map name_map_ee70701[] = {
+ NSPAIR(_ZN7ee70701C1Ev),
+ NSPAIR(_ZN7ee70701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd0701;
+extern VTBL_ENTRY _ZTI6dd0701[];
+extern VTBL_ENTRY _ZTV6dd0701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0701[];
+static Base_Class bases_ee70701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70701[];
+extern void _ZN7ee707013fooEv();
+extern void _ZN7ee707013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707013fooEv,_ZTv0_n16_N7ee707013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707013fooEv,_ZThn8_N7ee707013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707013barEv,_ZTv0_n20_N7ee707013barEv)();
+extern void ABISELECT(_ZThn16_N7ee707013barEv,_ZThn8_N7ee707013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707013fooEv,_ZTv0_n12_N7ee707013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee707013fooEv,_ZThn20_N7ee707013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70701[0]),
+ (VTBL_ENTRY)&_ZN7ee707013fooEv,
+ (VTBL_ENTRY)&_ZN7ee707013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707013fooEv,_ZTv0_n16_N7ee707013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707013barEv,_ZTv0_n20_N7ee707013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707013fooEv,_ZTv0_n12_N7ee707013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd0701__7ee70701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd0701__7ee70701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd0701__7ee70701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd0701__7ee70701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee70701[] = {
+ {&(_ZTV7ee70701[4]), 4,17},
+ {&(_ZTV7ee70701[11]), 11,17},
+ {&(_ZTV7ee70701[16]), 16,17},
+ {&(_tg__ZTV6dd0701__7ee70701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd0701__7ee70701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd0701__7ee70701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd0701__7ee70701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70701[];
+extern VTBL_ENTRY _ZTV7ee70701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70701[];
+static VTBL_ENTRY alt_thunk_names628[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707013fooEv,_ZTv0_n12_N7ee707013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707013fooEv,_ZThn20_N7ee707013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707013barEv,_ZTv0_n20_N7ee707013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707013barEv,_ZThn8_N7ee707013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707013fooEv,_ZTv0_n16_N7ee707013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707013fooEv,_ZThn8_N7ee707013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70701 = { "ee70701", // class name
+ bases_ee70701, 4,
+ &(vtc_ee70701[0]), // expected_vtbl_contents
+ &(vtt_ee70701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names628,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1701 : virtual cc701 {
+ int d;
+ ~dd1701(); // tgen
+ dd1701(); // tgen
+};
+//SIG(-1 dd1701) C1{ VBC2{ VBC3{ BC4{ v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd1701 ::~dd1701(){ note_dtor("dd1701", this);} // tgen
+dd1701 ::dd1701(){ note_ctor("dd1701", this);} // tgen
+
+static void Test_dd1701()
+{
+ extern Class_Descriptor cd_dd1701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1701, buf);
+ dd1701 *dp, &lv = *(dp=new (buf) dd1701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd1701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,16), "dd1701");
+ check_base_class_offset(lv, (cc701*), ABISELECT(16,8), "dd1701");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1701.d");
+ test_class_info(&lv, &cd_dd1701);
+ dp->~dd1701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1701(Test_dd1701, "dd1701", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1701C1Ev();
+extern void _ZN6dd1701D1Ev();
+Name_Map name_map_dd1701[] = {
+ NSPAIR(_ZN6dd1701C1Ev),
+ NSPAIR(_ZN6dd1701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static Base_Class bases_dd1701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__6dd1701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_dd1701[] = {
+ {&(_ZTV6dd1701[4]), 4,15},
+ {&(_ZTV6dd1701[9]), 9,15},
+ {&(_ZTV6dd1701[14]), 14,15},
+ {&(_tg__ZTV5cc701__6dd1701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__6dd1701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static VTBL_ENTRY alt_thunk_names629[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1701 = { "dd1701", // class name
+ bases_dd1701, 3,
+ &(vtc_dd1701[0]), // expected_vtbl_contents
+ &(vtt_dd1701[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1701),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1701),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names629,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01701 : dd1701 {
+ int e;
+ ~ee01701(); // tgen
+ ee01701(); // tgen
+};
+//SIG(1 ee01701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01701 ::~ee01701(){ note_dtor("ee01701", this);} // tgen
+ee01701 ::ee01701(){ note_ctor("ee01701", this);} // tgen
+
+static void Test_ee01701()
+{
+ extern Class_Descriptor cd_ee01701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01701, buf);
+ ee01701 *dp, &lv = *(dp=new (buf) ee01701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee01701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee01701");
+ check_base_class_offset(lv, (cc701*)(dd1701*), ABISELECT(16,12), "ee01701");
+ check_base_class_offset(lv, (dd1701*), 0, "ee01701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01701.e");
+ test_class_info(&lv, &cd_ee01701);
+ dp->~ee01701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01701(Test_ee01701, "ee01701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01701C1Ev();
+extern void _ZN7ee01701D1Ev();
+Name_Map name_map_ee01701[] = {
+ NSPAIR(_ZN7ee01701C1Ev),
+ NSPAIR(_ZN7ee01701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd1701;
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static Base_Class bases_ee01701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01701[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01701[];
+static VTBL_ENTRY _tg__ZTV6dd1701__7ee01701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701__7ee01701[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1701__7ee01701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee01701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee01701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee01701[] = {
+ {&(_ZTV7ee01701[4]), 4,15},
+ {&(_tg__ZTV6dd1701__7ee01701[4]), 4,4},
+ {&(_tg__ZTV5cc701__6dd1701__7ee01701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd1701__7ee01701[3]), 3,4},
+ {&(_ZTV7ee01701[9]), 9,15},
+ {&(_ZTV7ee01701[14]), 14,15},
+ {&(_tg__ZTV5cc701__7ee01701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee01701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01701[];
+extern VTBL_ENTRY _ZTV7ee01701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01701[];
+static VTBL_ENTRY alt_thunk_names630[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01701 = { "ee01701", // class name
+ bases_ee01701, 4,
+ &(vtc_ee01701[0]), // expected_vtbl_contents
+ &(vtt_ee01701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01701),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names630,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11701 : virtual dd1701 {
+ int e;
+ ~ee11701(); // tgen
+ ee11701(); // tgen
+};
+//SIG(1 ee11701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11701 ::~ee11701(){ note_dtor("ee11701", this);} // tgen
+ee11701 ::ee11701(){ note_ctor("ee11701", this);} // tgen
+
+static void Test_ee11701()
+{
+ extern Class_Descriptor cd_ee11701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11701, buf);
+ ee11701 *dp, &lv = *(dp=new (buf) ee11701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee11701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee11701");
+ check_base_class_offset(lv, (cc701*)(dd1701*), ABISELECT(32,16), "ee11701");
+ check_base_class_offset(lv, (dd1701*), ABISELECT(16,8), "ee11701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11701.e");
+ test_class_info(&lv, &cd_ee11701);
+ dp->~ee11701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11701(Test_ee11701, "ee11701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11701C1Ev();
+extern void _ZN7ee11701D1Ev();
+Name_Map name_map_ee11701[] = {
+ NSPAIR(_ZN7ee11701C1Ev),
+ NSPAIR(_ZN7ee11701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd1701;
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static Base_Class bases_ee11701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11701[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11701[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11701[];
+static VTBL_ENTRY _tg__ZTV6dd1701__7ee11701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701__7ee11701[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1701__7ee11701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee11701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee11701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee11701[] = {
+ {&(_ZTV7ee11701[5]), 5,20},
+ {&(_ZTV7ee11701[9]), 9,20},
+ {&(_ZTV7ee11701[14]), 14,20},
+ {&(_ZTV7ee11701[19]), 19,20},
+ {&(_tg__ZTV6dd1701__7ee11701[4]), 4,4},
+ {&(_tg__ZTV5cc701__6dd1701__7ee11701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd1701__7ee11701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee11701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee11701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11701[];
+extern VTBL_ENTRY _ZTV7ee11701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11701[];
+static VTBL_ENTRY alt_thunk_names631[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11701 = { "ee11701", // class name
+ bases_ee11701, 4,
+ &(vtc_ee11701[0]), // expected_vtbl_contents
+ &(vtt_ee11701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11701),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names631,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21701 : dd1701 {
+ int e;
+ virtual void foo(); // _ZN7ee217013fooEv
+ ~ee21701(); // tgen
+ ee21701(); // tgen
+};
+//SIG(1 ee21701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21701 ::foo(){vfunc_called(this, "_ZN7ee217013fooEv");}
+ee21701 ::~ee21701(){ note_dtor("ee21701", this);} // tgen
+ee21701 ::ee21701(){ note_ctor("ee21701", this);} // tgen
+
+static void Test_ee21701()
+{
+ extern Class_Descriptor cd_ee21701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21701, buf);
+ ee21701 *dp, &lv = *(dp=new (buf) ee21701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee21701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee21701");
+ check_base_class_offset(lv, (cc701*)(dd1701*), ABISELECT(16,12), "ee21701");
+ check_base_class_offset(lv, (dd1701*), 0, "ee21701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21701.e");
+ test_class_info(&lv, &cd_ee21701);
+ dp->~ee21701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21701(Test_ee21701, "ee21701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21701C1Ev();
+extern void _ZN7ee21701D1Ev();
+Name_Map name_map_ee21701[] = {
+ NSPAIR(_ZN7ee21701C1Ev),
+ NSPAIR(_ZN7ee21701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd1701;
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static Base_Class bases_ee21701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21701[];
+extern void _ZN7ee217013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217013fooEv,_ZTv0_n16_N7ee217013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217013fooEv,_ZThn12_N7ee217013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee217013fooEv,_ZTv0_n12_N7ee217013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee217013fooEv,_ZThn20_N7ee217013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21701[0]),
+ (VTBL_ENTRY)&_ZN7ee217013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217013fooEv,_ZTv0_n16_N7ee217013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217013fooEv,_ZTv0_n12_N7ee217013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21701[];
+static VTBL_ENTRY _tg__ZTV6dd1701__7ee21701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701__7ee21701[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1701__7ee21701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee21701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee21701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee21701[] = {
+ {&(_ZTV7ee21701[4]), 4,16},
+ {&(_tg__ZTV6dd1701__7ee21701[4]), 4,4},
+ {&(_tg__ZTV5cc701__6dd1701__7ee21701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd1701__7ee21701[3]), 3,4},
+ {&(_ZTV7ee21701[10]), 10,16},
+ {&(_ZTV7ee21701[15]), 15,16},
+ {&(_tg__ZTV5cc701__7ee21701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee21701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21701[];
+extern VTBL_ENTRY _ZTV7ee21701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21701[];
+static VTBL_ENTRY alt_thunk_names632[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217013fooEv,_ZTv0_n12_N7ee217013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee217013fooEv,_ZThn20_N7ee217013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217013fooEv,_ZTv0_n16_N7ee217013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217013fooEv,_ZThn12_N7ee217013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21701 = { "ee21701", // class name
+ bases_ee21701, 4,
+ &(vtc_ee21701[0]), // expected_vtbl_contents
+ &(vtt_ee21701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names632,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31701 : virtual dd1701 {
+ int e;
+ virtual void foo(); // _ZN7ee317013fooEv
+ ~ee31701(); // tgen
+ ee31701(); // tgen
+};
+//SIG(1 ee31701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31701 ::foo(){vfunc_called(this, "_ZN7ee317013fooEv");}
+ee31701 ::~ee31701(){ note_dtor("ee31701", this);} // tgen
+ee31701 ::ee31701(){ note_ctor("ee31701", this);} // tgen
+
+static void Test_ee31701()
+{
+ extern Class_Descriptor cd_ee31701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31701, buf);
+ ee31701 *dp, &lv = *(dp=new (buf) ee31701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee31701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee31701");
+ check_base_class_offset(lv, (cc701*)(dd1701*), ABISELECT(32,16), "ee31701");
+ check_base_class_offset(lv, (dd1701*), ABISELECT(16,8), "ee31701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31701.e");
+ test_class_info(&lv, &cd_ee31701);
+ dp->~ee31701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31701(Test_ee31701, "ee31701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31701C1Ev();
+extern void _ZN7ee31701D1Ev();
+Name_Map name_map_ee31701[] = {
+ NSPAIR(_ZN7ee31701C1Ev),
+ NSPAIR(_ZN7ee31701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd1701;
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static Base_Class bases_ee31701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31701[];
+extern void _ZN7ee317013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317013fooEv,_ZTv0_n16_N7ee317013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317013fooEv,_ZThn16_N7ee317013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee317013fooEv,_ZTv0_n12_N7ee317013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee317013fooEv,_ZThn24_N7ee317013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31701[0]),
+ (VTBL_ENTRY)&_ZN7ee317013fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31701[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317013fooEv,_ZTv0_n16_N7ee317013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317013fooEv,_ZTv0_n12_N7ee317013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31701[];
+static VTBL_ENTRY _tg__ZTV6dd1701__7ee31701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701__7ee31701[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1701__7ee31701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee31701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee31701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee31701[] = {
+ {&(_ZTV7ee31701[5]), 5,21},
+ {&(_ZTV7ee31701[10]), 10,21},
+ {&(_ZTV7ee31701[15]), 15,21},
+ {&(_ZTV7ee31701[20]), 20,21},
+ {&(_tg__ZTV6dd1701__7ee31701[4]), 4,4},
+ {&(_tg__ZTV5cc701__6dd1701__7ee31701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd1701__7ee31701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee31701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee31701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31701[];
+extern VTBL_ENTRY _ZTV7ee31701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31701[];
+static VTBL_ENTRY alt_thunk_names633[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317013fooEv,_ZTv0_n12_N7ee317013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee317013fooEv,_ZThn24_N7ee317013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317013fooEv,_ZTv0_n16_N7ee317013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317013fooEv,_ZThn16_N7ee317013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31701 = { "ee31701", // class name
+ bases_ee31701, 4,
+ &(vtc_ee31701[0]), // expected_vtbl_contents
+ &(vtt_ee31701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31701),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names633,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41701 : dd1701 {
+ int e;
+ virtual void bar(); // _ZN7ee417013barEv
+ ~ee41701(); // tgen
+ ee41701(); // tgen
+};
+//SIG(1 ee41701) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41701 ::bar(){vfunc_called(this, "_ZN7ee417013barEv");}
+ee41701 ::~ee41701(){ note_dtor("ee41701", this);} // tgen
+ee41701 ::ee41701(){ note_ctor("ee41701", this);} // tgen
+
+static void Test_ee41701()
+{
+ extern Class_Descriptor cd_ee41701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41701, buf);
+ ee41701 *dp, &lv = *(dp=new (buf) ee41701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee41701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee41701");
+ check_base_class_offset(lv, (cc701*)(dd1701*), ABISELECT(16,12), "ee41701");
+ check_base_class_offset(lv, (dd1701*), 0, "ee41701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41701.e");
+ test_class_info(&lv, &cd_ee41701);
+ dp->~ee41701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41701(Test_ee41701, "ee41701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41701C1Ev();
+extern void _ZN7ee41701D1Ev();
+Name_Map name_map_ee41701[] = {
+ NSPAIR(_ZN7ee41701C1Ev),
+ NSPAIR(_ZN7ee41701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd1701;
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static Base_Class bases_ee41701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41701[];
+extern void _ZN7ee417013barEv();
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417013barEv,_ZTv0_n20_N7ee417013barEv)();
+extern void ABISELECT(_ZThn16_N7ee417013barEv,_ZThn12_N7ee417013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41701[0]),
+ (VTBL_ENTRY)&_ZN7ee417013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417013barEv,_ZTv0_n20_N7ee417013barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41701[];
+static VTBL_ENTRY _tg__ZTV6dd1701__7ee41701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701__7ee41701[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1701__7ee41701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee41701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee41701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee41701[] = {
+ {&(_ZTV7ee41701[4]), 4,16},
+ {&(_tg__ZTV6dd1701__7ee41701[4]), 4,4},
+ {&(_tg__ZTV5cc701__6dd1701__7ee41701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd1701__7ee41701[3]), 3,4},
+ {&(_ZTV7ee41701[10]), 10,16},
+ {&(_ZTV7ee41701[15]), 15,16},
+ {&(_tg__ZTV5cc701__7ee41701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee41701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41701[];
+extern VTBL_ENTRY _ZTV7ee41701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41701[];
+static VTBL_ENTRY alt_thunk_names634[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417013barEv,_ZTv0_n20_N7ee417013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417013barEv,_ZThn12_N7ee417013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41701 = { "ee41701", // class name
+ bases_ee41701, 4,
+ &(vtc_ee41701[0]), // expected_vtbl_contents
+ &(vtt_ee41701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names634,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51701 : virtual dd1701 {
+ int e;
+ virtual void bar(); // _ZN7ee517013barEv
+ ~ee51701(); // tgen
+ ee51701(); // tgen
+};
+//SIG(1 ee51701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51701 ::bar(){vfunc_called(this, "_ZN7ee517013barEv");}
+ee51701 ::~ee51701(){ note_dtor("ee51701", this);} // tgen
+ee51701 ::ee51701(){ note_ctor("ee51701", this);} // tgen
+
+static void Test_ee51701()
+{
+ extern Class_Descriptor cd_ee51701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51701, buf);
+ ee51701 *dp, &lv = *(dp=new (buf) ee51701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee51701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee51701");
+ check_base_class_offset(lv, (cc701*)(dd1701*), ABISELECT(32,16), "ee51701");
+ check_base_class_offset(lv, (dd1701*), ABISELECT(16,8), "ee51701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51701.e");
+ test_class_info(&lv, &cd_ee51701);
+ dp->~ee51701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51701(Test_ee51701, "ee51701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51701C1Ev();
+extern void _ZN7ee51701D1Ev();
+Name_Map name_map_ee51701[] = {
+ NSPAIR(_ZN7ee51701C1Ev),
+ NSPAIR(_ZN7ee51701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd1701;
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static Base_Class bases_ee51701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51701[];
+extern void _ZN7ee517013barEv();
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517013barEv,_ZTv0_n20_N7ee517013barEv)();
+extern void ABISELECT(_ZThn32_N7ee517013barEv,_ZThn16_N7ee517013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51701[0]),
+ (VTBL_ENTRY)&_ZN7ee517013barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51701[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517013barEv,_ZTv0_n20_N7ee517013barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51701[];
+static VTBL_ENTRY _tg__ZTV6dd1701__7ee51701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701__7ee51701[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1701__7ee51701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee51701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee51701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee51701[] = {
+ {&(_ZTV7ee51701[5]), 5,21},
+ {&(_ZTV7ee51701[10]), 10,21},
+ {&(_ZTV7ee51701[15]), 15,21},
+ {&(_ZTV7ee51701[20]), 20,21},
+ {&(_tg__ZTV6dd1701__7ee51701[4]), 4,4},
+ {&(_tg__ZTV5cc701__6dd1701__7ee51701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd1701__7ee51701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee51701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee51701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51701[];
+extern VTBL_ENTRY _ZTV7ee51701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51701[];
+static VTBL_ENTRY alt_thunk_names635[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517013barEv,_ZTv0_n20_N7ee517013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517013barEv,_ZThn16_N7ee517013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51701 = { "ee51701", // class name
+ bases_ee51701, 4,
+ &(vtc_ee51701[0]), // expected_vtbl_contents
+ &(vtt_ee51701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51701),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names635,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61701 : dd1701 {
+ int e;
+ virtual void foo(); // _ZN7ee617013fooEv
+ virtual void bar(); // _ZN7ee617013barEv
+ ~ee61701(); // tgen
+ ee61701(); // tgen
+};
+//SIG(1 ee61701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61701 ::foo(){vfunc_called(this, "_ZN7ee617013fooEv");}
+void ee61701 ::bar(){vfunc_called(this, "_ZN7ee617013barEv");}
+ee61701 ::~ee61701(){ note_dtor("ee61701", this);} // tgen
+ee61701 ::ee61701(){ note_ctor("ee61701", this);} // tgen
+
+static void Test_ee61701()
+{
+ extern Class_Descriptor cd_ee61701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61701, buf);
+ ee61701 *dp, &lv = *(dp=new (buf) ee61701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee61701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee61701");
+ check_base_class_offset(lv, (cc701*)(dd1701*), ABISELECT(16,12), "ee61701");
+ check_base_class_offset(lv, (dd1701*), 0, "ee61701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61701.e");
+ test_class_info(&lv, &cd_ee61701);
+ dp->~ee61701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61701(Test_ee61701, "ee61701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61701C1Ev();
+extern void _ZN7ee61701D1Ev();
+Name_Map name_map_ee61701[] = {
+ NSPAIR(_ZN7ee61701C1Ev),
+ NSPAIR(_ZN7ee61701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd1701;
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static Base_Class bases_ee61701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61701[];
+extern void _ZN7ee617013fooEv();
+extern void _ZN7ee617013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617013fooEv,_ZTv0_n16_N7ee617013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617013fooEv,_ZThn12_N7ee617013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617013barEv,_ZTv0_n20_N7ee617013barEv)();
+extern void ABISELECT(_ZThn16_N7ee617013barEv,_ZThn12_N7ee617013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617013fooEv,_ZTv0_n12_N7ee617013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee617013fooEv,_ZThn20_N7ee617013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61701[0]),
+ (VTBL_ENTRY)&_ZN7ee617013fooEv,
+ (VTBL_ENTRY)&_ZN7ee617013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617013fooEv,_ZTv0_n16_N7ee617013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617013barEv,_ZTv0_n20_N7ee617013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617013fooEv,_ZTv0_n12_N7ee617013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61701[];
+static VTBL_ENTRY _tg__ZTV6dd1701__7ee61701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701__7ee61701[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1701__7ee61701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee61701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee61701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee61701[] = {
+ {&(_ZTV7ee61701[4]), 4,17},
+ {&(_tg__ZTV6dd1701__7ee61701[4]), 4,4},
+ {&(_tg__ZTV5cc701__6dd1701__7ee61701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd1701__7ee61701[3]), 3,4},
+ {&(_ZTV7ee61701[11]), 11,17},
+ {&(_ZTV7ee61701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee61701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee61701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61701[];
+extern VTBL_ENTRY _ZTV7ee61701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61701[];
+static VTBL_ENTRY alt_thunk_names636[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617013fooEv,_ZTv0_n12_N7ee617013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617013fooEv,_ZThn20_N7ee617013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617013barEv,_ZTv0_n20_N7ee617013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617013barEv,_ZThn12_N7ee617013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617013fooEv,_ZTv0_n16_N7ee617013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617013fooEv,_ZThn12_N7ee617013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61701 = { "ee61701", // class name
+ bases_ee61701, 4,
+ &(vtc_ee61701[0]), // expected_vtbl_contents
+ &(vtt_ee61701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names636,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71701 : virtual dd1701 {
+ int e;
+ virtual void foo(); // _ZN7ee717013fooEv
+ virtual void bar(); // _ZN7ee717013barEv
+ ~ee71701(); // tgen
+ ee71701(); // tgen
+};
+//SIG(1 ee71701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71701 ::foo(){vfunc_called(this, "_ZN7ee717013fooEv");}
+void ee71701 ::bar(){vfunc_called(this, "_ZN7ee717013barEv");}
+ee71701 ::~ee71701(){ note_dtor("ee71701", this);} // tgen
+ee71701 ::ee71701(){ note_ctor("ee71701", this);} // tgen
+
+static void Test_ee71701()
+{
+ extern Class_Descriptor cd_ee71701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71701, buf);
+ ee71701 *dp, &lv = *(dp=new (buf) ee71701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee71701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee71701");
+ check_base_class_offset(lv, (cc701*)(dd1701*), ABISELECT(32,16), "ee71701");
+ check_base_class_offset(lv, (dd1701*), ABISELECT(16,8), "ee71701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71701.e");
+ test_class_info(&lv, &cd_ee71701);
+ dp->~ee71701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71701(Test_ee71701, "ee71701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71701C1Ev();
+extern void _ZN7ee71701D1Ev();
+Name_Map name_map_ee71701[] = {
+ NSPAIR(_ZN7ee71701C1Ev),
+ NSPAIR(_ZN7ee71701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd1701;
+extern VTBL_ENTRY _ZTI6dd1701[];
+extern VTBL_ENTRY _ZTV6dd1701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1701[];
+static Base_Class bases_ee71701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1701, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71701[];
+extern void _ZN7ee717013fooEv();
+extern void _ZN7ee717013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717013fooEv,_ZTv0_n16_N7ee717013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717013fooEv,_ZThn16_N7ee717013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717013barEv,_ZTv0_n20_N7ee717013barEv)();
+extern void ABISELECT(_ZThn32_N7ee717013barEv,_ZThn16_N7ee717013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717013fooEv,_ZTv0_n12_N7ee717013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee717013fooEv,_ZThn24_N7ee717013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71701[0]),
+ (VTBL_ENTRY)&_ZN7ee717013fooEv,
+ (VTBL_ENTRY)&_ZN7ee717013barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71701[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717013fooEv,_ZTv0_n16_N7ee717013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717013barEv,_ZTv0_n20_N7ee717013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717013fooEv,_ZTv0_n12_N7ee717013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71701[];
+static VTBL_ENTRY _tg__ZTV6dd1701__7ee71701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd1701__7ee71701[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd1701__7ee71701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee71701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee71701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee71701[] = {
+ {&(_ZTV7ee71701[5]), 5,22},
+ {&(_ZTV7ee71701[11]), 11,22},
+ {&(_ZTV7ee71701[16]), 16,22},
+ {&(_ZTV7ee71701[21]), 21,22},
+ {&(_tg__ZTV6dd1701__7ee71701[4]), 4,4},
+ {&(_tg__ZTV5cc701__6dd1701__7ee71701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd1701__7ee71701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee71701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee71701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71701[];
+extern VTBL_ENTRY _ZTV7ee71701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71701[];
+static VTBL_ENTRY alt_thunk_names637[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717013fooEv,_ZTv0_n12_N7ee717013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717013fooEv,_ZThn24_N7ee717013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717013barEv,_ZTv0_n20_N7ee717013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717013barEv,_ZThn16_N7ee717013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717013fooEv,_ZTv0_n16_N7ee717013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717013fooEv,_ZThn16_N7ee717013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71701 = { "ee71701", // class name
+ bases_ee71701, 4,
+ &(vtc_ee71701[0]), // expected_vtbl_contents
+ &(vtt_ee71701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71701),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names637,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2701 : cc701 {
+ int d;
+ virtual void foo(); // _ZN6dd27013fooEv
+ ~dd2701(); // tgen
+ dd2701(); // tgen
+};
+//SIG(-1 dd2701) C1{ BC2{ VBC3{ BC4{ v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2701 ::foo(){vfunc_called(this, "_ZN6dd27013fooEv");}
+dd2701 ::~dd2701(){ note_dtor("dd2701", this);} // tgen
+dd2701 ::dd2701(){ note_ctor("dd2701", this);} // tgen
+
+static void Test_dd2701()
+{
+ extern Class_Descriptor cd_dd2701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2701, buf);
+ dd2701 *dp, &lv = *(dp=new (buf) dd2701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd2701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(16,12), "dd2701");
+ check_base_class_offset(lv, (cc701*), 0, "dd2701");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2701.d");
+ test_class_info(&lv, &cd_dd2701);
+ dp->~dd2701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2701(Test_dd2701, "dd2701", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2701C1Ev();
+extern void _ZN6dd2701D1Ev();
+Name_Map name_map_dd2701[] = {
+ NSPAIR(_ZN6dd2701C1Ev),
+ NSPAIR(_ZN6dd2701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static Base_Class bases_dd2701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd2701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__6dd2701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_dd2701[] = {
+ {&(_ZTV6dd2701[3]), 3,9},
+ {&(_tg__ZTV5cc701__6dd2701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__6dd2701[3]), 3,4},
+ {&(_ZTV6dd2701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static VTBL_ENTRY alt_thunk_names638[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2701 = { "dd2701", // class name
+ bases_dd2701, 3,
+ &(vtc_dd2701[0]), // expected_vtbl_contents
+ &(vtt_dd2701[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2701),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names638,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02701 : dd2701 {
+ int e;
+ ~ee02701(); // tgen
+ ee02701(); // tgen
+};
+//SIG(1 ee02701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02701 ::~ee02701(){ note_dtor("ee02701", this);} // tgen
+ee02701 ::ee02701(){ note_ctor("ee02701", this);} // tgen
+
+static void Test_ee02701()
+{
+ extern Class_Descriptor cd_ee02701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02701, buf);
+ ee02701 *dp, &lv = *(dp=new (buf) ee02701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee02701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd2701*), ABISELECT(24,16), "ee02701");
+ check_base_class_offset(lv, (cc701*)(dd2701*), 0, "ee02701");
+ check_base_class_offset(lv, (dd2701*), 0, "ee02701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02701.e");
+ test_class_info(&lv, &cd_ee02701);
+ dp->~ee02701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02701(Test_ee02701, "ee02701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02701C1Ev();
+extern void _ZN7ee02701D1Ev();
+Name_Map name_map_ee02701[] = {
+ NSPAIR(_ZN7ee02701C1Ev),
+ NSPAIR(_ZN7ee02701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd2701;
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static Base_Class bases_ee02701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd2701__7ee02701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd2701__7ee02701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd2701__7ee02701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2701__7ee02701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+static VTT_ENTRY vtt_ee02701[] = {
+ {&(_ZTV7ee02701[3]), 3,9},
+ {&(_tg__ZTV6dd2701__7ee02701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd2701__7ee02701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd2701__7ee02701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2701__7ee02701[3]), 3,4},
+ {&(_ZTV7ee02701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02701[];
+extern VTBL_ENTRY _ZTV7ee02701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02701[];
+static VTBL_ENTRY alt_thunk_names639[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02701 = { "ee02701", // class name
+ bases_ee02701, 4,
+ &(vtc_ee02701[0]), // expected_vtbl_contents
+ &(vtt_ee02701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names639,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12701 : virtual dd2701 {
+ int e;
+ ~ee12701(); // tgen
+ ee12701(); // tgen
+};
+//SIG(1 ee12701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12701 ::~ee12701(){ note_dtor("ee12701", this);} // tgen
+ee12701 ::ee12701(){ note_ctor("ee12701", this);} // tgen
+
+static void Test_ee12701()
+{
+ extern Class_Descriptor cd_ee12701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12701, buf);
+ ee12701 *dp, &lv = *(dp=new (buf) ee12701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee12701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd2701*), ABISELECT(32,20), "ee12701");
+ check_base_class_offset(lv, (cc701*)(dd2701*), ABISELECT(16,8), "ee12701");
+ check_base_class_offset(lv, (dd2701*), ABISELECT(16,8), "ee12701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12701.e");
+ test_class_info(&lv, &cd_ee12701);
+ dp->~ee12701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12701(Test_ee12701, "ee12701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12701C1Ev();
+extern void _ZN7ee12701D1Ev();
+Name_Map name_map_ee12701[] = {
+ NSPAIR(_ZN7ee12701C1Ev),
+ NSPAIR(_ZN7ee12701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd2701;
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static Base_Class bases_ee12701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2701, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12701[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd2701__7ee12701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd2701__7ee12701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd2701__7ee12701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2701__7ee12701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+static VTT_ENTRY vtt_ee12701[] = {
+ {&(_ZTV7ee12701[4]), 4,15},
+ {&(_ZTV7ee12701[9]), 9,15},
+ {&(_ZTV7ee12701[14]), 14,15},
+ {&(_tg__ZTV6dd2701__7ee12701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd2701__7ee12701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd2701__7ee12701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2701__7ee12701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12701[];
+extern VTBL_ENTRY _ZTV7ee12701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12701[];
+static VTBL_ENTRY alt_thunk_names640[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12701 = { "ee12701", // class name
+ bases_ee12701, 4,
+ &(vtc_ee12701[0]), // expected_vtbl_contents
+ &(vtt_ee12701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12701),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names640,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22701 : dd2701 {
+ int e;
+ virtual void foo(); // _ZN7ee227013fooEv
+ ~ee22701(); // tgen
+ ee22701(); // tgen
+};
+//SIG(1 ee22701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22701 ::foo(){vfunc_called(this, "_ZN7ee227013fooEv");}
+ee22701 ::~ee22701(){ note_dtor("ee22701", this);} // tgen
+ee22701 ::ee22701(){ note_ctor("ee22701", this);} // tgen
+
+static void Test_ee22701()
+{
+ extern Class_Descriptor cd_ee22701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22701, buf);
+ ee22701 *dp, &lv = *(dp=new (buf) ee22701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee22701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd2701*), ABISELECT(24,16), "ee22701");
+ check_base_class_offset(lv, (cc701*)(dd2701*), 0, "ee22701");
+ check_base_class_offset(lv, (dd2701*), 0, "ee22701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22701.e");
+ test_class_info(&lv, &cd_ee22701);
+ dp->~ee22701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22701(Test_ee22701, "ee22701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22701C1Ev();
+extern void _ZN7ee22701D1Ev();
+Name_Map name_map_ee22701[] = {
+ NSPAIR(_ZN7ee22701C1Ev),
+ NSPAIR(_ZN7ee22701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd2701;
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static Base_Class bases_ee22701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22701[];
+extern void _ZN7ee227013fooEv();
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee227013fooEv,_ZTv0_n12_N7ee227013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee227013fooEv,_ZThn16_N7ee227013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22701[0]),
+ (VTBL_ENTRY)&_ZN7ee227013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227013fooEv,_ZTv0_n12_N7ee227013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd2701__7ee22701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd2701__7ee22701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd2701__7ee22701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2701__7ee22701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+static VTT_ENTRY vtt_ee22701[] = {
+ {&(_ZTV7ee22701[3]), 3,9},
+ {&(_tg__ZTV6dd2701__7ee22701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd2701__7ee22701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd2701__7ee22701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2701__7ee22701[3]), 3,4},
+ {&(_ZTV7ee22701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22701[];
+extern VTBL_ENTRY _ZTV7ee22701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22701[];
+static VTBL_ENTRY alt_thunk_names641[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227013fooEv,_ZTv0_n12_N7ee227013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee227013fooEv,_ZThn16_N7ee227013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22701 = { "ee22701", // class name
+ bases_ee22701, 4,
+ &(vtc_ee22701[0]), // expected_vtbl_contents
+ &(vtt_ee22701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names641,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32701 : virtual dd2701 {
+ int e;
+ virtual void foo(); // _ZN7ee327013fooEv
+ ~ee32701(); // tgen
+ ee32701(); // tgen
+};
+//SIG(1 ee32701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32701 ::foo(){vfunc_called(this, "_ZN7ee327013fooEv");}
+ee32701 ::~ee32701(){ note_dtor("ee32701", this);} // tgen
+ee32701 ::ee32701(){ note_ctor("ee32701", this);} // tgen
+
+static void Test_ee32701()
+{
+ extern Class_Descriptor cd_ee32701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32701, buf);
+ ee32701 *dp, &lv = *(dp=new (buf) ee32701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee32701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd2701*), ABISELECT(32,20), "ee32701");
+ check_base_class_offset(lv, (cc701*)(dd2701*), ABISELECT(16,8), "ee32701");
+ check_base_class_offset(lv, (dd2701*), ABISELECT(16,8), "ee32701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32701.e");
+ test_class_info(&lv, &cd_ee32701);
+ dp->~ee32701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32701(Test_ee32701, "ee32701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32701C1Ev();
+extern void _ZN7ee32701D1Ev();
+Name_Map name_map_ee32701[] = {
+ NSPAIR(_ZN7ee32701C1Ev),
+ NSPAIR(_ZN7ee32701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd2701;
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static Base_Class bases_ee32701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32701[];
+extern void _ZN7ee327013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327013fooEv,_ZTv0_n16_N7ee327013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327013fooEv,_ZThn8_N7ee327013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee327013fooEv,_ZTv0_n12_N7ee327013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee327013fooEv,_ZThn20_N7ee327013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32701[0]),
+ (VTBL_ENTRY)&_ZN7ee327013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327013fooEv,_ZTv0_n16_N7ee327013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327013fooEv,_ZTv0_n12_N7ee327013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd2701__7ee32701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd2701__7ee32701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd2701__7ee32701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2701__7ee32701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+static VTT_ENTRY vtt_ee32701[] = {
+ {&(_ZTV7ee32701[4]), 4,16},
+ {&(_ZTV7ee32701[10]), 10,16},
+ {&(_ZTV7ee32701[15]), 15,16},
+ {&(_tg__ZTV6dd2701__7ee32701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd2701__7ee32701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd2701__7ee32701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2701__7ee32701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32701[];
+extern VTBL_ENTRY _ZTV7ee32701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32701[];
+static VTBL_ENTRY alt_thunk_names642[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327013fooEv,_ZTv0_n12_N7ee327013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee327013fooEv,_ZThn20_N7ee327013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327013fooEv,_ZTv0_n16_N7ee327013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327013fooEv,_ZThn8_N7ee327013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32701 = { "ee32701", // class name
+ bases_ee32701, 4,
+ &(vtc_ee32701[0]), // expected_vtbl_contents
+ &(vtt_ee32701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names642,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42701 : dd2701 {
+ int e;
+ virtual void bar(); // _ZN7ee427013barEv
+ ~ee42701(); // tgen
+ ee42701(); // tgen
+};
+//SIG(1 ee42701) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42701 ::bar(){vfunc_called(this, "_ZN7ee427013barEv");}
+ee42701 ::~ee42701(){ note_dtor("ee42701", this);} // tgen
+ee42701 ::ee42701(){ note_ctor("ee42701", this);} // tgen
+
+static void Test_ee42701()
+{
+ extern Class_Descriptor cd_ee42701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42701, buf);
+ ee42701 *dp, &lv = *(dp=new (buf) ee42701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee42701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd2701*), ABISELECT(24,16), "ee42701");
+ check_base_class_offset(lv, (cc701*)(dd2701*), 0, "ee42701");
+ check_base_class_offset(lv, (dd2701*), 0, "ee42701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42701.e");
+ test_class_info(&lv, &cd_ee42701);
+ dp->~ee42701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42701(Test_ee42701, "ee42701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42701C1Ev();
+extern void _ZN7ee42701D1Ev();
+Name_Map name_map_ee42701[] = {
+ NSPAIR(_ZN7ee42701C1Ev),
+ NSPAIR(_ZN7ee42701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd2701;
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static Base_Class bases_ee42701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN7ee427013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN7ee427013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd2701__7ee42701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd2701__7ee42701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd2701__7ee42701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2701__7ee42701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+static VTT_ENTRY vtt_ee42701[] = {
+ {&(_ZTV7ee42701[3]), 3,9},
+ {&(_tg__ZTV6dd2701__7ee42701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd2701__7ee42701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd2701__7ee42701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2701__7ee42701[3]), 3,4},
+ {&(_ZTV7ee42701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42701[];
+extern VTBL_ENTRY _ZTV7ee42701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42701[];
+static VTBL_ENTRY alt_thunk_names643[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42701 = { "ee42701", // class name
+ bases_ee42701, 4,
+ &(vtc_ee42701[0]), // expected_vtbl_contents
+ &(vtt_ee42701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names643,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52701 : virtual dd2701 {
+ int e;
+ virtual void bar(); // _ZN7ee527013barEv
+ ~ee52701(); // tgen
+ ee52701(); // tgen
+};
+//SIG(1 ee52701) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52701 ::bar(){vfunc_called(this, "_ZN7ee527013barEv");}
+ee52701 ::~ee52701(){ note_dtor("ee52701", this);} // tgen
+ee52701 ::ee52701(){ note_ctor("ee52701", this);} // tgen
+
+static void Test_ee52701()
+{
+ extern Class_Descriptor cd_ee52701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52701, buf);
+ ee52701 *dp, &lv = *(dp=new (buf) ee52701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee52701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd2701*), ABISELECT(32,20), "ee52701");
+ check_base_class_offset(lv, (cc701*)(dd2701*), ABISELECT(16,8), "ee52701");
+ check_base_class_offset(lv, (dd2701*), ABISELECT(16,8), "ee52701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52701.e");
+ test_class_info(&lv, &cd_ee52701);
+ dp->~ee52701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52701(Test_ee52701, "ee52701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52701C1Ev();
+extern void _ZN7ee52701D1Ev();
+Name_Map name_map_ee52701[] = {
+ NSPAIR(_ZN7ee52701C1Ev),
+ NSPAIR(_ZN7ee52701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd2701;
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static Base_Class bases_ee52701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52701[];
+extern void _ZN7ee527013barEv();
+extern void _ZN6dd27013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527013barEv,_ZTv0_n20_N7ee527013barEv)();
+extern void ABISELECT(_ZThn16_N7ee527013barEv,_ZThn8_N7ee527013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52701[0]),
+ (VTBL_ENTRY)&_ZN7ee527013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527013barEv,_ZTv0_n20_N7ee527013barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd2701__7ee52701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd2701__7ee52701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd2701__7ee52701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2701__7ee52701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+static VTT_ENTRY vtt_ee52701[] = {
+ {&(_ZTV7ee52701[4]), 4,16},
+ {&(_ZTV7ee52701[10]), 10,16},
+ {&(_ZTV7ee52701[15]), 15,16},
+ {&(_tg__ZTV6dd2701__7ee52701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd2701__7ee52701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd2701__7ee52701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2701__7ee52701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52701[];
+extern VTBL_ENTRY _ZTV7ee52701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52701[];
+static VTBL_ENTRY alt_thunk_names644[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527013barEv,_ZTv0_n20_N7ee527013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527013barEv,_ZThn8_N7ee527013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52701 = { "ee52701", // class name
+ bases_ee52701, 4,
+ &(vtc_ee52701[0]), // expected_vtbl_contents
+ &(vtt_ee52701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names644,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62701 : dd2701 {
+ int e;
+ virtual void foo(); // _ZN7ee627013fooEv
+ virtual void bar(); // _ZN7ee627013barEv
+ ~ee62701(); // tgen
+ ee62701(); // tgen
+};
+//SIG(1 ee62701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62701 ::foo(){vfunc_called(this, "_ZN7ee627013fooEv");}
+void ee62701 ::bar(){vfunc_called(this, "_ZN7ee627013barEv");}
+ee62701 ::~ee62701(){ note_dtor("ee62701", this);} // tgen
+ee62701 ::ee62701(){ note_ctor("ee62701", this);} // tgen
+
+static void Test_ee62701()
+{
+ extern Class_Descriptor cd_ee62701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62701, buf);
+ ee62701 *dp, &lv = *(dp=new (buf) ee62701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee62701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd2701*), ABISELECT(24,16), "ee62701");
+ check_base_class_offset(lv, (cc701*)(dd2701*), 0, "ee62701");
+ check_base_class_offset(lv, (dd2701*), 0, "ee62701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62701.e");
+ test_class_info(&lv, &cd_ee62701);
+ dp->~ee62701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62701(Test_ee62701, "ee62701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62701C1Ev();
+extern void _ZN7ee62701D1Ev();
+Name_Map name_map_ee62701[] = {
+ NSPAIR(_ZN7ee62701C1Ev),
+ NSPAIR(_ZN7ee62701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd2701;
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static Base_Class bases_ee62701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62701[];
+extern void _ZN7ee627013fooEv();
+extern void _ZN7ee627013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee627013fooEv,_ZTv0_n12_N7ee627013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee627013fooEv,_ZThn16_N7ee627013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62701[0]),
+ (VTBL_ENTRY)&_ZN7ee627013fooEv,
+ (VTBL_ENTRY)&_ZN7ee627013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627013fooEv,_ZTv0_n12_N7ee627013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd2701__7ee62701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd2701__7ee62701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd2701__7ee62701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2701__7ee62701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+static VTT_ENTRY vtt_ee62701[] = {
+ {&(_ZTV7ee62701[3]), 3,9},
+ {&(_tg__ZTV6dd2701__7ee62701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd2701__7ee62701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd2701__7ee62701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2701__7ee62701[3]), 3,4},
+ {&(_ZTV7ee62701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62701[];
+extern VTBL_ENTRY _ZTV7ee62701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62701[];
+static VTBL_ENTRY alt_thunk_names645[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27013fooEv,_ZThn16_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627013fooEv,_ZTv0_n12_N7ee627013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627013fooEv,_ZThn16_N7ee627013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62701 = { "ee62701", // class name
+ bases_ee62701, 4,
+ &(vtc_ee62701[0]), // expected_vtbl_contents
+ &(vtt_ee62701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names645,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72701 : virtual dd2701 {
+ int e;
+ virtual void foo(); // _ZN7ee727013fooEv
+ virtual void bar(); // _ZN7ee727013barEv
+ ~ee72701(); // tgen
+ ee72701(); // tgen
+};
+//SIG(1 ee72701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72701 ::foo(){vfunc_called(this, "_ZN7ee727013fooEv");}
+void ee72701 ::bar(){vfunc_called(this, "_ZN7ee727013barEv");}
+ee72701 ::~ee72701(){ note_dtor("ee72701", this);} // tgen
+ee72701 ::ee72701(){ note_ctor("ee72701", this);} // tgen
+
+static void Test_ee72701()
+{
+ extern Class_Descriptor cd_ee72701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72701, buf);
+ ee72701 *dp, &lv = *(dp=new (buf) ee72701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee72701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd2701*), ABISELECT(32,20), "ee72701");
+ check_base_class_offset(lv, (cc701*)(dd2701*), ABISELECT(16,8), "ee72701");
+ check_base_class_offset(lv, (dd2701*), ABISELECT(16,8), "ee72701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72701.e");
+ test_class_info(&lv, &cd_ee72701);
+ dp->~ee72701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72701(Test_ee72701, "ee72701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72701C1Ev();
+extern void _ZN7ee72701D1Ev();
+Name_Map name_map_ee72701[] = {
+ NSPAIR(_ZN7ee72701C1Ev),
+ NSPAIR(_ZN7ee72701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd2701;
+extern VTBL_ENTRY _ZTI6dd2701[];
+extern VTBL_ENTRY _ZTV6dd2701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2701[];
+static Base_Class bases_ee72701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72701[];
+extern void _ZN7ee727013fooEv();
+extern void _ZN7ee727013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727013fooEv,_ZTv0_n16_N7ee727013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727013fooEv,_ZThn8_N7ee727013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727013barEv,_ZTv0_n20_N7ee727013barEv)();
+extern void ABISELECT(_ZThn16_N7ee727013barEv,_ZThn8_N7ee727013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727013fooEv,_ZTv0_n12_N7ee727013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee727013fooEv,_ZThn20_N7ee727013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72701[0]),
+ (VTBL_ENTRY)&_ZN7ee727013fooEv,
+ (VTBL_ENTRY)&_ZN7ee727013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727013fooEv,_ZTv0_n16_N7ee727013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727013barEv,_ZTv0_n20_N7ee727013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727013fooEv,_ZTv0_n12_N7ee727013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72701[];
+extern void _ZN6dd27013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV6dd2701__7ee72701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&_ZN6dd27013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd2701__7ee72701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd2701__7ee72701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd2701__7ee72701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv),
+};
+static VTT_ENTRY vtt_ee72701[] = {
+ {&(_ZTV7ee72701[4]), 4,17},
+ {&(_ZTV7ee72701[11]), 11,17},
+ {&(_ZTV7ee72701[16]), 16,17},
+ {&(_tg__ZTV6dd2701__7ee72701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd2701__7ee72701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd2701__7ee72701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd2701__7ee72701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72701[];
+extern VTBL_ENTRY _ZTV7ee72701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72701[];
+static VTBL_ENTRY alt_thunk_names646[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27013fooEv,_ZTv0_n12_N6dd27013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27013fooEv,_ZThn12_N6dd27013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727013fooEv,_ZTv0_n12_N7ee727013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727013fooEv,_ZThn20_N7ee727013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727013barEv,_ZTv0_n20_N7ee727013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727013barEv,_ZThn8_N7ee727013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727013fooEv,_ZTv0_n16_N7ee727013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727013fooEv,_ZThn8_N7ee727013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72701 = { "ee72701", // class name
+ bases_ee72701, 4,
+ &(vtc_ee72701[0]), // expected_vtbl_contents
+ &(vtt_ee72701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names646,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3701 : virtual cc701 {
+ int d;
+ virtual void foo(); // _ZN6dd37013fooEv
+ ~dd3701(); // tgen
+ dd3701(); // tgen
+};
+//SIG(-1 dd3701) C1{ VBC2{ VBC3{ BC4{ v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3701 ::foo(){vfunc_called(this, "_ZN6dd37013fooEv");}
+dd3701 ::~dd3701(){ note_dtor("dd3701", this);} // tgen
+dd3701 ::dd3701(){ note_ctor("dd3701", this);} // tgen
+
+static void Test_dd3701()
+{
+ extern Class_Descriptor cd_dd3701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3701, buf);
+ dd3701 *dp, &lv = *(dp=new (buf) dd3701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd3701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,16), "dd3701");
+ check_base_class_offset(lv, (cc701*), ABISELECT(16,8), "dd3701");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3701.d");
+ test_class_info(&lv, &cd_dd3701);
+ dp->~dd3701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3701(Test_dd3701, "dd3701", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3701C1Ev();
+extern void _ZN6dd3701D1Ev();
+Name_Map name_map_dd3701[] = {
+ NSPAIR(_ZN6dd3701C1Ev),
+ NSPAIR(_ZN6dd3701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static Base_Class bases_dd3701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 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 _ZTI6dd3701[];
+extern void _ZN6dd37013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__6dd3701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_dd3701[] = {
+ {&(_ZTV6dd3701[4]), 4,16},
+ {&(_ZTV6dd3701[10]), 10,16},
+ {&(_ZTV6dd3701[15]), 15,16},
+ {&(_tg__ZTV5cc701__6dd3701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__6dd3701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static VTBL_ENTRY alt_thunk_names647[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3701 = { "dd3701", // class name
+ bases_dd3701, 3,
+ &(vtc_dd3701[0]), // expected_vtbl_contents
+ &(vtt_dd3701[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3701),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names647,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03701 : dd3701 {
+ int e;
+ ~ee03701(); // tgen
+ ee03701(); // tgen
+};
+//SIG(1 ee03701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03701 ::~ee03701(){ note_dtor("ee03701", this);} // tgen
+ee03701 ::ee03701(){ note_ctor("ee03701", this);} // tgen
+
+static void Test_ee03701()
+{
+ extern Class_Descriptor cd_ee03701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03701, buf);
+ ee03701 *dp, &lv = *(dp=new (buf) ee03701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee03701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee03701");
+ check_base_class_offset(lv, (cc701*)(dd3701*), ABISELECT(16,12), "ee03701");
+ check_base_class_offset(lv, (dd3701*), 0, "ee03701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03701.e");
+ test_class_info(&lv, &cd_ee03701);
+ dp->~ee03701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03701(Test_ee03701, "ee03701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03701C1Ev();
+extern void _ZN7ee03701D1Ev();
+Name_Map name_map_ee03701[] = {
+ NSPAIR(_ZN7ee03701C1Ev),
+ NSPAIR(_ZN7ee03701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd3701;
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static Base_Class bases_ee03701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03701[];
+extern void _ZN6dd37013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03701[];
+extern void _ZN6dd37013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3701__7ee03701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701__7ee03701[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3701__7ee03701[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee03701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee03701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee03701[] = {
+ {&(_ZTV7ee03701[4]), 4,16},
+ {&(_tg__ZTV6dd3701__7ee03701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd3701__7ee03701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd3701__7ee03701[3]), 3,4},
+ {&(_ZTV7ee03701[10]), 10,16},
+ {&(_ZTV7ee03701[15]), 15,16},
+ {&(_tg__ZTV5cc701__7ee03701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee03701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03701[];
+extern VTBL_ENTRY _ZTV7ee03701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03701[];
+static VTBL_ENTRY alt_thunk_names648[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03701 = { "ee03701", // class name
+ bases_ee03701, 4,
+ &(vtc_ee03701[0]), // expected_vtbl_contents
+ &(vtt_ee03701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names648,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13701 : virtual dd3701 {
+ int e;
+ ~ee13701(); // tgen
+ ee13701(); // tgen
+};
+//SIG(1 ee13701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13701 ::~ee13701(){ note_dtor("ee13701", this);} // tgen
+ee13701 ::ee13701(){ note_ctor("ee13701", this);} // tgen
+
+static void Test_ee13701()
+{
+ extern Class_Descriptor cd_ee13701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13701, buf);
+ ee13701 *dp, &lv = *(dp=new (buf) ee13701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee13701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee13701");
+ check_base_class_offset(lv, (cc701*)(dd3701*), ABISELECT(32,16), "ee13701");
+ check_base_class_offset(lv, (dd3701*), ABISELECT(16,8), "ee13701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13701.e");
+ test_class_info(&lv, &cd_ee13701);
+ dp->~ee13701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13701(Test_ee13701, "ee13701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13701C1Ev();
+extern void _ZN7ee13701D1Ev();
+Name_Map name_map_ee13701[] = {
+ NSPAIR(_ZN7ee13701C1Ev),
+ NSPAIR(_ZN7ee13701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd3701;
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static Base_Class bases_ee13701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13701[];
+extern void _ZN6dd37013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13701[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13701[];
+extern void _ZN6dd37013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3701__7ee13701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701__7ee13701[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3701__7ee13701[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee13701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee13701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee13701[] = {
+ {&(_ZTV7ee13701[5]), 5,22},
+ {&(_ZTV7ee13701[10]), 10,22},
+ {&(_ZTV7ee13701[16]), 16,22},
+ {&(_ZTV7ee13701[21]), 21,22},
+ {&(_tg__ZTV6dd3701__7ee13701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd3701__7ee13701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd3701__7ee13701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee13701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee13701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13701[];
+extern VTBL_ENTRY _ZTV7ee13701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13701[];
+static VTBL_ENTRY alt_thunk_names649[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13701 = { "ee13701", // class name
+ bases_ee13701, 4,
+ &(vtc_ee13701[0]), // expected_vtbl_contents
+ &(vtt_ee13701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13701),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names649,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23701 : dd3701 {
+ int e;
+ virtual void foo(); // _ZN7ee237013fooEv
+ ~ee23701(); // tgen
+ ee23701(); // tgen
+};
+//SIG(1 ee23701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23701 ::foo(){vfunc_called(this, "_ZN7ee237013fooEv");}
+ee23701 ::~ee23701(){ note_dtor("ee23701", this);} // tgen
+ee23701 ::ee23701(){ note_ctor("ee23701", this);} // tgen
+
+static void Test_ee23701()
+{
+ extern Class_Descriptor cd_ee23701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23701, buf);
+ ee23701 *dp, &lv = *(dp=new (buf) ee23701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee23701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee23701");
+ check_base_class_offset(lv, (cc701*)(dd3701*), ABISELECT(16,12), "ee23701");
+ check_base_class_offset(lv, (dd3701*), 0, "ee23701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23701.e");
+ test_class_info(&lv, &cd_ee23701);
+ dp->~ee23701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23701(Test_ee23701, "ee23701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23701C1Ev();
+extern void _ZN7ee23701D1Ev();
+Name_Map name_map_ee23701[] = {
+ NSPAIR(_ZN7ee23701C1Ev),
+ NSPAIR(_ZN7ee23701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd3701;
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static Base_Class bases_ee23701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23701[];
+extern void _ZN7ee237013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237013fooEv,_ZTv0_n16_N7ee237013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237013fooEv,_ZThn12_N7ee237013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee237013fooEv,_ZTv0_n12_N7ee237013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee237013fooEv,_ZThn20_N7ee237013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23701[0]),
+ (VTBL_ENTRY)&_ZN7ee237013fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237013fooEv,_ZTv0_n16_N7ee237013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237013fooEv,_ZTv0_n12_N7ee237013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23701[];
+extern void _ZN6dd37013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3701__7ee23701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701__7ee23701[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3701__7ee23701[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee23701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee23701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee23701[] = {
+ {&(_ZTV7ee23701[4]), 4,16},
+ {&(_tg__ZTV6dd3701__7ee23701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd3701__7ee23701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd3701__7ee23701[3]), 3,4},
+ {&(_ZTV7ee23701[10]), 10,16},
+ {&(_ZTV7ee23701[15]), 15,16},
+ {&(_tg__ZTV5cc701__7ee23701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee23701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23701[];
+extern VTBL_ENTRY _ZTV7ee23701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23701[];
+static VTBL_ENTRY alt_thunk_names650[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237013fooEv,_ZTv0_n12_N7ee237013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee237013fooEv,_ZThn20_N7ee237013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237013fooEv,_ZTv0_n16_N7ee237013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237013fooEv,_ZThn12_N7ee237013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23701 = { "ee23701", // class name
+ bases_ee23701, 4,
+ &(vtc_ee23701[0]), // expected_vtbl_contents
+ &(vtt_ee23701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names650,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33701 : virtual dd3701 {
+ int e;
+ virtual void foo(); // _ZN7ee337013fooEv
+ ~ee33701(); // tgen
+ ee33701(); // tgen
+};
+//SIG(1 ee33701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33701 ::foo(){vfunc_called(this, "_ZN7ee337013fooEv");}
+ee33701 ::~ee33701(){ note_dtor("ee33701", this);} // tgen
+ee33701 ::ee33701(){ note_ctor("ee33701", this);} // tgen
+
+static void Test_ee33701()
+{
+ extern Class_Descriptor cd_ee33701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33701, buf);
+ ee33701 *dp, &lv = *(dp=new (buf) ee33701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee33701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee33701");
+ check_base_class_offset(lv, (cc701*)(dd3701*), ABISELECT(32,16), "ee33701");
+ check_base_class_offset(lv, (dd3701*), ABISELECT(16,8), "ee33701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33701.e");
+ test_class_info(&lv, &cd_ee33701);
+ dp->~ee33701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33701(Test_ee33701, "ee33701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33701C1Ev();
+extern void _ZN7ee33701D1Ev();
+Name_Map name_map_ee33701[] = {
+ NSPAIR(_ZN7ee33701C1Ev),
+ NSPAIR(_ZN7ee33701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd3701;
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static Base_Class bases_ee33701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33701[];
+extern void _ZN7ee337013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337013fooEv,_ZTv0_n20_N7ee337013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337013fooEv,_ZThn8_N7ee337013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337013fooEv,_ZTv0_n16_N7ee337013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337013fooEv,_ZThn16_N7ee337013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee337013fooEv,_ZTv0_n12_N7ee337013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee337013fooEv,_ZThn24_N7ee337013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33701[0]),
+ (VTBL_ENTRY)&_ZN7ee337013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337013fooEv,_ZTv0_n20_N7ee337013fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337013fooEv,_ZTv0_n16_N7ee337013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337013fooEv,_ZTv0_n12_N7ee337013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33701[];
+extern void _ZN6dd37013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3701__7ee33701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701__7ee33701[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3701__7ee33701[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee33701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee33701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee33701[] = {
+ {&(_ZTV7ee33701[5]), 5,23},
+ {&(_ZTV7ee33701[11]), 11,23},
+ {&(_ZTV7ee33701[17]), 17,23},
+ {&(_ZTV7ee33701[22]), 22,23},
+ {&(_tg__ZTV6dd3701__7ee33701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd3701__7ee33701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd3701__7ee33701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee33701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee33701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33701[];
+extern VTBL_ENTRY _ZTV7ee33701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33701[];
+static VTBL_ENTRY alt_thunk_names651[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337013fooEv,_ZTv0_n12_N7ee337013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee337013fooEv,_ZThn24_N7ee337013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337013fooEv,_ZTv0_n16_N7ee337013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337013fooEv,_ZThn16_N7ee337013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337013fooEv,_ZTv0_n20_N7ee337013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337013fooEv,_ZThn8_N7ee337013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33701 = { "ee33701", // class name
+ bases_ee33701, 4,
+ &(vtc_ee33701[0]), // expected_vtbl_contents
+ &(vtt_ee33701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33701),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names651,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43701 : dd3701 {
+ int e;
+ virtual void bar(); // _ZN7ee437013barEv
+ ~ee43701(); // tgen
+ ee43701(); // tgen
+};
+//SIG(1 ee43701) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43701 ::bar(){vfunc_called(this, "_ZN7ee437013barEv");}
+ee43701 ::~ee43701(){ note_dtor("ee43701", this);} // tgen
+ee43701 ::ee43701(){ note_ctor("ee43701", this);} // tgen
+
+static void Test_ee43701()
+{
+ extern Class_Descriptor cd_ee43701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43701, buf);
+ ee43701 *dp, &lv = *(dp=new (buf) ee43701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee43701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee43701");
+ check_base_class_offset(lv, (cc701*)(dd3701*), ABISELECT(16,12), "ee43701");
+ check_base_class_offset(lv, (dd3701*), 0, "ee43701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43701.e");
+ test_class_info(&lv, &cd_ee43701);
+ dp->~ee43701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43701(Test_ee43701, "ee43701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43701C1Ev();
+extern void _ZN7ee43701D1Ev();
+Name_Map name_map_ee43701[] = {
+ NSPAIR(_ZN7ee43701C1Ev),
+ NSPAIR(_ZN7ee43701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd3701;
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static Base_Class bases_ee43701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43701[];
+extern void _ZN6dd37013fooEv();
+extern void _ZN7ee437013barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437013barEv,_ZTv0_n20_N7ee437013barEv)();
+extern void ABISELECT(_ZThn16_N7ee437013barEv,_ZThn12_N7ee437013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+ (VTBL_ENTRY)&_ZN7ee437013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437013barEv,_ZTv0_n20_N7ee437013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43701[];
+extern void _ZN6dd37013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3701__7ee43701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701__7ee43701[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3701__7ee43701[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee43701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee43701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee43701[] = {
+ {&(_ZTV7ee43701[4]), 4,17},
+ {&(_tg__ZTV6dd3701__7ee43701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd3701__7ee43701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd3701__7ee43701[3]), 3,4},
+ {&(_ZTV7ee43701[11]), 11,17},
+ {&(_ZTV7ee43701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee43701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee43701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43701[];
+extern VTBL_ENTRY _ZTV7ee43701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43701[];
+static VTBL_ENTRY alt_thunk_names652[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437013barEv,_ZTv0_n20_N7ee437013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437013barEv,_ZThn12_N7ee437013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43701 = { "ee43701", // class name
+ bases_ee43701, 4,
+ &(vtc_ee43701[0]), // expected_vtbl_contents
+ &(vtt_ee43701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names652,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53701 : virtual dd3701 {
+ int e;
+ virtual void bar(); // _ZN7ee537013barEv
+ ~ee53701(); // tgen
+ ee53701(); // tgen
+};
+//SIG(1 ee53701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53701 ::bar(){vfunc_called(this, "_ZN7ee537013barEv");}
+ee53701 ::~ee53701(){ note_dtor("ee53701", this);} // tgen
+ee53701 ::ee53701(){ note_ctor("ee53701", this);} // tgen
+
+static void Test_ee53701()
+{
+ extern Class_Descriptor cd_ee53701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53701, buf);
+ ee53701 *dp, &lv = *(dp=new (buf) ee53701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee53701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee53701");
+ check_base_class_offset(lv, (cc701*)(dd3701*), ABISELECT(32,16), "ee53701");
+ check_base_class_offset(lv, (dd3701*), ABISELECT(16,8), "ee53701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53701.e");
+ test_class_info(&lv, &cd_ee53701);
+ dp->~ee53701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53701(Test_ee53701, "ee53701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53701C1Ev();
+extern void _ZN7ee53701D1Ev();
+Name_Map name_map_ee53701[] = {
+ NSPAIR(_ZN7ee53701C1Ev),
+ NSPAIR(_ZN7ee53701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd3701;
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static Base_Class bases_ee53701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53701[];
+extern void _ZN7ee537013barEv();
+extern void _ZN6dd37013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537013barEv,_ZTv0_n20_N7ee537013barEv)();
+extern void ABISELECT(_ZThn32_N7ee537013barEv,_ZThn16_N7ee537013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53701[0]),
+ (VTBL_ENTRY)&_ZN7ee537013barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537013barEv,_ZTv0_n20_N7ee537013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53701[];
+extern void _ZN6dd37013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3701__7ee53701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701__7ee53701[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3701__7ee53701[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee53701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee53701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee53701[] = {
+ {&(_ZTV7ee53701[5]), 5,23},
+ {&(_ZTV7ee53701[11]), 11,23},
+ {&(_ZTV7ee53701[17]), 17,23},
+ {&(_ZTV7ee53701[22]), 22,23},
+ {&(_tg__ZTV6dd3701__7ee53701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd3701__7ee53701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd3701__7ee53701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee53701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee53701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53701[];
+extern VTBL_ENTRY _ZTV7ee53701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53701[];
+static VTBL_ENTRY alt_thunk_names653[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537013barEv,_ZTv0_n20_N7ee537013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537013barEv,_ZThn16_N7ee537013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53701 = { "ee53701", // class name
+ bases_ee53701, 4,
+ &(vtc_ee53701[0]), // expected_vtbl_contents
+ &(vtt_ee53701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53701),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names653,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63701 : dd3701 {
+ int e;
+ virtual void foo(); // _ZN7ee637013fooEv
+ virtual void bar(); // _ZN7ee637013barEv
+ ~ee63701(); // tgen
+ ee63701(); // tgen
+};
+//SIG(1 ee63701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63701 ::foo(){vfunc_called(this, "_ZN7ee637013fooEv");}
+void ee63701 ::bar(){vfunc_called(this, "_ZN7ee637013barEv");}
+ee63701 ::~ee63701(){ note_dtor("ee63701", this);} // tgen
+ee63701 ::ee63701(){ note_ctor("ee63701", this);} // tgen
+
+static void Test_ee63701()
+{
+ extern Class_Descriptor cd_ee63701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63701, buf);
+ ee63701 *dp, &lv = *(dp=new (buf) ee63701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee63701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee63701");
+ check_base_class_offset(lv, (cc701*)(dd3701*), ABISELECT(16,12), "ee63701");
+ check_base_class_offset(lv, (dd3701*), 0, "ee63701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63701.e");
+ test_class_info(&lv, &cd_ee63701);
+ dp->~ee63701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63701(Test_ee63701, "ee63701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63701C1Ev();
+extern void _ZN7ee63701D1Ev();
+Name_Map name_map_ee63701[] = {
+ NSPAIR(_ZN7ee63701C1Ev),
+ NSPAIR(_ZN7ee63701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd3701;
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static Base_Class bases_ee63701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63701[];
+extern void _ZN7ee637013fooEv();
+extern void _ZN7ee637013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637013fooEv,_ZTv0_n16_N7ee637013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637013fooEv,_ZThn12_N7ee637013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637013barEv,_ZTv0_n20_N7ee637013barEv)();
+extern void ABISELECT(_ZThn16_N7ee637013barEv,_ZThn12_N7ee637013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637013fooEv,_ZTv0_n12_N7ee637013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee637013fooEv,_ZThn20_N7ee637013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63701[0]),
+ (VTBL_ENTRY)&_ZN7ee637013fooEv,
+ (VTBL_ENTRY)&_ZN7ee637013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637013fooEv,_ZTv0_n16_N7ee637013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637013barEv,_ZTv0_n20_N7ee637013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637013fooEv,_ZTv0_n12_N7ee637013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63701[];
+extern void _ZN6dd37013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3701__7ee63701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701__7ee63701[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3701__7ee63701[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee63701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee63701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee63701[] = {
+ {&(_ZTV7ee63701[4]), 4,17},
+ {&(_tg__ZTV6dd3701__7ee63701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd3701__7ee63701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd3701__7ee63701[3]), 3,4},
+ {&(_ZTV7ee63701[11]), 11,17},
+ {&(_ZTV7ee63701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee63701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee63701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63701[];
+extern VTBL_ENTRY _ZTV7ee63701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63701[];
+static VTBL_ENTRY alt_thunk_names654[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn20_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn12_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637013fooEv,_ZTv0_n12_N7ee637013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637013fooEv,_ZThn20_N7ee637013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637013barEv,_ZTv0_n20_N7ee637013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637013barEv,_ZThn12_N7ee637013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637013fooEv,_ZTv0_n16_N7ee637013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637013fooEv,_ZThn12_N7ee637013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63701 = { "ee63701", // class name
+ bases_ee63701, 4,
+ &(vtc_ee63701[0]), // expected_vtbl_contents
+ &(vtt_ee63701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names654,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73701 : virtual dd3701 {
+ int e;
+ virtual void foo(); // _ZN7ee737013fooEv
+ virtual void bar(); // _ZN7ee737013barEv
+ ~ee73701(); // tgen
+ ee73701(); // tgen
+};
+//SIG(1 ee73701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73701 ::foo(){vfunc_called(this, "_ZN7ee737013fooEv");}
+void ee73701 ::bar(){vfunc_called(this, "_ZN7ee737013barEv");}
+ee73701 ::~ee73701(){ note_dtor("ee73701", this);} // tgen
+ee73701 ::ee73701(){ note_ctor("ee73701", this);} // tgen
+
+static void Test_ee73701()
+{
+ extern Class_Descriptor cd_ee73701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73701, buf);
+ ee73701 *dp, &lv = *(dp=new (buf) ee73701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee73701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee73701");
+ check_base_class_offset(lv, (cc701*)(dd3701*), ABISELECT(32,16), "ee73701");
+ check_base_class_offset(lv, (dd3701*), ABISELECT(16,8), "ee73701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73701.e");
+ test_class_info(&lv, &cd_ee73701);
+ dp->~ee73701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73701(Test_ee73701, "ee73701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73701C1Ev();
+extern void _ZN7ee73701D1Ev();
+Name_Map name_map_ee73701[] = {
+ NSPAIR(_ZN7ee73701C1Ev),
+ NSPAIR(_ZN7ee73701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd3701;
+extern VTBL_ENTRY _ZTI6dd3701[];
+extern VTBL_ENTRY _ZTV6dd3701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3701[];
+static Base_Class bases_ee73701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3701, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73701[];
+extern void _ZN7ee737013fooEv();
+extern void _ZN7ee737013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737013fooEv,_ZTv0_n20_N7ee737013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737013fooEv,_ZThn8_N7ee737013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737013fooEv,_ZTv0_n16_N7ee737013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737013fooEv,_ZThn16_N7ee737013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737013barEv,_ZTv0_n20_N7ee737013barEv)();
+extern void ABISELECT(_ZThn32_N7ee737013barEv,_ZThn16_N7ee737013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737013fooEv,_ZTv0_n12_N7ee737013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee737013fooEv,_ZThn24_N7ee737013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73701[0]),
+ (VTBL_ENTRY)&_ZN7ee737013fooEv,
+ (VTBL_ENTRY)&_ZN7ee737013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737013fooEv,_ZTv0_n20_N7ee737013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737013fooEv,_ZTv0_n16_N7ee737013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737013barEv,_ZTv0_n20_N7ee737013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737013fooEv,_ZTv0_n12_N7ee737013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73701[];
+extern void _ZN6dd37013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3701__7ee73701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&_ZN6dd37013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv)() __attribute__((weak));
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd3701__7ee73701[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv),
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd3701__7ee73701[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee73701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee73701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee73701[] = {
+ {&(_ZTV7ee73701[5]), 5,24},
+ {&(_ZTV7ee73701[12]), 12,24},
+ {&(_ZTV7ee73701[18]), 18,24},
+ {&(_ZTV7ee73701[23]), 23,24},
+ {&(_tg__ZTV6dd3701__7ee73701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd3701__7ee73701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd3701__7ee73701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee73701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee73701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73701[];
+extern VTBL_ENTRY _ZTV7ee73701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73701[];
+static VTBL_ENTRY alt_thunk_names655[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37013fooEv,_ZTv0_n12_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37013fooEv,_ZThn16_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37013fooEv,_ZTv0_n16_N6dd37013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37013fooEv,_ZThn8_N6dd37013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737013fooEv,_ZTv0_n12_N7ee737013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737013fooEv,_ZThn24_N7ee737013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737013barEv,_ZTv0_n20_N7ee737013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737013barEv,_ZThn16_N7ee737013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737013fooEv,_ZTv0_n16_N7ee737013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737013fooEv,_ZThn16_N7ee737013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737013fooEv,_ZTv0_n20_N7ee737013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737013fooEv,_ZThn8_N7ee737013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73701 = { "ee73701", // class name
+ bases_ee73701, 4,
+ &(vtc_ee73701[0]), // expected_vtbl_contents
+ &(vtt_ee73701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73701),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names655,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4701 : cc701 {
+ int d;
+ virtual void bar(); // _ZN6dd47013barEv
+ ~dd4701(); // tgen
+ dd4701(); // tgen
+};
+//SIG(-1 dd4701) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4701 ::bar(){vfunc_called(this, "_ZN6dd47013barEv");}
+dd4701 ::~dd4701(){ note_dtor("dd4701", this);} // tgen
+dd4701 ::dd4701(){ note_ctor("dd4701", this);} // tgen
+
+static void Test_dd4701()
+{
+ extern Class_Descriptor cd_dd4701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4701, buf);
+ dd4701 *dp, &lv = *(dp=new (buf) dd4701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd4701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(16,12), "dd4701");
+ check_base_class_offset(lv, (cc701*), 0, "dd4701");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4701.d");
+ test_class_info(&lv, &cd_dd4701);
+ dp->~dd4701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4701(Test_dd4701, "dd4701", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4701C1Ev();
+extern void _ZN6dd4701D1Ev();
+Name_Map name_map_dd4701[] = {
+ NSPAIR(_ZN6dd4701C1Ev),
+ NSPAIR(_ZN6dd4701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static Base_Class bases_dd4701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd4701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__6dd4701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_dd4701[] = {
+ {&(_ZTV6dd4701[3]), 3,9},
+ {&(_tg__ZTV5cc701__6dd4701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__6dd4701[3]), 3,4},
+ {&(_ZTV6dd4701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static VTBL_ENTRY alt_thunk_names656[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4701 = { "dd4701", // class name
+ bases_dd4701, 3,
+ &(vtc_dd4701[0]), // expected_vtbl_contents
+ &(vtt_dd4701[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4701),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names656,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04701 : dd4701 {
+ int e;
+ ~ee04701(); // tgen
+ ee04701(); // tgen
+};
+//SIG(1 ee04701) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04701 ::~ee04701(){ note_dtor("ee04701", this);} // tgen
+ee04701 ::ee04701(){ note_ctor("ee04701", this);} // tgen
+
+static void Test_ee04701()
+{
+ extern Class_Descriptor cd_ee04701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04701, buf);
+ ee04701 *dp, &lv = *(dp=new (buf) ee04701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee04701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd4701*), ABISELECT(24,16), "ee04701");
+ check_base_class_offset(lv, (cc701*)(dd4701*), 0, "ee04701");
+ check_base_class_offset(lv, (dd4701*), 0, "ee04701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04701.e");
+ test_class_info(&lv, &cd_ee04701);
+ dp->~ee04701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04701(Test_ee04701, "ee04701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04701C1Ev();
+extern void _ZN7ee04701D1Ev();
+Name_Map name_map_ee04701[] = {
+ NSPAIR(_ZN7ee04701C1Ev),
+ NSPAIR(_ZN7ee04701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd4701;
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static Base_Class bases_ee04701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4701__7ee04701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd4701__7ee04701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd4701__7ee04701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4701__7ee04701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee04701[] = {
+ {&(_ZTV7ee04701[3]), 3,9},
+ {&(_tg__ZTV6dd4701__7ee04701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd4701__7ee04701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd4701__7ee04701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4701__7ee04701[3]), 3,4},
+ {&(_ZTV7ee04701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee04701[];
+extern VTBL_ENTRY _ZTV7ee04701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04701[];
+static VTBL_ENTRY alt_thunk_names657[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04701 = { "ee04701", // class name
+ bases_ee04701, 4,
+ &(vtc_ee04701[0]), // expected_vtbl_contents
+ &(vtt_ee04701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names657,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14701 : virtual dd4701 {
+ int e;
+ ~ee14701(); // tgen
+ ee14701(); // tgen
+};
+//SIG(1 ee14701) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14701 ::~ee14701(){ note_dtor("ee14701", this);} // tgen
+ee14701 ::ee14701(){ note_ctor("ee14701", this);} // tgen
+
+static void Test_ee14701()
+{
+ extern Class_Descriptor cd_ee14701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14701, buf);
+ ee14701 *dp, &lv = *(dp=new (buf) ee14701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee14701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd4701*), ABISELECT(32,20), "ee14701");
+ check_base_class_offset(lv, (cc701*)(dd4701*), ABISELECT(16,8), "ee14701");
+ check_base_class_offset(lv, (dd4701*), ABISELECT(16,8), "ee14701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14701.e");
+ test_class_info(&lv, &cd_ee14701);
+ dp->~ee14701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14701(Test_ee14701, "ee14701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14701C1Ev();
+extern void _ZN7ee14701D1Ev();
+Name_Map name_map_ee14701[] = {
+ NSPAIR(_ZN7ee14701C1Ev),
+ NSPAIR(_ZN7ee14701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd4701;
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static Base_Class bases_ee14701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4701, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14701[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4701__7ee14701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd4701__7ee14701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd4701__7ee14701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4701__7ee14701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee14701[] = {
+ {&(_ZTV7ee14701[4]), 4,15},
+ {&(_ZTV7ee14701[9]), 9,15},
+ {&(_ZTV7ee14701[14]), 14,15},
+ {&(_tg__ZTV6dd4701__7ee14701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd4701__7ee14701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd4701__7ee14701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4701__7ee14701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14701[];
+extern VTBL_ENTRY _ZTV7ee14701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14701[];
+static VTBL_ENTRY alt_thunk_names658[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14701 = { "ee14701", // class name
+ bases_ee14701, 4,
+ &(vtc_ee14701[0]), // expected_vtbl_contents
+ &(vtt_ee14701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14701),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names658,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24701 : dd4701 {
+ int e;
+ virtual void foo(); // _ZN7ee247013fooEv
+ ~ee24701(); // tgen
+ ee24701(); // tgen
+};
+//SIG(1 ee24701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24701 ::foo(){vfunc_called(this, "_ZN7ee247013fooEv");}
+ee24701 ::~ee24701(){ note_dtor("ee24701", this);} // tgen
+ee24701 ::ee24701(){ note_ctor("ee24701", this);} // tgen
+
+static void Test_ee24701()
+{
+ extern Class_Descriptor cd_ee24701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24701, buf);
+ ee24701 *dp, &lv = *(dp=new (buf) ee24701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee24701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd4701*), ABISELECT(24,16), "ee24701");
+ check_base_class_offset(lv, (cc701*)(dd4701*), 0, "ee24701");
+ check_base_class_offset(lv, (dd4701*), 0, "ee24701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24701.e");
+ test_class_info(&lv, &cd_ee24701);
+ dp->~ee24701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24701(Test_ee24701, "ee24701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24701C1Ev();
+extern void _ZN7ee24701D1Ev();
+Name_Map name_map_ee24701[] = {
+ NSPAIR(_ZN7ee24701C1Ev),
+ NSPAIR(_ZN7ee24701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd4701;
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static Base_Class bases_ee24701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24701[];
+extern void _ZN7ee247013fooEv();
+extern void _ZN6dd47013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee247013fooEv,_ZTv0_n12_N7ee247013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee247013fooEv,_ZThn16_N7ee247013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24701[0]),
+ (VTBL_ENTRY)&_ZN7ee247013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247013fooEv,_ZTv0_n12_N7ee247013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4701__7ee24701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd4701__7ee24701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd4701__7ee24701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4701__7ee24701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee24701[] = {
+ {&(_ZTV7ee24701[3]), 3,9},
+ {&(_tg__ZTV6dd4701__7ee24701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd4701__7ee24701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd4701__7ee24701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4701__7ee24701[3]), 3,4},
+ {&(_ZTV7ee24701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24701[];
+extern VTBL_ENTRY _ZTV7ee24701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24701[];
+static VTBL_ENTRY alt_thunk_names659[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247013fooEv,_ZTv0_n12_N7ee247013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee247013fooEv,_ZThn16_N7ee247013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24701 = { "ee24701", // class name
+ bases_ee24701, 4,
+ &(vtc_ee24701[0]), // expected_vtbl_contents
+ &(vtt_ee24701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names659,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34701 : virtual dd4701 {
+ int e;
+ virtual void foo(); // _ZN7ee347013fooEv
+ ~ee34701(); // tgen
+ ee34701(); // tgen
+};
+//SIG(1 ee34701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34701 ::foo(){vfunc_called(this, "_ZN7ee347013fooEv");}
+ee34701 ::~ee34701(){ note_dtor("ee34701", this);} // tgen
+ee34701 ::ee34701(){ note_ctor("ee34701", this);} // tgen
+
+static void Test_ee34701()
+{
+ extern Class_Descriptor cd_ee34701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34701, buf);
+ ee34701 *dp, &lv = *(dp=new (buf) ee34701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee34701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd4701*), ABISELECT(32,20), "ee34701");
+ check_base_class_offset(lv, (cc701*)(dd4701*), ABISELECT(16,8), "ee34701");
+ check_base_class_offset(lv, (dd4701*), ABISELECT(16,8), "ee34701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34701.e");
+ test_class_info(&lv, &cd_ee34701);
+ dp->~ee34701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34701(Test_ee34701, "ee34701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34701C1Ev();
+extern void _ZN7ee34701D1Ev();
+Name_Map name_map_ee34701[] = {
+ NSPAIR(_ZN7ee34701C1Ev),
+ NSPAIR(_ZN7ee34701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd4701;
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static Base_Class bases_ee34701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34701[];
+extern void _ZN7ee347013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347013fooEv,_ZTv0_n16_N7ee347013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347013fooEv,_ZThn8_N7ee347013fooEv)() __attribute__((weak));
+extern void _ZN6dd47013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee347013fooEv,_ZTv0_n12_N7ee347013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee347013fooEv,_ZThn20_N7ee347013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34701[0]),
+ (VTBL_ENTRY)&_ZN7ee347013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347013fooEv,_ZTv0_n16_N7ee347013fooEv),
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347013fooEv,_ZTv0_n12_N7ee347013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4701__7ee34701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd4701__7ee34701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd4701__7ee34701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4701__7ee34701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee34701[] = {
+ {&(_ZTV7ee34701[4]), 4,16},
+ {&(_ZTV7ee34701[10]), 10,16},
+ {&(_ZTV7ee34701[15]), 15,16},
+ {&(_tg__ZTV6dd4701__7ee34701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd4701__7ee34701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd4701__7ee34701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4701__7ee34701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34701[];
+extern VTBL_ENTRY _ZTV7ee34701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34701[];
+static VTBL_ENTRY alt_thunk_names660[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347013fooEv,_ZTv0_n12_N7ee347013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee347013fooEv,_ZThn20_N7ee347013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347013fooEv,_ZTv0_n16_N7ee347013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347013fooEv,_ZThn8_N7ee347013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34701 = { "ee34701", // class name
+ bases_ee34701, 4,
+ &(vtc_ee34701[0]), // expected_vtbl_contents
+ &(vtt_ee34701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names660,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44701 : dd4701 {
+ int e;
+ virtual void bar(); // _ZN7ee447013barEv
+ ~ee44701(); // tgen
+ ee44701(); // tgen
+};
+//SIG(1 ee44701) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44701 ::bar(){vfunc_called(this, "_ZN7ee447013barEv");}
+ee44701 ::~ee44701(){ note_dtor("ee44701", this);} // tgen
+ee44701 ::ee44701(){ note_ctor("ee44701", this);} // tgen
+
+static void Test_ee44701()
+{
+ extern Class_Descriptor cd_ee44701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44701, buf);
+ ee44701 *dp, &lv = *(dp=new (buf) ee44701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee44701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd4701*), ABISELECT(24,16), "ee44701");
+ check_base_class_offset(lv, (cc701*)(dd4701*), 0, "ee44701");
+ check_base_class_offset(lv, (dd4701*), 0, "ee44701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44701.e");
+ test_class_info(&lv, &cd_ee44701);
+ dp->~ee44701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44701(Test_ee44701, "ee44701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44701C1Ev();
+extern void _ZN7ee44701D1Ev();
+Name_Map name_map_ee44701[] = {
+ NSPAIR(_ZN7ee44701C1Ev),
+ NSPAIR(_ZN7ee44701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd4701;
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static Base_Class bases_ee44701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN7ee447013barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN7ee447013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4701__7ee44701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd4701__7ee44701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd4701__7ee44701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4701__7ee44701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee44701[] = {
+ {&(_ZTV7ee44701[3]), 3,9},
+ {&(_tg__ZTV6dd4701__7ee44701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd4701__7ee44701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd4701__7ee44701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4701__7ee44701[3]), 3,4},
+ {&(_ZTV7ee44701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee44701[];
+extern VTBL_ENTRY _ZTV7ee44701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44701[];
+static VTBL_ENTRY alt_thunk_names661[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44701 = { "ee44701", // class name
+ bases_ee44701, 4,
+ &(vtc_ee44701[0]), // expected_vtbl_contents
+ &(vtt_ee44701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names661,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54701 : virtual dd4701 {
+ int e;
+ virtual void bar(); // _ZN7ee547013barEv
+ ~ee54701(); // tgen
+ ee54701(); // tgen
+};
+//SIG(1 ee54701) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54701 ::bar(){vfunc_called(this, "_ZN7ee547013barEv");}
+ee54701 ::~ee54701(){ note_dtor("ee54701", this);} // tgen
+ee54701 ::ee54701(){ note_ctor("ee54701", this);} // tgen
+
+static void Test_ee54701()
+{
+ extern Class_Descriptor cd_ee54701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54701, buf);
+ ee54701 *dp, &lv = *(dp=new (buf) ee54701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee54701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd4701*), ABISELECT(32,20), "ee54701");
+ check_base_class_offset(lv, (cc701*)(dd4701*), ABISELECT(16,8), "ee54701");
+ check_base_class_offset(lv, (dd4701*), ABISELECT(16,8), "ee54701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54701.e");
+ test_class_info(&lv, &cd_ee54701);
+ dp->~ee54701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54701(Test_ee54701, "ee54701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54701C1Ev();
+extern void _ZN7ee54701D1Ev();
+Name_Map name_map_ee54701[] = {
+ NSPAIR(_ZN7ee54701C1Ev),
+ NSPAIR(_ZN7ee54701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd4701;
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static Base_Class bases_ee54701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54701[];
+extern void _ZN7ee547013barEv();
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547013barEv,_ZTv0_n20_N7ee547013barEv)();
+extern void ABISELECT(_ZThn16_N7ee547013barEv,_ZThn8_N7ee547013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54701[0]),
+ (VTBL_ENTRY)&_ZN7ee547013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547013barEv,_ZTv0_n20_N7ee547013barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4701__7ee54701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd4701__7ee54701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd4701__7ee54701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4701__7ee54701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee54701[] = {
+ {&(_ZTV7ee54701[4]), 4,16},
+ {&(_ZTV7ee54701[10]), 10,16},
+ {&(_ZTV7ee54701[15]), 15,16},
+ {&(_tg__ZTV6dd4701__7ee54701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd4701__7ee54701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd4701__7ee54701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4701__7ee54701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54701[];
+extern VTBL_ENTRY _ZTV7ee54701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54701[];
+static VTBL_ENTRY alt_thunk_names662[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547013barEv,_ZTv0_n20_N7ee547013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547013barEv,_ZThn8_N7ee547013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54701 = { "ee54701", // class name
+ bases_ee54701, 4,
+ &(vtc_ee54701[0]), // expected_vtbl_contents
+ &(vtt_ee54701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names662,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64701 : dd4701 {
+ int e;
+ virtual void foo(); // _ZN7ee647013fooEv
+ virtual void bar(); // _ZN7ee647013barEv
+ ~ee64701(); // tgen
+ ee64701(); // tgen
+};
+//SIG(1 ee64701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64701 ::foo(){vfunc_called(this, "_ZN7ee647013fooEv");}
+void ee64701 ::bar(){vfunc_called(this, "_ZN7ee647013barEv");}
+ee64701 ::~ee64701(){ note_dtor("ee64701", this);} // tgen
+ee64701 ::ee64701(){ note_ctor("ee64701", this);} // tgen
+
+static void Test_ee64701()
+{
+ extern Class_Descriptor cd_ee64701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64701, buf);
+ ee64701 *dp, &lv = *(dp=new (buf) ee64701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee64701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd4701*), ABISELECT(24,16), "ee64701");
+ check_base_class_offset(lv, (cc701*)(dd4701*), 0, "ee64701");
+ check_base_class_offset(lv, (dd4701*), 0, "ee64701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64701.e");
+ test_class_info(&lv, &cd_ee64701);
+ dp->~ee64701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64701(Test_ee64701, "ee64701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64701C1Ev();
+extern void _ZN7ee64701D1Ev();
+Name_Map name_map_ee64701[] = {
+ NSPAIR(_ZN7ee64701C1Ev),
+ NSPAIR(_ZN7ee64701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd4701;
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static Base_Class bases_ee64701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64701[];
+extern void _ZN7ee647013fooEv();
+extern void _ZN7ee647013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee647013fooEv,_ZTv0_n12_N7ee647013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee647013fooEv,_ZThn16_N7ee647013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64701[0]),
+ (VTBL_ENTRY)&_ZN7ee647013fooEv,
+ (VTBL_ENTRY)&_ZN7ee647013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647013fooEv,_ZTv0_n12_N7ee647013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4701__7ee64701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd4701__7ee64701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd4701__7ee64701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4701__7ee64701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee64701[] = {
+ {&(_ZTV7ee64701[3]), 3,9},
+ {&(_tg__ZTV6dd4701__7ee64701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd4701__7ee64701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd4701__7ee64701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4701__7ee64701[3]), 3,4},
+ {&(_ZTV7ee64701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64701[];
+extern VTBL_ENTRY _ZTV7ee64701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64701[];
+static VTBL_ENTRY alt_thunk_names663[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647013fooEv,_ZTv0_n12_N7ee647013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647013fooEv,_ZThn16_N7ee647013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64701 = { "ee64701", // class name
+ bases_ee64701, 4,
+ &(vtc_ee64701[0]), // expected_vtbl_contents
+ &(vtt_ee64701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names663,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74701 : virtual dd4701 {
+ int e;
+ virtual void foo(); // _ZN7ee747013fooEv
+ virtual void bar(); // _ZN7ee747013barEv
+ ~ee74701(); // tgen
+ ee74701(); // tgen
+};
+//SIG(1 ee74701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74701 ::foo(){vfunc_called(this, "_ZN7ee747013fooEv");}
+void ee74701 ::bar(){vfunc_called(this, "_ZN7ee747013barEv");}
+ee74701 ::~ee74701(){ note_dtor("ee74701", this);} // tgen
+ee74701 ::ee74701(){ note_ctor("ee74701", this);} // tgen
+
+static void Test_ee74701()
+{
+ extern Class_Descriptor cd_ee74701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74701, buf);
+ ee74701 *dp, &lv = *(dp=new (buf) ee74701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee74701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd4701*), ABISELECT(32,20), "ee74701");
+ check_base_class_offset(lv, (cc701*)(dd4701*), ABISELECT(16,8), "ee74701");
+ check_base_class_offset(lv, (dd4701*), ABISELECT(16,8), "ee74701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74701.e");
+ test_class_info(&lv, &cd_ee74701);
+ dp->~ee74701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74701(Test_ee74701, "ee74701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74701C1Ev();
+extern void _ZN7ee74701D1Ev();
+Name_Map name_map_ee74701[] = {
+ NSPAIR(_ZN7ee74701C1Ev),
+ NSPAIR(_ZN7ee74701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd4701;
+extern VTBL_ENTRY _ZTI6dd4701[];
+extern VTBL_ENTRY _ZTV6dd4701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4701[];
+static Base_Class bases_ee74701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74701[];
+extern void _ZN7ee747013fooEv();
+extern void _ZN7ee747013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747013fooEv,_ZTv0_n16_N7ee747013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747013fooEv,_ZThn8_N7ee747013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747013barEv,_ZTv0_n20_N7ee747013barEv)();
+extern void ABISELECT(_ZThn16_N7ee747013barEv,_ZThn8_N7ee747013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747013fooEv,_ZTv0_n12_N7ee747013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee747013fooEv,_ZThn20_N7ee747013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74701[0]),
+ (VTBL_ENTRY)&_ZN7ee747013fooEv,
+ (VTBL_ENTRY)&_ZN7ee747013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747013fooEv,_ZTv0_n16_N7ee747013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747013barEv,_ZTv0_n20_N7ee747013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747013fooEv,_ZTv0_n12_N7ee747013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN6dd47013barEv();
+static VTBL_ENTRY _tg__ZTV6dd4701__7ee74701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN6dd47013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd4701__7ee74701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd4701__7ee74701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd4701__7ee74701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee74701[] = {
+ {&(_ZTV7ee74701[4]), 4,17},
+ {&(_ZTV7ee74701[11]), 11,17},
+ {&(_ZTV7ee74701[16]), 16,17},
+ {&(_tg__ZTV6dd4701__7ee74701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd4701__7ee74701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd4701__7ee74701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd4701__7ee74701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74701[];
+extern VTBL_ENTRY _ZTV7ee74701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74701[];
+static VTBL_ENTRY alt_thunk_names664[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747013fooEv,_ZTv0_n12_N7ee747013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747013fooEv,_ZThn20_N7ee747013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747013barEv,_ZTv0_n20_N7ee747013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747013barEv,_ZThn8_N7ee747013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747013fooEv,_ZTv0_n16_N7ee747013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747013fooEv,_ZThn8_N7ee747013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74701 = { "ee74701", // class name
+ bases_ee74701, 4,
+ &(vtc_ee74701[0]), // expected_vtbl_contents
+ &(vtt_ee74701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names664,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5701 : virtual cc701 {
+ int d;
+ virtual void bar(); // _ZN6dd57013barEv
+ ~dd5701(); // tgen
+ dd5701(); // tgen
+};
+//SIG(-1 dd5701) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5701 ::bar(){vfunc_called(this, "_ZN6dd57013barEv");}
+dd5701 ::~dd5701(){ note_dtor("dd5701", this);} // tgen
+dd5701 ::dd5701(){ note_ctor("dd5701", this);} // tgen
+
+static void Test_dd5701()
+{
+ extern Class_Descriptor cd_dd5701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5701, buf);
+ dd5701 *dp, &lv = *(dp=new (buf) dd5701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd5701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,16), "dd5701");
+ check_base_class_offset(lv, (cc701*), ABISELECT(16,8), "dd5701");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5701.d");
+ test_class_info(&lv, &cd_dd5701);
+ dp->~dd5701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5701(Test_dd5701, "dd5701", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5701C1Ev();
+extern void _ZN6dd5701D1Ev();
+Name_Map name_map_dd5701[] = {
+ NSPAIR(_ZN6dd5701C1Ev),
+ NSPAIR(_ZN6dd5701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static Base_Class bases_dd5701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 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 _ZTI6dd5701[];
+extern void _ZN6dd57013barEv();
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__6dd5701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_dd5701[] = {
+ {&(_ZTV6dd5701[4]), 4,16},
+ {&(_ZTV6dd5701[10]), 10,16},
+ {&(_ZTV6dd5701[15]), 15,16},
+ {&(_tg__ZTV5cc701__6dd5701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__6dd5701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static VTBL_ENTRY alt_thunk_names665[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5701 = { "dd5701", // class name
+ bases_dd5701, 3,
+ &(vtc_dd5701[0]), // expected_vtbl_contents
+ &(vtt_dd5701[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5701),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names665,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05701 : dd5701 {
+ int e;
+ ~ee05701(); // tgen
+ ee05701(); // tgen
+};
+//SIG(1 ee05701) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05701 ::~ee05701(){ note_dtor("ee05701", this);} // tgen
+ee05701 ::ee05701(){ note_ctor("ee05701", this);} // tgen
+
+static void Test_ee05701()
+{
+ extern Class_Descriptor cd_ee05701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05701, buf);
+ ee05701 *dp, &lv = *(dp=new (buf) ee05701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee05701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee05701");
+ check_base_class_offset(lv, (cc701*)(dd5701*), ABISELECT(16,12), "ee05701");
+ check_base_class_offset(lv, (dd5701*), 0, "ee05701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05701.e");
+ test_class_info(&lv, &cd_ee05701);
+ dp->~ee05701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05701(Test_ee05701, "ee05701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05701C1Ev();
+extern void _ZN7ee05701D1Ev();
+Name_Map name_map_ee05701[] = {
+ NSPAIR(_ZN7ee05701C1Ev),
+ NSPAIR(_ZN7ee05701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd5701;
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static Base_Class bases_ee05701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05701[];
+extern void _ZN6dd57013barEv();
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05701[];
+extern void _ZN6dd57013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5701__7ee05701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701__7ee05701[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5701__7ee05701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee05701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee05701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee05701[] = {
+ {&(_ZTV7ee05701[4]), 4,16},
+ {&(_tg__ZTV6dd5701__7ee05701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd5701__7ee05701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd5701__7ee05701[3]), 3,4},
+ {&(_ZTV7ee05701[10]), 10,16},
+ {&(_ZTV7ee05701[15]), 15,16},
+ {&(_tg__ZTV5cc701__7ee05701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee05701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05701[];
+extern VTBL_ENTRY _ZTV7ee05701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05701[];
+static VTBL_ENTRY alt_thunk_names666[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05701 = { "ee05701", // class name
+ bases_ee05701, 4,
+ &(vtc_ee05701[0]), // expected_vtbl_contents
+ &(vtt_ee05701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names666,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15701 : virtual dd5701 {
+ int e;
+ ~ee15701(); // tgen
+ ee15701(); // tgen
+};
+//SIG(1 ee15701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15701 ::~ee15701(){ note_dtor("ee15701", this);} // tgen
+ee15701 ::ee15701(){ note_ctor("ee15701", this);} // tgen
+
+static void Test_ee15701()
+{
+ extern Class_Descriptor cd_ee15701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15701, buf);
+ ee15701 *dp, &lv = *(dp=new (buf) ee15701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee15701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee15701");
+ check_base_class_offset(lv, (cc701*)(dd5701*), ABISELECT(32,16), "ee15701");
+ check_base_class_offset(lv, (dd5701*), ABISELECT(16,8), "ee15701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15701.e");
+ test_class_info(&lv, &cd_ee15701);
+ dp->~ee15701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15701(Test_ee15701, "ee15701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15701C1Ev();
+extern void _ZN7ee15701D1Ev();
+Name_Map name_map_ee15701[] = {
+ NSPAIR(_ZN7ee15701C1Ev),
+ NSPAIR(_ZN7ee15701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd5701;
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static Base_Class bases_ee15701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15701[];
+extern void _ZN6dd57013barEv();
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15701[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15701[];
+extern void _ZN6dd57013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5701__7ee15701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701__7ee15701[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5701__7ee15701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee15701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee15701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee15701[] = {
+ {&(_ZTV7ee15701[5]), 5,22},
+ {&(_ZTV7ee15701[10]), 10,22},
+ {&(_ZTV7ee15701[16]), 16,22},
+ {&(_ZTV7ee15701[21]), 21,22},
+ {&(_tg__ZTV6dd5701__7ee15701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd5701__7ee15701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd5701__7ee15701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee15701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee15701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15701[];
+extern VTBL_ENTRY _ZTV7ee15701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15701[];
+static VTBL_ENTRY alt_thunk_names667[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15701 = { "ee15701", // class name
+ bases_ee15701, 4,
+ &(vtc_ee15701[0]), // expected_vtbl_contents
+ &(vtt_ee15701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15701),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names667,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25701 : dd5701 {
+ int e;
+ virtual void foo(); // _ZN7ee257013fooEv
+ ~ee25701(); // tgen
+ ee25701(); // tgen
+};
+//SIG(1 ee25701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25701 ::foo(){vfunc_called(this, "_ZN7ee257013fooEv");}
+ee25701 ::~ee25701(){ note_dtor("ee25701", this);} // tgen
+ee25701 ::ee25701(){ note_ctor("ee25701", this);} // tgen
+
+static void Test_ee25701()
+{
+ extern Class_Descriptor cd_ee25701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25701, buf);
+ ee25701 *dp, &lv = *(dp=new (buf) ee25701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee25701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee25701");
+ check_base_class_offset(lv, (cc701*)(dd5701*), ABISELECT(16,12), "ee25701");
+ check_base_class_offset(lv, (dd5701*), 0, "ee25701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25701.e");
+ test_class_info(&lv, &cd_ee25701);
+ dp->~ee25701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25701(Test_ee25701, "ee25701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25701C1Ev();
+extern void _ZN7ee25701D1Ev();
+Name_Map name_map_ee25701[] = {
+ NSPAIR(_ZN7ee25701C1Ev),
+ NSPAIR(_ZN7ee25701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd5701;
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static Base_Class bases_ee25701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25701[];
+extern void _ZN6dd57013barEv();
+extern void _ZN7ee257013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257013fooEv,_ZTv0_n16_N7ee257013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257013fooEv,_ZThn12_N7ee257013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257013fooEv,_ZTv0_n12_N7ee257013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee257013fooEv,_ZThn20_N7ee257013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+ (VTBL_ENTRY)&_ZN7ee257013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257013fooEv,_ZTv0_n16_N7ee257013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257013fooEv,_ZTv0_n12_N7ee257013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25701[];
+extern void _ZN6dd57013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5701__7ee25701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701__7ee25701[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5701__7ee25701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee25701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee25701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee25701[] = {
+ {&(_ZTV7ee25701[4]), 4,17},
+ {&(_tg__ZTV6dd5701__7ee25701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd5701__7ee25701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd5701__7ee25701[3]), 3,4},
+ {&(_ZTV7ee25701[11]), 11,17},
+ {&(_ZTV7ee25701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee25701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee25701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25701[];
+extern VTBL_ENTRY _ZTV7ee25701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25701[];
+static VTBL_ENTRY alt_thunk_names668[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257013fooEv,_ZTv0_n12_N7ee257013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee257013fooEv,_ZThn20_N7ee257013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257013fooEv,_ZTv0_n16_N7ee257013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257013fooEv,_ZThn12_N7ee257013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25701 = { "ee25701", // class name
+ bases_ee25701, 4,
+ &(vtc_ee25701[0]), // expected_vtbl_contents
+ &(vtt_ee25701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names668,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35701 : virtual dd5701 {
+ int e;
+ virtual void foo(); // _ZN7ee357013fooEv
+ ~ee35701(); // tgen
+ ee35701(); // tgen
+};
+//SIG(1 ee35701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35701 ::foo(){vfunc_called(this, "_ZN7ee357013fooEv");}
+ee35701 ::~ee35701(){ note_dtor("ee35701", this);} // tgen
+ee35701 ::ee35701(){ note_ctor("ee35701", this);} // tgen
+
+static void Test_ee35701()
+{
+ extern Class_Descriptor cd_ee35701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35701, buf);
+ ee35701 *dp, &lv = *(dp=new (buf) ee35701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee35701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee35701");
+ check_base_class_offset(lv, (cc701*)(dd5701*), ABISELECT(32,16), "ee35701");
+ check_base_class_offset(lv, (dd5701*), ABISELECT(16,8), "ee35701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35701.e");
+ test_class_info(&lv, &cd_ee35701);
+ dp->~ee35701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35701(Test_ee35701, "ee35701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35701C1Ev();
+extern void _ZN7ee35701D1Ev();
+Name_Map name_map_ee35701[] = {
+ NSPAIR(_ZN7ee35701C1Ev),
+ NSPAIR(_ZN7ee35701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd5701;
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static Base_Class bases_ee35701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35701[];
+extern void _ZN7ee357013fooEv();
+extern void _ZN6dd57013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357013fooEv,_ZTv0_n16_N7ee357013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357013fooEv,_ZThn16_N7ee357013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357013fooEv,_ZTv0_n12_N7ee357013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee357013fooEv,_ZThn24_N7ee357013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35701[0]),
+ (VTBL_ENTRY)&_ZN7ee357013fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357013fooEv,_ZTv0_n16_N7ee357013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357013fooEv,_ZTv0_n12_N7ee357013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35701[];
+extern void _ZN6dd57013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5701__7ee35701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701__7ee35701[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5701__7ee35701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee35701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee35701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee35701[] = {
+ {&(_ZTV7ee35701[5]), 5,23},
+ {&(_ZTV7ee35701[11]), 11,23},
+ {&(_ZTV7ee35701[17]), 17,23},
+ {&(_ZTV7ee35701[22]), 22,23},
+ {&(_tg__ZTV6dd5701__7ee35701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd5701__7ee35701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd5701__7ee35701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee35701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee35701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35701[];
+extern VTBL_ENTRY _ZTV7ee35701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35701[];
+static VTBL_ENTRY alt_thunk_names669[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357013fooEv,_ZTv0_n12_N7ee357013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee357013fooEv,_ZThn24_N7ee357013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357013fooEv,_ZTv0_n16_N7ee357013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357013fooEv,_ZThn16_N7ee357013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35701 = { "ee35701", // class name
+ bases_ee35701, 4,
+ &(vtc_ee35701[0]), // expected_vtbl_contents
+ &(vtt_ee35701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35701),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names669,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45701 : dd5701 {
+ int e;
+ virtual void bar(); // _ZN7ee457013barEv
+ ~ee45701(); // tgen
+ ee45701(); // tgen
+};
+//SIG(1 ee45701) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45701 ::bar(){vfunc_called(this, "_ZN7ee457013barEv");}
+ee45701 ::~ee45701(){ note_dtor("ee45701", this);} // tgen
+ee45701 ::ee45701(){ note_ctor("ee45701", this);} // tgen
+
+static void Test_ee45701()
+{
+ extern Class_Descriptor cd_ee45701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45701, buf);
+ ee45701 *dp, &lv = *(dp=new (buf) ee45701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee45701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee45701");
+ check_base_class_offset(lv, (cc701*)(dd5701*), ABISELECT(16,12), "ee45701");
+ check_base_class_offset(lv, (dd5701*), 0, "ee45701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45701.e");
+ test_class_info(&lv, &cd_ee45701);
+ dp->~ee45701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45701(Test_ee45701, "ee45701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45701C1Ev();
+extern void _ZN7ee45701D1Ev();
+Name_Map name_map_ee45701[] = {
+ NSPAIR(_ZN7ee45701C1Ev),
+ NSPAIR(_ZN7ee45701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd5701;
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static Base_Class bases_ee45701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45701[];
+extern void _ZN7ee457013barEv();
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457013barEv,_ZTv0_n20_N7ee457013barEv)();
+extern void ABISELECT(_ZThn16_N7ee457013barEv,_ZThn12_N7ee457013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45701[0]),
+ (VTBL_ENTRY)&_ZN7ee457013barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457013barEv,_ZTv0_n20_N7ee457013barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45701[];
+extern void _ZN6dd57013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5701__7ee45701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701__7ee45701[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5701__7ee45701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee45701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee45701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee45701[] = {
+ {&(_ZTV7ee45701[4]), 4,16},
+ {&(_tg__ZTV6dd5701__7ee45701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd5701__7ee45701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd5701__7ee45701[3]), 3,4},
+ {&(_ZTV7ee45701[10]), 10,16},
+ {&(_ZTV7ee45701[15]), 15,16},
+ {&(_tg__ZTV5cc701__7ee45701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee45701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45701[];
+extern VTBL_ENTRY _ZTV7ee45701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45701[];
+static VTBL_ENTRY alt_thunk_names670[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457013barEv,_ZTv0_n20_N7ee457013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457013barEv,_ZThn12_N7ee457013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45701 = { "ee45701", // class name
+ bases_ee45701, 4,
+ &(vtc_ee45701[0]), // expected_vtbl_contents
+ &(vtt_ee45701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names670,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55701 : virtual dd5701 {
+ int e;
+ virtual void bar(); // _ZN7ee557013barEv
+ ~ee55701(); // tgen
+ ee55701(); // tgen
+};
+//SIG(1 ee55701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55701 ::bar(){vfunc_called(this, "_ZN7ee557013barEv");}
+ee55701 ::~ee55701(){ note_dtor("ee55701", this);} // tgen
+ee55701 ::ee55701(){ note_ctor("ee55701", this);} // tgen
+
+static void Test_ee55701()
+{
+ extern Class_Descriptor cd_ee55701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55701, buf);
+ ee55701 *dp, &lv = *(dp=new (buf) ee55701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee55701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee55701");
+ check_base_class_offset(lv, (cc701*)(dd5701*), ABISELECT(32,16), "ee55701");
+ check_base_class_offset(lv, (dd5701*), ABISELECT(16,8), "ee55701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55701.e");
+ test_class_info(&lv, &cd_ee55701);
+ dp->~ee55701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55701(Test_ee55701, "ee55701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55701C1Ev();
+extern void _ZN7ee55701D1Ev();
+Name_Map name_map_ee55701[] = {
+ NSPAIR(_ZN7ee55701C1Ev),
+ NSPAIR(_ZN7ee55701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd5701;
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static Base_Class bases_ee55701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55701[];
+extern void _ZN7ee557013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557013barEv,_ZTv0_n20_N7ee557013barEv)();
+extern void ABISELECT(_ZThn16_N7ee557013barEv,_ZThn8_N7ee557013barEv)() __attribute__((weak));
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557013barEv,_ZTv0_n20_N7ee557013barEv)();
+extern void ABISELECT(_ZThn32_N7ee557013barEv,_ZThn16_N7ee557013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55701[0]),
+ (VTBL_ENTRY)&_ZN7ee557013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557013barEv,_ZTv0_n20_N7ee557013barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557013barEv,_ZTv0_n20_N7ee557013barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55701[];
+extern void _ZN6dd57013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5701__7ee55701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701__7ee55701[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5701__7ee55701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee55701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee55701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee55701[] = {
+ {&(_ZTV7ee55701[5]), 5,23},
+ {&(_ZTV7ee55701[11]), 11,23},
+ {&(_ZTV7ee55701[17]), 17,23},
+ {&(_ZTV7ee55701[22]), 22,23},
+ {&(_tg__ZTV6dd5701__7ee55701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd5701__7ee55701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd5701__7ee55701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee55701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee55701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55701[];
+extern VTBL_ENTRY _ZTV7ee55701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55701[];
+static VTBL_ENTRY alt_thunk_names671[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557013barEv,_ZTv0_n20_N7ee557013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557013barEv,_ZThn16_N7ee557013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557013barEv,_ZThn8_N7ee557013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55701 = { "ee55701", // class name
+ bases_ee55701, 4,
+ &(vtc_ee55701[0]), // expected_vtbl_contents
+ &(vtt_ee55701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55701),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names671,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65701 : dd5701 {
+ int e;
+ virtual void foo(); // _ZN7ee657013fooEv
+ virtual void bar(); // _ZN7ee657013barEv
+ ~ee65701(); // tgen
+ ee65701(); // tgen
+};
+//SIG(1 ee65701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65701 ::foo(){vfunc_called(this, "_ZN7ee657013fooEv");}
+void ee65701 ::bar(){vfunc_called(this, "_ZN7ee657013barEv");}
+ee65701 ::~ee65701(){ note_dtor("ee65701", this);} // tgen
+ee65701 ::ee65701(){ note_ctor("ee65701", this);} // tgen
+
+static void Test_ee65701()
+{
+ extern Class_Descriptor cd_ee65701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65701, buf);
+ ee65701 *dp, &lv = *(dp=new (buf) ee65701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee65701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee65701");
+ check_base_class_offset(lv, (cc701*)(dd5701*), ABISELECT(16,12), "ee65701");
+ check_base_class_offset(lv, (dd5701*), 0, "ee65701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65701.e");
+ test_class_info(&lv, &cd_ee65701);
+ dp->~ee65701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65701(Test_ee65701, "ee65701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65701C1Ev();
+extern void _ZN7ee65701D1Ev();
+Name_Map name_map_ee65701[] = {
+ NSPAIR(_ZN7ee65701C1Ev),
+ NSPAIR(_ZN7ee65701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd5701;
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static Base_Class bases_ee65701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65701[];
+extern void _ZN7ee657013barEv();
+extern void _ZN7ee657013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657013fooEv,_ZTv0_n16_N7ee657013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657013fooEv,_ZThn12_N7ee657013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657013barEv,_ZTv0_n20_N7ee657013barEv)();
+extern void ABISELECT(_ZThn16_N7ee657013barEv,_ZThn12_N7ee657013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657013fooEv,_ZTv0_n12_N7ee657013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee657013fooEv,_ZThn20_N7ee657013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65701[0]),
+ (VTBL_ENTRY)&_ZN7ee657013barEv,
+ (VTBL_ENTRY)&_ZN7ee657013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657013fooEv,_ZTv0_n16_N7ee657013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657013barEv,_ZTv0_n20_N7ee657013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657013fooEv,_ZTv0_n12_N7ee657013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65701[];
+extern void _ZN6dd57013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5701__7ee65701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701__7ee65701[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5701__7ee65701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee65701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee65701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee65701[] = {
+ {&(_ZTV7ee65701[4]), 4,17},
+ {&(_tg__ZTV6dd5701__7ee65701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd5701__7ee65701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd5701__7ee65701[3]), 3,4},
+ {&(_ZTV7ee65701[11]), 11,17},
+ {&(_ZTV7ee65701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee65701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee65701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65701[];
+extern VTBL_ENTRY _ZTV7ee65701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65701[];
+static VTBL_ENTRY alt_thunk_names672[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn12_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657013fooEv,_ZTv0_n12_N7ee657013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657013fooEv,_ZThn20_N7ee657013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657013barEv,_ZTv0_n20_N7ee657013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657013barEv,_ZThn12_N7ee657013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657013fooEv,_ZTv0_n16_N7ee657013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657013fooEv,_ZThn12_N7ee657013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65701 = { "ee65701", // class name
+ bases_ee65701, 4,
+ &(vtc_ee65701[0]), // expected_vtbl_contents
+ &(vtt_ee65701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names672,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75701 : virtual dd5701 {
+ int e;
+ virtual void foo(); // _ZN7ee757013fooEv
+ virtual void bar(); // _ZN7ee757013barEv
+ ~ee75701(); // tgen
+ ee75701(); // tgen
+};
+//SIG(1 ee75701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75701 ::foo(){vfunc_called(this, "_ZN7ee757013fooEv");}
+void ee75701 ::bar(){vfunc_called(this, "_ZN7ee757013barEv");}
+ee75701 ::~ee75701(){ note_dtor("ee75701", this);} // tgen
+ee75701 ::ee75701(){ note_ctor("ee75701", this);} // tgen
+
+static void Test_ee75701()
+{
+ extern Class_Descriptor cd_ee75701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75701, buf);
+ ee75701 *dp, &lv = *(dp=new (buf) ee75701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee75701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee75701");
+ check_base_class_offset(lv, (cc701*)(dd5701*), ABISELECT(32,16), "ee75701");
+ check_base_class_offset(lv, (dd5701*), ABISELECT(16,8), "ee75701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75701.e");
+ test_class_info(&lv, &cd_ee75701);
+ dp->~ee75701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75701(Test_ee75701, "ee75701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75701C1Ev();
+extern void _ZN7ee75701D1Ev();
+Name_Map name_map_ee75701[] = {
+ NSPAIR(_ZN7ee75701C1Ev),
+ NSPAIR(_ZN7ee75701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd5701;
+extern VTBL_ENTRY _ZTI6dd5701[];
+extern VTBL_ENTRY _ZTV6dd5701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5701[];
+static Base_Class bases_ee75701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5701, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75701[];
+extern void _ZN7ee757013fooEv();
+extern void _ZN7ee757013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757013barEv,_ZTv0_n20_N7ee757013barEv)();
+extern void ABISELECT(_ZThn16_N7ee757013barEv,_ZThn8_N7ee757013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757013fooEv,_ZTv0_n16_N7ee757013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757013fooEv,_ZThn16_N7ee757013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757013barEv,_ZTv0_n20_N7ee757013barEv)();
+extern void ABISELECT(_ZThn32_N7ee757013barEv,_ZThn16_N7ee757013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757013fooEv,_ZTv0_n12_N7ee757013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee757013fooEv,_ZThn24_N7ee757013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75701[0]),
+ (VTBL_ENTRY)&_ZN7ee757013fooEv,
+ (VTBL_ENTRY)&_ZN7ee757013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757013barEv,_ZTv0_n20_N7ee757013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757013fooEv,_ZTv0_n16_N7ee757013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757013barEv,_ZTv0_n20_N7ee757013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757013fooEv,_ZTv0_n12_N7ee757013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75701[];
+extern void _ZN6dd57013barEv();
+static VTBL_ENTRY _tg__ZTV6dd5701__7ee75701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN6dd57013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv)();
+extern void ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd5701__7ee75701[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd5701__7ee75701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee75701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee75701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee75701[] = {
+ {&(_ZTV7ee75701[5]), 5,24},
+ {&(_ZTV7ee75701[12]), 12,24},
+ {&(_ZTV7ee75701[18]), 18,24},
+ {&(_ZTV7ee75701[23]), 23,24},
+ {&(_tg__ZTV6dd5701__7ee75701[4]), 4,5},
+ {&(_tg__ZTV5cc701__6dd5701__7ee75701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd5701__7ee75701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee75701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee75701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75701[];
+extern VTBL_ENTRY _ZTV7ee75701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75701[];
+static VTBL_ENTRY alt_thunk_names673[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57013barEv,_ZTv0_n20_N6dd57013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57013barEv,_ZThn8_N6dd57013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757013fooEv,_ZTv0_n12_N7ee757013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757013fooEv,_ZThn24_N7ee757013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757013fooEv,_ZTv0_n16_N7ee757013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757013fooEv,_ZThn16_N7ee757013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757013barEv,_ZTv0_n20_N7ee757013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757013barEv,_ZThn16_N7ee757013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757013barEv,_ZThn8_N7ee757013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75701 = { "ee75701", // class name
+ bases_ee75701, 4,
+ &(vtc_ee75701[0]), // expected_vtbl_contents
+ &(vtt_ee75701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75701),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names673,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6701 : cc701 {
+ int d;
+ virtual void bar(); // _ZN6dd67013barEv
+ virtual void foo(); // _ZN6dd67013fooEv
+ ~dd6701(); // tgen
+ dd6701(); // tgen
+};
+//SIG(-1 dd6701) C1{ BC2{ VBC3{ BC4{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6701 ::bar(){vfunc_called(this, "_ZN6dd67013barEv");}
+void dd6701 ::foo(){vfunc_called(this, "_ZN6dd67013fooEv");}
+dd6701 ::~dd6701(){ note_dtor("dd6701", this);} // tgen
+dd6701 ::dd6701(){ note_ctor("dd6701", this);} // tgen
+
+static void Test_dd6701()
+{
+ extern Class_Descriptor cd_dd6701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6701, buf);
+ dd6701 *dp, &lv = *(dp=new (buf) dd6701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(16,12), "dd6701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(16,12), "dd6701");
+ check_base_class_offset(lv, (cc701*), 0, "dd6701");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6701.d");
+ test_class_info(&lv, &cd_dd6701);
+ dp->~dd6701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6701(Test_dd6701, "dd6701", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6701C1Ev();
+extern void _ZN6dd6701D1Ev();
+Name_Map name_map_dd6701[] = {
+ NSPAIR(_ZN6dd6701C1Ev),
+ NSPAIR(_ZN6dd6701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static Base_Class bases_dd6701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd6701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__6dd6701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_dd6701[] = {
+ {&(_ZTV6dd6701[3]), 3,9},
+ {&(_tg__ZTV5cc701__6dd6701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__6dd6701[3]), 3,4},
+ {&(_ZTV6dd6701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static VTBL_ENTRY alt_thunk_names674[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6701 = { "dd6701", // class name
+ bases_dd6701, 3,
+ &(vtc_dd6701[0]), // expected_vtbl_contents
+ &(vtt_dd6701[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6701),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names674,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06701 : dd6701 {
+ int e;
+ ~ee06701(); // tgen
+ ee06701(); // tgen
+};
+//SIG(1 ee06701) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06701 ::~ee06701(){ note_dtor("ee06701", this);} // tgen
+ee06701 ::ee06701(){ note_ctor("ee06701", this);} // tgen
+
+static void Test_ee06701()
+{
+ extern Class_Descriptor cd_ee06701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06701, buf);
+ ee06701 *dp, &lv = *(dp=new (buf) ee06701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee06701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd6701*), ABISELECT(24,16), "ee06701");
+ check_base_class_offset(lv, (cc701*)(dd6701*), 0, "ee06701");
+ check_base_class_offset(lv, (dd6701*), 0, "ee06701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06701.e");
+ test_class_info(&lv, &cd_ee06701);
+ dp->~ee06701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06701(Test_ee06701, "ee06701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06701C1Ev();
+extern void _ZN7ee06701D1Ev();
+Name_Map name_map_ee06701[] = {
+ NSPAIR(_ZN7ee06701C1Ev),
+ NSPAIR(_ZN7ee06701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd6701;
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static Base_Class bases_ee06701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6701__7ee06701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd6701__7ee06701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd6701__7ee06701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6701__7ee06701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+static VTT_ENTRY vtt_ee06701[] = {
+ {&(_ZTV7ee06701[3]), 3,9},
+ {&(_tg__ZTV6dd6701__7ee06701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd6701__7ee06701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd6701__7ee06701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6701__7ee06701[3]), 3,4},
+ {&(_ZTV7ee06701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06701[];
+extern VTBL_ENTRY _ZTV7ee06701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06701[];
+static VTBL_ENTRY alt_thunk_names675[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06701 = { "ee06701", // class name
+ bases_ee06701, 4,
+ &(vtc_ee06701[0]), // expected_vtbl_contents
+ &(vtt_ee06701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names675,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16701 : virtual dd6701 {
+ int e;
+ ~ee16701(); // tgen
+ ee16701(); // tgen
+};
+//SIG(1 ee16701) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16701 ::~ee16701(){ note_dtor("ee16701", this);} // tgen
+ee16701 ::ee16701(){ note_ctor("ee16701", this);} // tgen
+
+static void Test_ee16701()
+{
+ extern Class_Descriptor cd_ee16701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16701, buf);
+ ee16701 *dp, &lv = *(dp=new (buf) ee16701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee16701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd6701*), ABISELECT(32,20), "ee16701");
+ check_base_class_offset(lv, (cc701*)(dd6701*), ABISELECT(16,8), "ee16701");
+ check_base_class_offset(lv, (dd6701*), ABISELECT(16,8), "ee16701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16701.e");
+ test_class_info(&lv, &cd_ee16701);
+ dp->~ee16701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16701(Test_ee16701, "ee16701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16701C1Ev();
+extern void _ZN7ee16701D1Ev();
+Name_Map name_map_ee16701[] = {
+ NSPAIR(_ZN7ee16701C1Ev),
+ NSPAIR(_ZN7ee16701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd6701;
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static Base_Class bases_ee16701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6701, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16701[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6701__7ee16701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd6701__7ee16701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd6701__7ee16701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6701__7ee16701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+static VTT_ENTRY vtt_ee16701[] = {
+ {&(_ZTV7ee16701[4]), 4,15},
+ {&(_ZTV7ee16701[9]), 9,15},
+ {&(_ZTV7ee16701[14]), 14,15},
+ {&(_tg__ZTV6dd6701__7ee16701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd6701__7ee16701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd6701__7ee16701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6701__7ee16701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16701[];
+extern VTBL_ENTRY _ZTV7ee16701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16701[];
+static VTBL_ENTRY alt_thunk_names676[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16701 = { "ee16701", // class name
+ bases_ee16701, 4,
+ &(vtc_ee16701[0]), // expected_vtbl_contents
+ &(vtt_ee16701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16701),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names676,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26701 : dd6701 {
+ int e;
+ virtual void foo(); // _ZN7ee267013fooEv
+ ~ee26701(); // tgen
+ ee26701(); // tgen
+};
+//SIG(1 ee26701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26701 ::foo(){vfunc_called(this, "_ZN7ee267013fooEv");}
+ee26701 ::~ee26701(){ note_dtor("ee26701", this);} // tgen
+ee26701 ::ee26701(){ note_ctor("ee26701", this);} // tgen
+
+static void Test_ee26701()
+{
+ extern Class_Descriptor cd_ee26701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26701, buf);
+ ee26701 *dp, &lv = *(dp=new (buf) ee26701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee26701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd6701*), ABISELECT(24,16), "ee26701");
+ check_base_class_offset(lv, (cc701*)(dd6701*), 0, "ee26701");
+ check_base_class_offset(lv, (dd6701*), 0, "ee26701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26701.e");
+ test_class_info(&lv, &cd_ee26701);
+ dp->~ee26701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26701(Test_ee26701, "ee26701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26701C1Ev();
+extern void _ZN7ee26701D1Ev();
+Name_Map name_map_ee26701[] = {
+ NSPAIR(_ZN7ee26701C1Ev),
+ NSPAIR(_ZN7ee26701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd6701;
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static Base_Class bases_ee26701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26701[];
+extern void _ZN7ee267013fooEv();
+extern void _ZN6dd67013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee267013fooEv,_ZTv0_n12_N7ee267013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee267013fooEv,_ZThn16_N7ee267013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26701[0]),
+ (VTBL_ENTRY)&_ZN7ee267013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267013fooEv,_ZTv0_n12_N7ee267013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6701__7ee26701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd6701__7ee26701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd6701__7ee26701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6701__7ee26701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+static VTT_ENTRY vtt_ee26701[] = {
+ {&(_ZTV7ee26701[3]), 3,9},
+ {&(_tg__ZTV6dd6701__7ee26701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd6701__7ee26701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd6701__7ee26701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6701__7ee26701[3]), 3,4},
+ {&(_ZTV7ee26701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26701[];
+extern VTBL_ENTRY _ZTV7ee26701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26701[];
+static VTBL_ENTRY alt_thunk_names677[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267013fooEv,_ZTv0_n12_N7ee267013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee267013fooEv,_ZThn16_N7ee267013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26701 = { "ee26701", // class name
+ bases_ee26701, 4,
+ &(vtc_ee26701[0]), // expected_vtbl_contents
+ &(vtt_ee26701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names677,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36701 : virtual dd6701 {
+ int e;
+ virtual void foo(); // _ZN7ee367013fooEv
+ ~ee36701(); // tgen
+ ee36701(); // tgen
+};
+//SIG(1 ee36701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36701 ::foo(){vfunc_called(this, "_ZN7ee367013fooEv");}
+ee36701 ::~ee36701(){ note_dtor("ee36701", this);} // tgen
+ee36701 ::ee36701(){ note_ctor("ee36701", this);} // tgen
+
+static void Test_ee36701()
+{
+ extern Class_Descriptor cd_ee36701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36701, buf);
+ ee36701 *dp, &lv = *(dp=new (buf) ee36701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee36701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd6701*), ABISELECT(32,20), "ee36701");
+ check_base_class_offset(lv, (cc701*)(dd6701*), ABISELECT(16,8), "ee36701");
+ check_base_class_offset(lv, (dd6701*), ABISELECT(16,8), "ee36701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36701.e");
+ test_class_info(&lv, &cd_ee36701);
+ dp->~ee36701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36701(Test_ee36701, "ee36701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36701C1Ev();
+extern void _ZN7ee36701D1Ev();
+Name_Map name_map_ee36701[] = {
+ NSPAIR(_ZN7ee36701C1Ev),
+ NSPAIR(_ZN7ee36701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd6701;
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static Base_Class bases_ee36701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36701[];
+extern void _ZN7ee367013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367013fooEv,_ZTv0_n16_N7ee367013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367013fooEv,_ZThn8_N7ee367013fooEv)() __attribute__((weak));
+extern void _ZN6dd67013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee367013fooEv,_ZTv0_n12_N7ee367013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee367013fooEv,_ZThn20_N7ee367013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36701[0]),
+ (VTBL_ENTRY)&_ZN7ee367013fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367013fooEv,_ZTv0_n16_N7ee367013fooEv),
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367013fooEv,_ZTv0_n12_N7ee367013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6701__7ee36701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd6701__7ee36701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd6701__7ee36701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6701__7ee36701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+static VTT_ENTRY vtt_ee36701[] = {
+ {&(_ZTV7ee36701[4]), 4,16},
+ {&(_ZTV7ee36701[10]), 10,16},
+ {&(_ZTV7ee36701[15]), 15,16},
+ {&(_tg__ZTV6dd6701__7ee36701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd6701__7ee36701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd6701__7ee36701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6701__7ee36701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36701[];
+extern VTBL_ENTRY _ZTV7ee36701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36701[];
+static VTBL_ENTRY alt_thunk_names678[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367013fooEv,_ZTv0_n12_N7ee367013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee367013fooEv,_ZThn20_N7ee367013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367013fooEv,_ZTv0_n16_N7ee367013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367013fooEv,_ZThn8_N7ee367013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36701 = { "ee36701", // class name
+ bases_ee36701, 4,
+ &(vtc_ee36701[0]), // expected_vtbl_contents
+ &(vtt_ee36701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names678,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46701 : dd6701 {
+ int e;
+ virtual void bar(); // _ZN7ee467013barEv
+ ~ee46701(); // tgen
+ ee46701(); // tgen
+};
+//SIG(1 ee46701) C1{ BC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46701 ::bar(){vfunc_called(this, "_ZN7ee467013barEv");}
+ee46701 ::~ee46701(){ note_dtor("ee46701", this);} // tgen
+ee46701 ::ee46701(){ note_ctor("ee46701", this);} // tgen
+
+static void Test_ee46701()
+{
+ extern Class_Descriptor cd_ee46701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46701, buf);
+ ee46701 *dp, &lv = *(dp=new (buf) ee46701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee46701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd6701*), ABISELECT(24,16), "ee46701");
+ check_base_class_offset(lv, (cc701*)(dd6701*), 0, "ee46701");
+ check_base_class_offset(lv, (dd6701*), 0, "ee46701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46701.e");
+ test_class_info(&lv, &cd_ee46701);
+ dp->~ee46701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46701(Test_ee46701, "ee46701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46701C1Ev();
+extern void _ZN7ee46701D1Ev();
+Name_Map name_map_ee46701[] = {
+ NSPAIR(_ZN7ee46701C1Ev),
+ NSPAIR(_ZN7ee46701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd6701;
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static Base_Class bases_ee46701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN7ee467013barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN7ee467013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6701__7ee46701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd6701__7ee46701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd6701__7ee46701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6701__7ee46701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+static VTT_ENTRY vtt_ee46701[] = {
+ {&(_ZTV7ee46701[3]), 3,9},
+ {&(_tg__ZTV6dd6701__7ee46701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd6701__7ee46701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd6701__7ee46701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6701__7ee46701[3]), 3,4},
+ {&(_ZTV7ee46701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46701[];
+extern VTBL_ENTRY _ZTV7ee46701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46701[];
+static VTBL_ENTRY alt_thunk_names679[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46701 = { "ee46701", // class name
+ bases_ee46701, 4,
+ &(vtc_ee46701[0]), // expected_vtbl_contents
+ &(vtt_ee46701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names679,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56701 : virtual dd6701 {
+ int e;
+ virtual void bar(); // _ZN7ee567013barEv
+ ~ee56701(); // tgen
+ ee56701(); // tgen
+};
+//SIG(1 ee56701) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56701 ::bar(){vfunc_called(this, "_ZN7ee567013barEv");}
+ee56701 ::~ee56701(){ note_dtor("ee56701", this);} // tgen
+ee56701 ::ee56701(){ note_ctor("ee56701", this);} // tgen
+
+static void Test_ee56701()
+{
+ extern Class_Descriptor cd_ee56701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56701, buf);
+ ee56701 *dp, &lv = *(dp=new (buf) ee56701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee56701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd6701*), ABISELECT(32,20), "ee56701");
+ check_base_class_offset(lv, (cc701*)(dd6701*), ABISELECT(16,8), "ee56701");
+ check_base_class_offset(lv, (dd6701*), ABISELECT(16,8), "ee56701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56701.e");
+ test_class_info(&lv, &cd_ee56701);
+ dp->~ee56701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56701(Test_ee56701, "ee56701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56701C1Ev();
+extern void _ZN7ee56701D1Ev();
+Name_Map name_map_ee56701[] = {
+ NSPAIR(_ZN7ee56701C1Ev),
+ NSPAIR(_ZN7ee56701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd6701;
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static Base_Class bases_ee56701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56701[];
+extern void _ZN7ee567013barEv();
+extern void _ZN6dd67013fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567013barEv,_ZTv0_n20_N7ee567013barEv)();
+extern void ABISELECT(_ZThn16_N7ee567013barEv,_ZThn8_N7ee567013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56701[0]),
+ (VTBL_ENTRY)&_ZN7ee567013barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567013barEv,_ZTv0_n20_N7ee567013barEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6701__7ee56701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd6701__7ee56701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd6701__7ee56701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6701__7ee56701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+static VTT_ENTRY vtt_ee56701[] = {
+ {&(_ZTV7ee56701[4]), 4,16},
+ {&(_ZTV7ee56701[10]), 10,16},
+ {&(_ZTV7ee56701[15]), 15,16},
+ {&(_tg__ZTV6dd6701__7ee56701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd6701__7ee56701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd6701__7ee56701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6701__7ee56701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56701[];
+extern VTBL_ENTRY _ZTV7ee56701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56701[];
+static VTBL_ENTRY alt_thunk_names680[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567013barEv,_ZTv0_n20_N7ee567013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567013barEv,_ZThn8_N7ee567013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56701 = { "ee56701", // class name
+ bases_ee56701, 4,
+ &(vtc_ee56701[0]), // expected_vtbl_contents
+ &(vtt_ee56701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56701),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names680,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66701 : dd6701 {
+ int e;
+ virtual void foo(); // _ZN7ee667013fooEv
+ virtual void bar(); // _ZN7ee667013barEv
+ ~ee66701(); // tgen
+ ee66701(); // tgen
+};
+//SIG(1 ee66701) C1{ BC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66701 ::foo(){vfunc_called(this, "_ZN7ee667013fooEv");}
+void ee66701 ::bar(){vfunc_called(this, "_ZN7ee667013barEv");}
+ee66701 ::~ee66701(){ note_dtor("ee66701", this);} // tgen
+ee66701 ::ee66701(){ note_ctor("ee66701", this);} // tgen
+
+static void Test_ee66701()
+{
+ extern Class_Descriptor cd_ee66701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66701, buf);
+ ee66701 *dp, &lv = *(dp=new (buf) ee66701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(24,16), "ee66701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd6701*), ABISELECT(24,16), "ee66701");
+ check_base_class_offset(lv, (cc701*)(dd6701*), 0, "ee66701");
+ check_base_class_offset(lv, (dd6701*), 0, "ee66701");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66701.e");
+ test_class_info(&lv, &cd_ee66701);
+ dp->~ee66701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66701(Test_ee66701, "ee66701", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66701C1Ev();
+extern void _ZN7ee66701D1Ev();
+Name_Map name_map_ee66701[] = {
+ NSPAIR(_ZN7ee66701C1Ev),
+ NSPAIR(_ZN7ee66701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd6701;
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static Base_Class bases_ee66701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66701[];
+extern void _ZN7ee667013fooEv();
+extern void _ZN7ee667013barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee667013fooEv,_ZTv0_n12_N7ee667013fooEv)();
+extern void ABISELECT(_ZThn24_N7ee667013fooEv,_ZThn16_N7ee667013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66701[0]),
+ (VTBL_ENTRY)&_ZN7ee667013fooEv,
+ (VTBL_ENTRY)&_ZN7ee667013barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667013fooEv,_ZTv0_n12_N7ee667013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6701__7ee66701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd6701__7ee66701[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd6701__7ee66701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6701__7ee66701[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+static VTT_ENTRY vtt_ee66701[] = {
+ {&(_ZTV7ee66701[3]), 3,9},
+ {&(_tg__ZTV6dd6701__7ee66701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd6701__7ee66701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd6701__7ee66701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6701__7ee66701[3]), 3,4},
+ {&(_ZTV7ee66701[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66701[];
+extern VTBL_ENTRY _ZTV7ee66701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66701[];
+static VTBL_ENTRY alt_thunk_names681[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67013fooEv,_ZThn16_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7013fooEv,_ZThn16_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667013fooEv,_ZTv0_n12_N7ee667013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667013fooEv,_ZThn16_N7ee667013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66701 = { "ee66701", // class name
+ bases_ee66701, 4,
+ &(vtc_ee66701[0]), // expected_vtbl_contents
+ &(vtt_ee66701[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66701),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66701),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names681,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76701 : virtual dd6701 {
+ int e;
+ virtual void foo(); // _ZN7ee767013fooEv
+ virtual void bar(); // _ZN7ee767013barEv
+ ~ee76701(); // tgen
+ ee76701(); // tgen
+};
+//SIG(1 ee76701) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76701 ::foo(){vfunc_called(this, "_ZN7ee767013fooEv");}
+void ee76701 ::bar(){vfunc_called(this, "_ZN7ee767013barEv");}
+ee76701 ::~ee76701(){ note_dtor("ee76701", this);} // tgen
+ee76701 ::ee76701(){ note_ctor("ee76701", this);} // tgen
+
+static void Test_ee76701()
+{
+ extern Class_Descriptor cd_ee76701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76701, buf);
+ ee76701 *dp, &lv = *(dp=new (buf) ee76701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee76701");
+ check_base_class_offset(lv, (bb01*)(cc701*)(dd6701*), ABISELECT(32,20), "ee76701");
+ check_base_class_offset(lv, (cc701*)(dd6701*), ABISELECT(16,8), "ee76701");
+ check_base_class_offset(lv, (dd6701*), ABISELECT(16,8), "ee76701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76701.e");
+ test_class_info(&lv, &cd_ee76701);
+ dp->~ee76701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76701(Test_ee76701, "ee76701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76701C1Ev();
+extern void _ZN7ee76701D1Ev();
+Name_Map name_map_ee76701[] = {
+ NSPAIR(_ZN7ee76701C1Ev),
+ NSPAIR(_ZN7ee76701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd6701;
+extern VTBL_ENTRY _ZTI6dd6701[];
+extern VTBL_ENTRY _ZTV6dd6701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6701[];
+static Base_Class bases_ee76701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76701[];
+extern void _ZN7ee767013fooEv();
+extern void _ZN7ee767013barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767013fooEv,_ZTv0_n16_N7ee767013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767013fooEv,_ZThn8_N7ee767013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767013barEv,_ZTv0_n20_N7ee767013barEv)();
+extern void ABISELECT(_ZThn16_N7ee767013barEv,_ZThn8_N7ee767013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767013fooEv,_ZTv0_n12_N7ee767013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee767013fooEv,_ZThn20_N7ee767013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76701[0]),
+ (VTBL_ENTRY)&_ZN7ee767013fooEv,
+ (VTBL_ENTRY)&_ZN7ee767013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767013fooEv,_ZTv0_n16_N7ee767013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767013barEv,_ZTv0_n20_N7ee767013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767013fooEv,_ZTv0_n12_N7ee767013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76701[];
+extern void _ZN6dd67013fooEv();
+extern void _ZN6dd67013barEv();
+static VTBL_ENTRY _tg__ZTV6dd6701__7ee76701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&_ZN6dd67013fooEv,
+ (VTBL_ENTRY)&_ZN6dd67013barEv,
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc7016dd6701__7ee76701[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc7016dd6701__7ee76701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd6701__7ee76701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv),
+};
+static VTT_ENTRY vtt_ee76701[] = {
+ {&(_ZTV7ee76701[4]), 4,17},
+ {&(_ZTV7ee76701[11]), 11,17},
+ {&(_ZTV7ee76701[16]), 16,17},
+ {&(_tg__ZTV6dd6701__7ee76701[3]), 3,5},
+ {&(_tg__ZTV5cc7016dd6701__7ee76701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc7016dd6701__7ee76701[3]), 3,4},
+ {&(_tg__ZTV3aa14bb01__6dd6701__7ee76701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76701[];
+extern VTBL_ENTRY _ZTV7ee76701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76701[];
+static VTBL_ENTRY alt_thunk_names682[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67013fooEv,_ZTv0_n12_N6dd67013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67013fooEv,_ZThn12_N6dd67013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn12_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767013fooEv,_ZTv0_n12_N7ee767013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767013fooEv,_ZThn20_N7ee767013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767013barEv,_ZTv0_n20_N7ee767013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767013barEv,_ZThn8_N7ee767013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767013fooEv,_ZTv0_n16_N7ee767013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767013fooEv,_ZThn8_N7ee767013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76701 = { "ee76701", // class name
+ bases_ee76701, 4,
+ &(vtc_ee76701[0]), // expected_vtbl_contents
+ &(vtt_ee76701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76701),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names682,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7701 : virtual cc701 {
+ int d;
+ virtual void bar(); // _ZN6dd77013barEv
+ virtual void foo(); // _ZN6dd77013fooEv
+ ~dd7701(); // tgen
+ dd7701(); // tgen
+};
+//SIG(-1 dd7701) C1{ VBC2{ VBC3{ BC4{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7701 ::bar(){vfunc_called(this, "_ZN6dd77013barEv");}
+void dd7701 ::foo(){vfunc_called(this, "_ZN6dd77013fooEv");}
+dd7701 ::~dd7701(){ note_dtor("dd7701", this);} // tgen
+dd7701 ::dd7701(){ note_ctor("dd7701", this);} // tgen
+
+static void Test_dd7701()
+{
+ extern Class_Descriptor cd_dd7701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7701, buf);
+ dd7701 *dp, &lv = *(dp=new (buf) dd7701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,16), "dd7701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,16), "dd7701");
+ check_base_class_offset(lv, (cc701*), ABISELECT(16,8), "dd7701");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7701.d");
+ test_class_info(&lv, &cd_dd7701);
+ dp->~dd7701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7701(Test_dd7701, "dd7701", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7701C1Ev();
+extern void _ZN6dd7701D1Ev();
+Name_Map name_map_dd7701[] = {
+ NSPAIR(_ZN6dd7701C1Ev),
+ NSPAIR(_ZN6dd7701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+static Base_Class bases_dd7701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, 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 _ZTI6dd7701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__6dd7701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_dd7701[] = {
+ {&(_ZTV6dd7701[4]), 4,17},
+ {&(_ZTV6dd7701[11]), 11,17},
+ {&(_ZTV6dd7701[16]), 16,17},
+ {&(_tg__ZTV5cc701__6dd7701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__6dd7701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static VTBL_ENTRY alt_thunk_names683[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7701 = { "dd7701", // class name
+ bases_dd7701, 3,
+ &(vtc_dd7701[0]), // expected_vtbl_contents
+ &(vtt_dd7701[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7701),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names683,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07701 : dd7701 {
+ int e;
+ ~ee07701(); // tgen
+ ee07701(); // tgen
+};
+//SIG(1 ee07701) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07701 ::~ee07701(){ note_dtor("ee07701", this);} // tgen
+ee07701 ::ee07701(){ note_ctor("ee07701", this);} // tgen
+
+static void Test_ee07701()
+{
+ extern Class_Descriptor cd_ee07701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07701, buf);
+ ee07701 *dp, &lv = *(dp=new (buf) ee07701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee07701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee07701");
+ check_base_class_offset(lv, (cc701*)(dd7701*), ABISELECT(16,12), "ee07701");
+ check_base_class_offset(lv, (dd7701*), 0, "ee07701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07701.e");
+ test_class_info(&lv, &cd_ee07701);
+ dp->~ee07701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07701(Test_ee07701, "ee07701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07701C1Ev();
+extern void _ZN7ee07701D1Ev();
+Name_Map name_map_ee07701[] = {
+ NSPAIR(_ZN7ee07701C1Ev),
+ NSPAIR(_ZN7ee07701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd7701;
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static Base_Class bases_ee07701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7701__7ee07701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701__7ee07701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7701__7ee07701[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee07701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee07701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee07701[] = {
+ {&(_ZTV7ee07701[4]), 4,17},
+ {&(_tg__ZTV6dd7701__7ee07701[4]), 4,6},
+ {&(_tg__ZTV5cc701__6dd7701__7ee07701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd7701__7ee07701[3]), 3,4},
+ {&(_ZTV7ee07701[11]), 11,17},
+ {&(_ZTV7ee07701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee07701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee07701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07701[];
+extern VTBL_ENTRY _ZTV7ee07701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07701[];
+static VTBL_ENTRY alt_thunk_names684[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07701 = { "ee07701", // class name
+ bases_ee07701, 4,
+ &(vtc_ee07701[0]), // expected_vtbl_contents
+ &(vtt_ee07701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names684,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17701 : virtual dd7701 {
+ int e;
+ ~ee17701(); // tgen
+ ee17701(); // tgen
+};
+//SIG(1 ee17701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17701 ::~ee17701(){ note_dtor("ee17701", this);} // tgen
+ee17701 ::ee17701(){ note_ctor("ee17701", this);} // tgen
+
+static void Test_ee17701()
+{
+ extern Class_Descriptor cd_ee17701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17701, buf);
+ ee17701 *dp, &lv = *(dp=new (buf) ee17701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee17701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee17701");
+ check_base_class_offset(lv, (cc701*)(dd7701*), ABISELECT(32,16), "ee17701");
+ check_base_class_offset(lv, (dd7701*), ABISELECT(16,8), "ee17701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17701.e");
+ test_class_info(&lv, &cd_ee17701);
+ dp->~ee17701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17701(Test_ee17701, "ee17701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17701C1Ev();
+extern void _ZN7ee17701D1Ev();
+Name_Map name_map_ee17701[] = {
+ NSPAIR(_ZN7ee17701C1Ev),
+ NSPAIR(_ZN7ee17701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd7701;
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static Base_Class bases_ee17701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7701, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17701[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7701__7ee17701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701__7ee17701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7701__7ee17701[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee17701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee17701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee17701[] = {
+ {&(_ZTV7ee17701[5]), 5,24},
+ {&(_ZTV7ee17701[11]), 11,24},
+ {&(_ZTV7ee17701[18]), 18,24},
+ {&(_ZTV7ee17701[23]), 23,24},
+ {&(_tg__ZTV6dd7701__7ee17701[4]), 4,6},
+ {&(_tg__ZTV5cc701__6dd7701__7ee17701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd7701__7ee17701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee17701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee17701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17701[];
+extern VTBL_ENTRY _ZTV7ee17701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17701[];
+static VTBL_ENTRY alt_thunk_names685[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17701 = { "ee17701", // class name
+ bases_ee17701, 4,
+ &(vtc_ee17701[0]), // expected_vtbl_contents
+ &(vtt_ee17701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17701),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names685,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27701 : dd7701 {
+ int e;
+ virtual void foo(); // _ZN7ee277013fooEv
+ ~ee27701(); // tgen
+ ee27701(); // tgen
+};
+//SIG(1 ee27701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27701 ::foo(){vfunc_called(this, "_ZN7ee277013fooEv");}
+ee27701 ::~ee27701(){ note_dtor("ee27701", this);} // tgen
+ee27701 ::ee27701(){ note_ctor("ee27701", this);} // tgen
+
+static void Test_ee27701()
+{
+ extern Class_Descriptor cd_ee27701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27701, buf);
+ ee27701 *dp, &lv = *(dp=new (buf) ee27701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee27701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee27701");
+ check_base_class_offset(lv, (cc701*)(dd7701*), ABISELECT(16,12), "ee27701");
+ check_base_class_offset(lv, (dd7701*), 0, "ee27701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27701.e");
+ test_class_info(&lv, &cd_ee27701);
+ dp->~ee27701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27701(Test_ee27701, "ee27701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27701C1Ev();
+extern void _ZN7ee27701D1Ev();
+Name_Map name_map_ee27701[] = {
+ NSPAIR(_ZN7ee27701C1Ev),
+ NSPAIR(_ZN7ee27701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd7701;
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static Base_Class bases_ee27701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN7ee277013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277013fooEv,_ZTv0_n16_N7ee277013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277013fooEv,_ZThn12_N7ee277013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277013fooEv,_ZTv0_n12_N7ee277013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee277013fooEv,_ZThn20_N7ee277013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN7ee277013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277013fooEv,_ZTv0_n16_N7ee277013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277013fooEv,_ZTv0_n12_N7ee277013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7701__7ee27701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701__7ee27701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7701__7ee27701[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee27701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee27701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee27701[] = {
+ {&(_ZTV7ee27701[4]), 4,17},
+ {&(_tg__ZTV6dd7701__7ee27701[4]), 4,6},
+ {&(_tg__ZTV5cc701__6dd7701__7ee27701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd7701__7ee27701[3]), 3,4},
+ {&(_ZTV7ee27701[11]), 11,17},
+ {&(_ZTV7ee27701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee27701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee27701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27701[];
+extern VTBL_ENTRY _ZTV7ee27701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27701[];
+static VTBL_ENTRY alt_thunk_names686[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277013fooEv,_ZTv0_n12_N7ee277013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee277013fooEv,_ZThn20_N7ee277013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277013fooEv,_ZTv0_n16_N7ee277013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277013fooEv,_ZThn12_N7ee277013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27701 = { "ee27701", // class name
+ bases_ee27701, 4,
+ &(vtc_ee27701[0]), // expected_vtbl_contents
+ &(vtt_ee27701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names686,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37701 : virtual dd7701 {
+ int e;
+ virtual void foo(); // _ZN7ee377013fooEv
+ ~ee37701(); // tgen
+ ee37701(); // tgen
+};
+//SIG(1 ee37701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37701 ::foo(){vfunc_called(this, "_ZN7ee377013fooEv");}
+ee37701 ::~ee37701(){ note_dtor("ee37701", this);} // tgen
+ee37701 ::ee37701(){ note_ctor("ee37701", this);} // tgen
+
+static void Test_ee37701()
+{
+ extern Class_Descriptor cd_ee37701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37701, buf);
+ ee37701 *dp, &lv = *(dp=new (buf) ee37701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee37701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee37701");
+ check_base_class_offset(lv, (cc701*)(dd7701*), ABISELECT(32,16), "ee37701");
+ check_base_class_offset(lv, (dd7701*), ABISELECT(16,8), "ee37701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37701.e");
+ test_class_info(&lv, &cd_ee37701);
+ dp->~ee37701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37701(Test_ee37701, "ee37701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37701C1Ev();
+extern void _ZN7ee37701D1Ev();
+Name_Map name_map_ee37701[] = {
+ NSPAIR(_ZN7ee37701C1Ev),
+ NSPAIR(_ZN7ee37701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd7701;
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static Base_Class bases_ee37701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37701[];
+extern void _ZN7ee377013fooEv();
+extern void _ZN6dd77013barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377013fooEv,_ZTv0_n24_N7ee377013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377013fooEv,_ZThn8_N7ee377013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377013fooEv,_ZTv0_n16_N7ee377013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377013fooEv,_ZThn16_N7ee377013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377013fooEv,_ZTv0_n12_N7ee377013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee377013fooEv,_ZThn24_N7ee377013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37701[0]),
+ (VTBL_ENTRY)&_ZN7ee377013fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377013fooEv,_ZTv0_n24_N7ee377013fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377013fooEv,_ZTv0_n16_N7ee377013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377013fooEv,_ZTv0_n12_N7ee377013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7701__7ee37701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701__7ee37701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7701__7ee37701[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee37701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee37701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee37701[] = {
+ {&(_ZTV7ee37701[5]), 5,25},
+ {&(_ZTV7ee37701[12]), 12,25},
+ {&(_ZTV7ee37701[19]), 19,25},
+ {&(_ZTV7ee37701[24]), 24,25},
+ {&(_tg__ZTV6dd7701__7ee37701[4]), 4,6},
+ {&(_tg__ZTV5cc701__6dd7701__7ee37701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd7701__7ee37701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee37701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee37701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37701[];
+extern VTBL_ENTRY _ZTV7ee37701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37701[];
+static VTBL_ENTRY alt_thunk_names687[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377013fooEv,_ZTv0_n12_N7ee377013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee377013fooEv,_ZThn24_N7ee377013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377013fooEv,_ZTv0_n16_N7ee377013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377013fooEv,_ZThn16_N7ee377013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377013fooEv,_ZTv0_n24_N7ee377013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377013fooEv,_ZThn8_N7ee377013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37701 = { "ee37701", // class name
+ bases_ee37701, 4,
+ &(vtc_ee37701[0]), // expected_vtbl_contents
+ &(vtt_ee37701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37701),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names687,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47701 : dd7701 {
+ int e;
+ virtual void bar(); // _ZN7ee477013barEv
+ ~ee47701(); // tgen
+ ee47701(); // tgen
+};
+//SIG(1 ee47701) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47701 ::bar(){vfunc_called(this, "_ZN7ee477013barEv");}
+ee47701 ::~ee47701(){ note_dtor("ee47701", this);} // tgen
+ee47701 ::ee47701(){ note_ctor("ee47701", this);} // tgen
+
+static void Test_ee47701()
+{
+ extern Class_Descriptor cd_ee47701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47701, buf);
+ ee47701 *dp, &lv = *(dp=new (buf) ee47701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee47701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee47701");
+ check_base_class_offset(lv, (cc701*)(dd7701*), ABISELECT(16,12), "ee47701");
+ check_base_class_offset(lv, (dd7701*), 0, "ee47701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47701.e");
+ test_class_info(&lv, &cd_ee47701);
+ dp->~ee47701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47701(Test_ee47701, "ee47701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47701C1Ev();
+extern void _ZN7ee47701D1Ev();
+Name_Map name_map_ee47701[] = {
+ NSPAIR(_ZN7ee47701C1Ev),
+ NSPAIR(_ZN7ee47701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd7701;
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static Base_Class bases_ee47701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47701[];
+extern void _ZN7ee477013barEv();
+extern void _ZN6dd77013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477013barEv,_ZTv0_n20_N7ee477013barEv)();
+extern void ABISELECT(_ZThn16_N7ee477013barEv,_ZThn12_N7ee477013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47701[0]),
+ (VTBL_ENTRY)&_ZN7ee477013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477013barEv,_ZTv0_n20_N7ee477013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7701__7ee47701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701__7ee47701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7701__7ee47701[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee47701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee47701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee47701[] = {
+ {&(_ZTV7ee47701[4]), 4,17},
+ {&(_tg__ZTV6dd7701__7ee47701[4]), 4,6},
+ {&(_tg__ZTV5cc701__6dd7701__7ee47701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd7701__7ee47701[3]), 3,4},
+ {&(_ZTV7ee47701[11]), 11,17},
+ {&(_ZTV7ee47701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee47701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee47701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47701[];
+extern VTBL_ENTRY _ZTV7ee47701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47701[];
+static VTBL_ENTRY alt_thunk_names688[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477013barEv,_ZTv0_n20_N7ee477013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477013barEv,_ZThn12_N7ee477013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47701 = { "ee47701", // class name
+ bases_ee47701, 4,
+ &(vtc_ee47701[0]), // expected_vtbl_contents
+ &(vtt_ee47701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names688,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57701 : virtual dd7701 {
+ int e;
+ virtual void bar(); // _ZN7ee577013barEv
+ ~ee57701(); // tgen
+ ee57701(); // tgen
+};
+//SIG(1 ee57701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57701 ::bar(){vfunc_called(this, "_ZN7ee577013barEv");}
+ee57701 ::~ee57701(){ note_dtor("ee57701", this);} // tgen
+ee57701 ::ee57701(){ note_ctor("ee57701", this);} // tgen
+
+static void Test_ee57701()
+{
+ extern Class_Descriptor cd_ee57701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57701, buf);
+ ee57701 *dp, &lv = *(dp=new (buf) ee57701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee57701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee57701");
+ check_base_class_offset(lv, (cc701*)(dd7701*), ABISELECT(32,16), "ee57701");
+ check_base_class_offset(lv, (dd7701*), ABISELECT(16,8), "ee57701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57701.e");
+ test_class_info(&lv, &cd_ee57701);
+ dp->~ee57701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57701(Test_ee57701, "ee57701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57701C1Ev();
+extern void _ZN7ee57701D1Ev();
+Name_Map name_map_ee57701[] = {
+ NSPAIR(_ZN7ee57701C1Ev),
+ NSPAIR(_ZN7ee57701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd7701;
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static Base_Class bases_ee57701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7701, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57701[];
+extern void _ZN7ee577013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577013barEv,_ZTv0_n20_N7ee577013barEv)();
+extern void ABISELECT(_ZThn16_N7ee577013barEv,_ZThn8_N7ee577013barEv)() __attribute__((weak));
+extern void _ZN6dd77013fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577013barEv,_ZTv0_n20_N7ee577013barEv)();
+extern void ABISELECT(_ZThn32_N7ee577013barEv,_ZThn16_N7ee577013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57701[0]),
+ (VTBL_ENTRY)&_ZN7ee577013barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577013barEv,_ZTv0_n20_N7ee577013barEv),
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577013barEv,_ZTv0_n20_N7ee577013barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7701__7ee57701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701__7ee57701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7701__7ee57701[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee57701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee57701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee57701[] = {
+ {&(_ZTV7ee57701[5]), 5,25},
+ {&(_ZTV7ee57701[12]), 12,25},
+ {&(_ZTV7ee57701[19]), 19,25},
+ {&(_ZTV7ee57701[24]), 24,25},
+ {&(_tg__ZTV6dd7701__7ee57701[4]), 4,6},
+ {&(_tg__ZTV5cc701__6dd7701__7ee57701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd7701__7ee57701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee57701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee57701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57701[];
+extern VTBL_ENTRY _ZTV7ee57701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57701[];
+static VTBL_ENTRY alt_thunk_names689[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577013barEv,_ZTv0_n20_N7ee577013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577013barEv,_ZThn16_N7ee577013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577013barEv,_ZThn8_N7ee577013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57701 = { "ee57701", // class name
+ bases_ee57701, 4,
+ &(vtc_ee57701[0]), // expected_vtbl_contents
+ &(vtt_ee57701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57701),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names689,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67701 : dd7701 {
+ int e;
+ virtual void foo(); // _ZN7ee677013fooEv
+ virtual void bar(); // _ZN7ee677013barEv
+ ~ee67701(); // tgen
+ ee67701(); // tgen
+};
+//SIG(1 ee67701) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67701 ::foo(){vfunc_called(this, "_ZN7ee677013fooEv");}
+void ee67701 ::bar(){vfunc_called(this, "_ZN7ee677013barEv");}
+ee67701 ::~ee67701(){ note_dtor("ee67701", this);} // tgen
+ee67701 ::ee67701(){ note_ctor("ee67701", this);} // tgen
+
+static void Test_ee67701()
+{
+ extern Class_Descriptor cd_ee67701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67701, buf);
+ ee67701 *dp, &lv = *(dp=new (buf) ee67701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(32,20), "ee67701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(32,20), "ee67701");
+ check_base_class_offset(lv, (cc701*)(dd7701*), ABISELECT(16,12), "ee67701");
+ check_base_class_offset(lv, (dd7701*), 0, "ee67701");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67701.e");
+ test_class_info(&lv, &cd_ee67701);
+ dp->~ee67701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67701(Test_ee67701, "ee67701", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67701C1Ev();
+extern void _ZN7ee67701D1Ev();
+Name_Map name_map_ee67701[] = {
+ NSPAIR(_ZN7ee67701C1Ev),
+ NSPAIR(_ZN7ee67701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd7701;
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static Base_Class bases_ee67701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7701, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67701[];
+extern void _ZN7ee677013barEv();
+extern void _ZN7ee677013fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677013fooEv,_ZTv0_n16_N7ee677013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677013fooEv,_ZThn12_N7ee677013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677013barEv,_ZTv0_n20_N7ee677013barEv)();
+extern void ABISELECT(_ZThn16_N7ee677013barEv,_ZThn12_N7ee677013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677013fooEv,_ZTv0_n12_N7ee677013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee677013fooEv,_ZThn20_N7ee677013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67701[0]),
+ (VTBL_ENTRY)&_ZN7ee677013barEv,
+ (VTBL_ENTRY)&_ZN7ee677013fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677013fooEv,_ZTv0_n16_N7ee677013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677013barEv,_ZTv0_n20_N7ee677013barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677013fooEv,_ZTv0_n12_N7ee677013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7701__7ee67701[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701__7ee67701[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7701__7ee67701[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee67701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee67701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee67701[] = {
+ {&(_ZTV7ee67701[4]), 4,17},
+ {&(_tg__ZTV6dd7701__7ee67701[4]), 4,6},
+ {&(_tg__ZTV5cc701__6dd7701__7ee67701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd7701__7ee67701[3]), 3,4},
+ {&(_ZTV7ee67701[11]), 11,17},
+ {&(_ZTV7ee67701[16]), 16,17},
+ {&(_tg__ZTV5cc701__7ee67701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee67701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67701[];
+extern VTBL_ENTRY _ZTV7ee67701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67701[];
+static VTBL_ENTRY alt_thunk_names690[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn20_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn12_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn12_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677013fooEv,_ZTv0_n12_N7ee677013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677013fooEv,_ZThn20_N7ee677013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677013barEv,_ZTv0_n20_N7ee677013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677013barEv,_ZThn12_N7ee677013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677013fooEv,_ZTv0_n16_N7ee677013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677013fooEv,_ZThn12_N7ee677013fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67701 = { "ee67701", // class name
+ bases_ee67701, 4,
+ &(vtc_ee67701[0]), // expected_vtbl_contents
+ &(vtt_ee67701[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67701),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67701),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67701),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names690,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77701 : virtual dd7701 {
+ int e;
+ virtual void foo(); // _ZN7ee777013fooEv
+ virtual void bar(); // _ZN7ee777013barEv
+ ~ee77701(); // tgen
+ ee77701(); // tgen
+};
+//SIG(1 ee77701) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77701 ::foo(){vfunc_called(this, "_ZN7ee777013fooEv");}
+void ee77701 ::bar(){vfunc_called(this, "_ZN7ee777013barEv");}
+ee77701 ::~ee77701(){ note_dtor("ee77701", this);} // tgen
+ee77701 ::ee77701(){ note_ctor("ee77701", this);} // tgen
+
+static void Test_ee77701()
+{
+ extern Class_Descriptor cd_ee77701;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77701, buf);
+ ee77701 *dp, &lv = *(dp=new (buf) ee77701());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77701)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77701)");
+ check_base_class_offset(lv, (aa1*)(bb01*), ABISELECT(48,24), "ee77701");
+ check_base_class_offset(lv, (bb01*)(cc701*), ABISELECT(48,24), "ee77701");
+ check_base_class_offset(lv, (cc701*)(dd7701*), ABISELECT(32,16), "ee77701");
+ check_base_class_offset(lv, (dd7701*), ABISELECT(16,8), "ee77701");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77701.e");
+ test_class_info(&lv, &cd_ee77701);
+ dp->~ee77701();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77701(Test_ee77701, "ee77701", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77701C1Ev();
+extern void _ZN7ee77701D1Ev();
+Name_Map name_map_ee77701[] = {
+ NSPAIR(_ZN7ee77701C1Ev),
+ NSPAIR(_ZN7ee77701D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb01;
+extern VTBL_ENTRY _ZTI4bb01[];
+extern VTBL_ENTRY _ZTV4bb01[];
+extern Class_Descriptor cd_cc701;
+extern VTBL_ENTRY _ZTI5cc701[];
+extern VTBL_ENTRY _ZTV5cc701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc701[];
+extern Class_Descriptor cd_dd7701;
+extern VTBL_ENTRY _ZTI6dd7701[];
+extern VTBL_ENTRY _ZTV6dd7701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7701[];
+static Base_Class bases_ee77701[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb01, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc701, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7701, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77701[];
+extern void _ZN7ee777013fooEv();
+extern void _ZN7ee777013barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777013barEv,_ZTv0_n20_N7ee777013barEv)();
+extern void ABISELECT(_ZThn16_N7ee777013barEv,_ZThn8_N7ee777013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777013fooEv,_ZTv0_n24_N7ee777013fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777013fooEv,_ZThn8_N7ee777013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777013fooEv,_ZTv0_n16_N7ee777013fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777013fooEv,_ZThn16_N7ee777013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777013barEv,_ZTv0_n20_N7ee777013barEv)();
+extern void ABISELECT(_ZThn32_N7ee777013barEv,_ZThn16_N7ee777013barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777013fooEv,_ZTv0_n12_N7ee777013fooEv)();
+extern void ABISELECT(_ZThn48_N7ee777013fooEv,_ZThn24_N7ee777013fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77701[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77701[0]),
+ (VTBL_ENTRY)&_ZN7ee777013fooEv,
+ (VTBL_ENTRY)&_ZN7ee777013barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777013barEv,_ZTv0_n20_N7ee777013barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777013fooEv,_ZTv0_n24_N7ee777013fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777013fooEv,_ZTv0_n16_N7ee777013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777013barEv,_ZTv0_n20_N7ee777013barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777013fooEv,_ZTv0_n12_N7ee777013fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77701[];
+extern void _ZN6dd77013barEv();
+extern void _ZN6dd77013fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7701__7ee77701[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&_ZN6dd77013barEv,
+ (VTBL_ENTRY)&_ZN6dd77013fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv)();
+extern void ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc701__6dd7701__7ee77701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__6dd7701__7ee77701[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv),
+};
+extern void _ZN5cc7013fooEv();
+extern void _ZN5cc7013barEv();
+static VTBL_ENTRY _tg__ZTV5cc701__7ee77701[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&_ZN5cc7013fooEv,
+ (VTBL_ENTRY)&_ZN5cc7013barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa14bb01__5cc701__7ee77701[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc701[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv),
+};
+static VTT_ENTRY vtt_ee77701[] = {
+ {&(_ZTV7ee77701[5]), 5,26},
+ {&(_ZTV7ee77701[13]), 13,26},
+ {&(_ZTV7ee77701[20]), 20,26},
+ {&(_ZTV7ee77701[25]), 25,26},
+ {&(_tg__ZTV6dd7701__7ee77701[4]), 4,6},
+ {&(_tg__ZTV5cc701__6dd7701__7ee77701[5]), 5,7},
+ {&(_tg__ZTV3aa14bb01__6dd7701__7ee77701[3]), 3,4},
+ {&(_tg__ZTV5cc701__7ee77701[3]), 3,5},
+ {&(_tg__ZTV3aa14bb01__5cc701__7ee77701[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77701[];
+extern VTBL_ENTRY _ZTV7ee77701[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77701[];
+static VTBL_ENTRY alt_thunk_names691[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7013fooEv,_ZTv0_n12_N5cc7013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7013fooEv,_ZThn8_N5cc7013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77013fooEv,_ZTv0_n12_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77013fooEv,_ZThn16_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77013barEv,_ZTv0_n20_N6dd77013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013barEv,_ZThn8_N6dd77013barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77013fooEv,_ZTv0_n16_N6dd77013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77013fooEv,_ZThn8_N6dd77013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777013fooEv,_ZTv0_n12_N7ee777013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777013fooEv,_ZThn24_N7ee777013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777013fooEv,_ZTv0_n16_N7ee777013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777013fooEv,_ZThn16_N7ee777013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777013fooEv,_ZTv0_n24_N7ee777013fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777013fooEv,_ZThn8_N7ee777013fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777013barEv,_ZTv0_n20_N7ee777013barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777013barEv,_ZThn16_N7ee777013barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777013barEv,_ZThn8_N7ee777013barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77701 = { "ee77701", // class name
+ bases_ee77701, 4,
+ &(vtc_ee77701[0]), // expected_vtbl_contents
+ &(vtt_ee77701[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77701),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77701),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77701),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names691,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb02 : aa2 {
+ int b;
+ ~bb02(); // tgen
+ bb02(); // tgen
+};
+//SIG(-1 bb02) C1{ BC2{ v1 v2 Fi} Fi}
+
+
+bb02 ::~bb02(){ note_dtor("bb02", this);} // tgen
+bb02 ::bb02(){ note_ctor("bb02", this);} // tgen
+
+static void Test_bb02()
+{
+ extern Class_Descriptor cd_bb02;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb02, buf);
+ bb02 *dp, &lv = *(dp=new (buf) bb02());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb02)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb02)");
+ check_base_class_offset(lv, (aa2*), 0, "bb02");
+ check_field_offset(lv, b, ABISELECT(12,8), "bb02.b");
+ test_class_info(&lv, &cd_bb02);
+ dp->~bb02();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vbb02(Test_bb02, "bb02", ABISELECT(16,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb02C1Ev();
+extern void _ZN4bb02D1Ev();
+Name_Map name_map_bb02[] = {
+ NSPAIR(_ZN4bb02C1Ev),
+ NSPAIR(_ZN4bb02D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+static Base_Class bases_bb02[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb02[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_bb02[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb02[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+Class_Descriptor cd_bb02 = { "bb02", // class name
+ bases_bb02, 1,
+ &(vtc_bb02[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb02),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV4bb02),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 1, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc002 : bb02 {
+ int c;
+ ~cc002(); // tgen
+ cc002(); // tgen
+};
+//SIG(-1 cc002) C1{ BC2{ BC3{ v1 v2 Fi} Fi} Fi}
+
+
+cc002 ::~cc002(){ note_dtor("cc002", this);} // tgen
+cc002 ::cc002(){ note_ctor("cc002", this);} // tgen
+
+static void Test_cc002()
+{
+ extern Class_Descriptor cd_cc002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc002, buf);
+ cc002 *dp, &lv = *(dp=new (buf) cc002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc002)");
+ check_base_class_offset(lv, (aa2*)(bb02*), 0, "cc002");
+ check_base_class_offset(lv, (bb02*), 0, "cc002");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc002.c");
+ test_class_info(&lv, &cd_cc002);
+ dp->~cc002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc002(Test_cc002, "cc002", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc002C1Ev();
+extern void _ZN5cc002D1Ev();
+Name_Map name_map_cc002[] = {
+ NSPAIR(_ZN5cc002C1Ev),
+ NSPAIR(_ZN5cc002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+static Base_Class bases_cc002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_cc002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+Class_Descriptor cd_cc002 = { "cc002", // class name
+ bases_cc002, 2,
+ &(vtc_cc002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0002 : cc002 {
+ int d;
+ ~dd0002(); // tgen
+ dd0002(); // tgen
+};
+//SIG(-1 dd0002) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} Fi} Fi} Fi}
+
+
+dd0002 ::~dd0002(){ note_dtor("dd0002", this);} // tgen
+dd0002 ::dd0002(){ note_ctor("dd0002", this);} // tgen
+
+static void Test_dd0002()
+{
+ extern Class_Descriptor cd_dd0002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0002, buf);
+ dd0002 *dp, &lv = *(dp=new (buf) dd0002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), 0, "dd0002");
+ check_base_class_offset(lv, (bb02*)(cc002*), 0, "dd0002");
+ check_base_class_offset(lv, (cc002*), 0, "dd0002");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0002.d");
+ test_class_info(&lv, &cd_dd0002);
+ dp->~dd0002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0002(Test_dd0002, "dd0002", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0002C1Ev();
+extern void _ZN6dd0002D1Ev();
+Name_Map name_map_dd0002[] = {
+ NSPAIR(_ZN6dd0002C1Ev),
+ NSPAIR(_ZN6dd0002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+static Base_Class bases_dd0002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd0002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+Class_Descriptor cd_dd0002 = { "dd0002", // class name
+ bases_dd0002, 3,
+ &(vtc_dd0002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00002 : dd0002 {
+ int e;
+ ~ee00002(); // tgen
+ ee00002(); // tgen
+};
+//SIG(1 ee00002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} Fi}
+
+
+ee00002 ::~ee00002(){ note_dtor("ee00002", this);} // tgen
+ee00002 ::ee00002(){ note_ctor("ee00002", this);} // tgen
+
+static void Test_ee00002()
+{
+ extern Class_Descriptor cd_ee00002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00002, buf);
+ ee00002 *dp, &lv = *(dp=new (buf) ee00002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd0002*), 0, "ee00002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd0002*), 0, "ee00002");
+ check_base_class_offset(lv, (cc002*)(dd0002*), 0, "ee00002");
+ check_base_class_offset(lv, (dd0002*), 0, "ee00002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00002.e");
+ test_class_info(&lv, &cd_ee00002);
+ dp->~ee00002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00002(Test_ee00002, "ee00002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00002C1Ev();
+extern void _ZN7ee00002D1Ev();
+Name_Map name_map_ee00002[] = {
+ NSPAIR(_ZN7ee00002C1Ev),
+ NSPAIR(_ZN7ee00002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd0002;
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+static Base_Class bases_ee00002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee00002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00002[];
+extern VTBL_ENTRY _ZTV7ee00002[];
+Class_Descriptor cd_ee00002 = { "ee00002", // class name
+ bases_ee00002, 4,
+ &(vtc_ee00002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10002 : virtual dd0002 {
+ int e;
+ ~ee10002(); // tgen
+ ee10002(); // tgen
+};
+//SIG(1 ee10002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} Fi}
+
+
+ee10002 ::~ee10002(){ note_dtor("ee10002", this);} // tgen
+ee10002 ::ee10002(){ note_ctor("ee10002", this);} // tgen
+
+static void Test_ee10002()
+{
+ extern Class_Descriptor cd_ee10002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10002, buf);
+ ee10002 *dp, &lv = *(dp=new (buf) ee10002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd0002*), ABISELECT(16,8), "ee10002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd0002*), ABISELECT(16,8), "ee10002");
+ check_base_class_offset(lv, (cc002*)(dd0002*), ABISELECT(16,8), "ee10002");
+ check_base_class_offset(lv, (dd0002*), ABISELECT(16,8), "ee10002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10002.e");
+ test_class_info(&lv, &cd_ee10002);
+ dp->~ee10002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10002(Test_ee10002, "ee10002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10002C1Ev();
+extern void _ZN7ee10002D1Ev();
+Name_Map name_map_ee10002[] = {
+ NSPAIR(_ZN7ee10002C1Ev),
+ NSPAIR(_ZN7ee10002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd0002;
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+static Base_Class bases_ee10002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee10002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10002[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10002[];
+static VTT_ENTRY vtt_ee10002[] = {
+ {&(_ZTV7ee10002[3]), 3,9},
+ {&(_ZTV7ee10002[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10002[];
+extern VTBL_ENTRY _ZTV7ee10002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10002[];
+Class_Descriptor cd_ee10002 = { "ee10002", // class name
+ bases_ee10002, 4,
+ &(vtc_ee10002[0]), // expected_vtbl_contents
+ &(vtt_ee10002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10002),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20002 : dd0002 {
+ int e;
+ virtual void foo(); // _ZN7ee200023fooEv
+ ~ee20002(); // tgen
+ ee20002(); // tgen
+};
+//SIG(1 ee20002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee20002 ::foo(){vfunc_called(this, "_ZN7ee200023fooEv");}
+ee20002 ::~ee20002(){ note_dtor("ee20002", this);} // tgen
+ee20002 ::ee20002(){ note_ctor("ee20002", this);} // tgen
+
+static void Test_ee20002()
+{
+ extern Class_Descriptor cd_ee20002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20002, buf);
+ ee20002 *dp, &lv = *(dp=new (buf) ee20002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd0002*), 0, "ee20002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd0002*), 0, "ee20002");
+ check_base_class_offset(lv, (cc002*)(dd0002*), 0, "ee20002");
+ check_base_class_offset(lv, (dd0002*), 0, "ee20002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20002.e");
+ test_class_info(&lv, &cd_ee20002);
+ dp->~ee20002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20002(Test_ee20002, "ee20002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20002C1Ev();
+extern void _ZN7ee20002D1Ev();
+Name_Map name_map_ee20002[] = {
+ NSPAIR(_ZN7ee20002C1Ev),
+ NSPAIR(_ZN7ee20002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd0002;
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+static Base_Class bases_ee20002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20002[];
+extern void _ZN7ee200023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee20002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20002[0]),
+ (VTBL_ENTRY)&_ZN7ee200023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20002[];
+extern VTBL_ENTRY _ZTV7ee20002[];
+Class_Descriptor cd_ee20002 = { "ee20002", // class name
+ bases_ee20002, 4,
+ &(vtc_ee20002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30002 : virtual dd0002 {
+ int e;
+ virtual void foo(); // _ZN7ee300023fooEv
+ ~ee30002(); // tgen
+ ee30002(); // tgen
+};
+//SIG(1 ee30002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee30002 ::foo(){vfunc_called(this, "_ZN7ee300023fooEv");}
+ee30002 ::~ee30002(){ note_dtor("ee30002", this);} // tgen
+ee30002 ::ee30002(){ note_ctor("ee30002", this);} // tgen
+
+static void Test_ee30002()
+{
+ extern Class_Descriptor cd_ee30002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30002, buf);
+ ee30002 *dp, &lv = *(dp=new (buf) ee30002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd0002*), ABISELECT(16,8), "ee30002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd0002*), ABISELECT(16,8), "ee30002");
+ check_base_class_offset(lv, (cc002*)(dd0002*), ABISELECT(16,8), "ee30002");
+ check_base_class_offset(lv, (dd0002*), ABISELECT(16,8), "ee30002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30002.e");
+ test_class_info(&lv, &cd_ee30002);
+ dp->~ee30002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30002(Test_ee30002, "ee30002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30002C1Ev();
+extern void _ZN7ee30002D1Ev();
+Name_Map name_map_ee30002[] = {
+ NSPAIR(_ZN7ee30002C1Ev),
+ NSPAIR(_ZN7ee30002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd0002;
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+static Base_Class bases_ee30002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30002[];
+extern void _ZN7ee300023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300023fooEv,_ZTv0_n12_N7ee300023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee300023fooEv,_ZThn8_N7ee300023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee30002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30002[0]),
+ (VTBL_ENTRY)&_ZN7ee300023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300023fooEv,_ZTv0_n12_N7ee300023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30002[];
+static VTT_ENTRY vtt_ee30002[] = {
+ {&(_ZTV7ee30002[3]), 3,10},
+ {&(_ZTV7ee30002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30002[];
+extern VTBL_ENTRY _ZTV7ee30002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30002[];
+static VTBL_ENTRY alt_thunk_names692[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300023fooEv,_ZTv0_n12_N7ee300023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee300023fooEv,_ZThn8_N7ee300023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30002 = { "ee30002", // class name
+ bases_ee30002, 4,
+ &(vtc_ee30002[0]), // expected_vtbl_contents
+ &(vtt_ee30002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names692,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40002 : dd0002 {
+ int e;
+ virtual void bar(); // _ZN7ee400023barEv
+ ~ee40002(); // tgen
+ ee40002(); // tgen
+};
+//SIG(1 ee40002) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee40002 ::bar(){vfunc_called(this, "_ZN7ee400023barEv");}
+ee40002 ::~ee40002(){ note_dtor("ee40002", this);} // tgen
+ee40002 ::ee40002(){ note_ctor("ee40002", this);} // tgen
+
+static void Test_ee40002()
+{
+ extern Class_Descriptor cd_ee40002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40002, buf);
+ ee40002 *dp, &lv = *(dp=new (buf) ee40002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd0002*), 0, "ee40002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd0002*), 0, "ee40002");
+ check_base_class_offset(lv, (cc002*)(dd0002*), 0, "ee40002");
+ check_base_class_offset(lv, (dd0002*), 0, "ee40002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40002.e");
+ test_class_info(&lv, &cd_ee40002);
+ dp->~ee40002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40002(Test_ee40002, "ee40002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40002C1Ev();
+extern void _ZN7ee40002D1Ev();
+Name_Map name_map_ee40002[] = {
+ NSPAIR(_ZN7ee40002C1Ev),
+ NSPAIR(_ZN7ee40002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd0002;
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+static Base_Class bases_ee40002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN7ee400023barEv();
+static VTBL_ENTRY vtc_ee40002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN7ee400023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40002[];
+extern VTBL_ENTRY _ZTV7ee40002[];
+Class_Descriptor cd_ee40002 = { "ee40002", // class name
+ bases_ee40002, 4,
+ &(vtc_ee40002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50002 : virtual dd0002 {
+ int e;
+ virtual void bar(); // _ZN7ee500023barEv
+ ~ee50002(); // tgen
+ ee50002(); // tgen
+};
+//SIG(1 ee50002) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee50002 ::bar(){vfunc_called(this, "_ZN7ee500023barEv");}
+ee50002 ::~ee50002(){ note_dtor("ee50002", this);} // tgen
+ee50002 ::ee50002(){ note_ctor("ee50002", this);} // tgen
+
+static void Test_ee50002()
+{
+ extern Class_Descriptor cd_ee50002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50002, buf);
+ ee50002 *dp, &lv = *(dp=new (buf) ee50002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd0002*), ABISELECT(16,8), "ee50002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd0002*), ABISELECT(16,8), "ee50002");
+ check_base_class_offset(lv, (cc002*)(dd0002*), ABISELECT(16,8), "ee50002");
+ check_base_class_offset(lv, (dd0002*), ABISELECT(16,8), "ee50002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50002.e");
+ test_class_info(&lv, &cd_ee50002);
+ dp->~ee50002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50002(Test_ee50002, "ee50002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50002C1Ev();
+extern void _ZN7ee50002D1Ev();
+Name_Map name_map_ee50002[] = {
+ NSPAIR(_ZN7ee50002C1Ev),
+ NSPAIR(_ZN7ee50002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd0002;
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+static Base_Class bases_ee50002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50002[];
+extern void _ZN7ee500023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee500023barEv,_ZTv0_n16_N7ee500023barEv)();
+extern void ABISELECT(_ZThn16_N7ee500023barEv,_ZThn8_N7ee500023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50002[0]),
+ (VTBL_ENTRY)&_ZN7ee500023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee500023barEv,_ZTv0_n16_N7ee500023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50002[];
+static VTT_ENTRY vtt_ee50002[] = {
+ {&(_ZTV7ee50002[3]), 3,10},
+ {&(_ZTV7ee50002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50002[];
+extern VTBL_ENTRY _ZTV7ee50002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50002[];
+static VTBL_ENTRY alt_thunk_names693[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee500023barEv,_ZTv0_n16_N7ee500023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee500023barEv,_ZThn8_N7ee500023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50002 = { "ee50002", // class name
+ bases_ee50002, 4,
+ &(vtc_ee50002[0]), // expected_vtbl_contents
+ &(vtt_ee50002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names693,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60002 : dd0002 {
+ int e;
+ virtual void foo(); // _ZN7ee600023fooEv
+ virtual void bar(); // _ZN7ee600023barEv
+ ~ee60002(); // tgen
+ ee60002(); // tgen
+};
+//SIG(1 ee60002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60002 ::foo(){vfunc_called(this, "_ZN7ee600023fooEv");}
+void ee60002 ::bar(){vfunc_called(this, "_ZN7ee600023barEv");}
+ee60002 ::~ee60002(){ note_dtor("ee60002", this);} // tgen
+ee60002 ::ee60002(){ note_ctor("ee60002", this);} // tgen
+
+static void Test_ee60002()
+{
+ extern Class_Descriptor cd_ee60002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60002, buf);
+ ee60002 *dp, &lv = *(dp=new (buf) ee60002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd0002*), 0, "ee60002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd0002*), 0, "ee60002");
+ check_base_class_offset(lv, (cc002*)(dd0002*), 0, "ee60002");
+ check_base_class_offset(lv, (dd0002*), 0, "ee60002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60002.e");
+ test_class_info(&lv, &cd_ee60002);
+ dp->~ee60002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60002(Test_ee60002, "ee60002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60002C1Ev();
+extern void _ZN7ee60002D1Ev();
+Name_Map name_map_ee60002[] = {
+ NSPAIR(_ZN7ee60002C1Ev),
+ NSPAIR(_ZN7ee60002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd0002;
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+static Base_Class bases_ee60002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60002[];
+extern void _ZN7ee600023fooEv();
+extern void _ZN7ee600023barEv();
+static VTBL_ENTRY vtc_ee60002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60002[0]),
+ (VTBL_ENTRY)&_ZN7ee600023fooEv,
+ (VTBL_ENTRY)&_ZN7ee600023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60002[];
+extern VTBL_ENTRY _ZTV7ee60002[];
+Class_Descriptor cd_ee60002 = { "ee60002", // class name
+ bases_ee60002, 4,
+ &(vtc_ee60002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70002 : virtual dd0002 {
+ int e;
+ virtual void foo(); // _ZN7ee700023fooEv
+ virtual void bar(); // _ZN7ee700023barEv
+ ~ee70002(); // tgen
+ ee70002(); // tgen
+};
+//SIG(1 ee70002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70002 ::foo(){vfunc_called(this, "_ZN7ee700023fooEv");}
+void ee70002 ::bar(){vfunc_called(this, "_ZN7ee700023barEv");}
+ee70002 ::~ee70002(){ note_dtor("ee70002", this);} // tgen
+ee70002 ::ee70002(){ note_ctor("ee70002", this);} // tgen
+
+static void Test_ee70002()
+{
+ extern Class_Descriptor cd_ee70002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70002, buf);
+ ee70002 *dp, &lv = *(dp=new (buf) ee70002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd0002*), ABISELECT(16,8), "ee70002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd0002*), ABISELECT(16,8), "ee70002");
+ check_base_class_offset(lv, (cc002*)(dd0002*), ABISELECT(16,8), "ee70002");
+ check_base_class_offset(lv, (dd0002*), ABISELECT(16,8), "ee70002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70002.e");
+ test_class_info(&lv, &cd_ee70002);
+ dp->~ee70002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70002(Test_ee70002, "ee70002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70002C1Ev();
+extern void _ZN7ee70002D1Ev();
+Name_Map name_map_ee70002[] = {
+ NSPAIR(_ZN7ee70002C1Ev),
+ NSPAIR(_ZN7ee70002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd0002;
+extern VTBL_ENTRY _ZTI6dd0002[];
+extern VTBL_ENTRY _ZTV6dd0002[];
+static Base_Class bases_ee70002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70002[];
+extern void _ZN7ee700023fooEv();
+extern void _ZN7ee700023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee700023fooEv,_ZTv0_n12_N7ee700023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee700023fooEv,_ZThn8_N7ee700023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee700023barEv,_ZTv0_n16_N7ee700023barEv)();
+extern void ABISELECT(_ZThn16_N7ee700023barEv,_ZThn8_N7ee700023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70002[0]),
+ (VTBL_ENTRY)&_ZN7ee700023fooEv,
+ (VTBL_ENTRY)&_ZN7ee700023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700023fooEv,_ZTv0_n12_N7ee700023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700023barEv,_ZTv0_n16_N7ee700023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70002[];
+static VTT_ENTRY vtt_ee70002[] = {
+ {&(_ZTV7ee70002[3]), 3,11},
+ {&(_ZTV7ee70002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70002[];
+extern VTBL_ENTRY _ZTV7ee70002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70002[];
+static VTBL_ENTRY alt_thunk_names694[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700023barEv,_ZTv0_n16_N7ee700023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700023barEv,_ZThn8_N7ee700023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700023fooEv,_ZTv0_n12_N7ee700023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700023fooEv,_ZThn8_N7ee700023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70002 = { "ee70002", // class name
+ bases_ee70002, 4,
+ &(vtc_ee70002[0]), // expected_vtbl_contents
+ &(vtt_ee70002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names694,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1002 : virtual cc002 {
+ int d;
+ ~dd1002(); // tgen
+ dd1002(); // tgen
+};
+//SIG(-1 dd1002) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} Fi} Fi} Fi}
+
+
+dd1002 ::~dd1002(){ note_dtor("dd1002", this);} // tgen
+dd1002 ::dd1002(){ note_ctor("dd1002", this);} // tgen
+
+static void Test_dd1002()
+{
+ extern Class_Descriptor cd_dd1002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1002, buf);
+ dd1002 *dp, &lv = *(dp=new (buf) dd1002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,8), "dd1002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,8), "dd1002");
+ check_base_class_offset(lv, (cc002*), ABISELECT(16,8), "dd1002");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1002.d");
+ test_class_info(&lv, &cd_dd1002);
+ dp->~dd1002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1002(Test_dd1002, "dd1002", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1002C1Ev();
+extern void _ZN6dd1002D1Ev();
+Name_Map name_map_dd1002[] = {
+ NSPAIR(_ZN6dd1002C1Ev),
+ NSPAIR(_ZN6dd1002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+static Base_Class bases_dd1002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd1002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1002[];
+static VTT_ENTRY vtt_dd1002[] = {
+ {&(_ZTV6dd1002[3]), 3,9},
+ {&(_ZTV6dd1002[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+Class_Descriptor cd_dd1002 = { "dd1002", // class name
+ bases_dd1002, 3,
+ &(vtc_dd1002[0]), // expected_vtbl_contents
+ &(vtt_dd1002[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1002),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1002),2, //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 ee01002 : dd1002 {
+ int e;
+ ~ee01002(); // tgen
+ ee01002(); // tgen
+};
+//SIG(1 ee01002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} Fi}
+
+
+ee01002 ::~ee01002(){ note_dtor("ee01002", this);} // tgen
+ee01002 ::ee01002(){ note_ctor("ee01002", this);} // tgen
+
+static void Test_ee01002()
+{
+ extern Class_Descriptor cd_ee01002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01002, buf);
+ ee01002 *dp, &lv = *(dp=new (buf) ee01002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee01002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee01002");
+ check_base_class_offset(lv, (cc002*)(dd1002*), ABISELECT(16,12), "ee01002");
+ check_base_class_offset(lv, (dd1002*), 0, "ee01002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01002.e");
+ test_class_info(&lv, &cd_ee01002);
+ dp->~ee01002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01002(Test_ee01002, "ee01002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01002C1Ev();
+extern void _ZN7ee01002D1Ev();
+Name_Map name_map_ee01002[] = {
+ NSPAIR(_ZN7ee01002C1Ev),
+ NSPAIR(_ZN7ee01002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd1002;
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+static Base_Class bases_ee01002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee01002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01002[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01002[];
+static VTBL_ENTRY _tg__ZTV6dd1002__7ee01002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd1002__7ee01002[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee01002[] = {
+ {&(_ZTV7ee01002[3]), 3,9},
+ {&(_tg__ZTV6dd1002__7ee01002[3]), 3,3},
+ {&(_tg__ZTV3aa24bb025cc002__6dd1002__7ee01002[4]), 4,6},
+ {&(_ZTV7ee01002[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01002[];
+extern VTBL_ENTRY _ZTV7ee01002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01002[];
+Class_Descriptor cd_ee01002 = { "ee01002", // class name
+ bases_ee01002, 4,
+ &(vtc_ee01002[0]), // expected_vtbl_contents
+ &(vtt_ee01002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01002),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11002 : virtual dd1002 {
+ int e;
+ ~ee11002(); // tgen
+ ee11002(); // tgen
+};
+//SIG(1 ee11002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} Fi}
+
+
+ee11002 ::~ee11002(){ note_dtor("ee11002", this);} // tgen
+ee11002 ::ee11002(){ note_ctor("ee11002", this);} // tgen
+
+static void Test_ee11002()
+{
+ extern Class_Descriptor cd_ee11002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11002, buf);
+ ee11002 *dp, &lv = *(dp=new (buf) ee11002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee11002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee11002");
+ check_base_class_offset(lv, (cc002*)(dd1002*), ABISELECT(32,16), "ee11002");
+ check_base_class_offset(lv, (dd1002*), ABISELECT(16,8), "ee11002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11002.e");
+ test_class_info(&lv, &cd_ee11002);
+ dp->~ee11002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11002(Test_ee11002, "ee11002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11002C1Ev();
+extern void _ZN7ee11002D1Ev();
+Name_Map name_map_ee11002[] = {
+ NSPAIR(_ZN7ee11002C1Ev),
+ NSPAIR(_ZN7ee11002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd1002;
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+static Base_Class bases_ee11002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee11002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11002[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11002[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11002[];
+static VTBL_ENTRY _tg__ZTV6dd1002__7ee11002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd1002__7ee11002[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee11002[] = {
+ {&(_ZTV7ee11002[4]), 4,13},
+ {&(_ZTV7ee11002[7]), 7,13},
+ {&(_ZTV7ee11002[11]), 11,13},
+ {&(_tg__ZTV6dd1002__7ee11002[3]), 3,3},
+ {&(_tg__ZTV3aa24bb025cc002__6dd1002__7ee11002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11002[];
+extern VTBL_ENTRY _ZTV7ee11002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11002[];
+Class_Descriptor cd_ee11002 = { "ee11002", // class name
+ bases_ee11002, 4,
+ &(vtc_ee11002[0]), // expected_vtbl_contents
+ &(vtt_ee11002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11002),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21002 : dd1002 {
+ int e;
+ virtual void foo(); // _ZN7ee210023fooEv
+ ~ee21002(); // tgen
+ ee21002(); // tgen
+};
+//SIG(1 ee21002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee21002 ::foo(){vfunc_called(this, "_ZN7ee210023fooEv");}
+ee21002 ::~ee21002(){ note_dtor("ee21002", this);} // tgen
+ee21002 ::ee21002(){ note_ctor("ee21002", this);} // tgen
+
+static void Test_ee21002()
+{
+ extern Class_Descriptor cd_ee21002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21002, buf);
+ ee21002 *dp, &lv = *(dp=new (buf) ee21002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee21002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee21002");
+ check_base_class_offset(lv, (cc002*)(dd1002*), ABISELECT(16,12), "ee21002");
+ check_base_class_offset(lv, (dd1002*), 0, "ee21002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21002.e");
+ test_class_info(&lv, &cd_ee21002);
+ dp->~ee21002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21002(Test_ee21002, "ee21002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21002C1Ev();
+extern void _ZN7ee21002D1Ev();
+Name_Map name_map_ee21002[] = {
+ NSPAIR(_ZN7ee21002C1Ev),
+ NSPAIR(_ZN7ee21002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd1002;
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+static Base_Class bases_ee21002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21002[];
+extern void _ZN7ee210023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210023fooEv,_ZTv0_n12_N7ee210023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee210023fooEv,_ZThn12_N7ee210023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee21002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21002[0]),
+ (VTBL_ENTRY)&_ZN7ee210023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210023fooEv,_ZTv0_n12_N7ee210023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21002[];
+static VTBL_ENTRY _tg__ZTV6dd1002__7ee21002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd1002__7ee21002[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee21002[] = {
+ {&(_ZTV7ee21002[3]), 3,10},
+ {&(_tg__ZTV6dd1002__7ee21002[3]), 3,3},
+ {&(_tg__ZTV3aa24bb025cc002__6dd1002__7ee21002[4]), 4,6},
+ {&(_ZTV7ee21002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21002[];
+extern VTBL_ENTRY _ZTV7ee21002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21002[];
+static VTBL_ENTRY alt_thunk_names695[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210023fooEv,_ZTv0_n12_N7ee210023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee210023fooEv,_ZThn12_N7ee210023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21002 = { "ee21002", // class name
+ bases_ee21002, 4,
+ &(vtc_ee21002[0]), // expected_vtbl_contents
+ &(vtt_ee21002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names695,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31002 : virtual dd1002 {
+ int e;
+ virtual void foo(); // _ZN7ee310023fooEv
+ ~ee31002(); // tgen
+ ee31002(); // tgen
+};
+//SIG(1 ee31002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee31002 ::foo(){vfunc_called(this, "_ZN7ee310023fooEv");}
+ee31002 ::~ee31002(){ note_dtor("ee31002", this);} // tgen
+ee31002 ::ee31002(){ note_ctor("ee31002", this);} // tgen
+
+static void Test_ee31002()
+{
+ extern Class_Descriptor cd_ee31002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31002, buf);
+ ee31002 *dp, &lv = *(dp=new (buf) ee31002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee31002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee31002");
+ check_base_class_offset(lv, (cc002*)(dd1002*), ABISELECT(32,16), "ee31002");
+ check_base_class_offset(lv, (dd1002*), ABISELECT(16,8), "ee31002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31002.e");
+ test_class_info(&lv, &cd_ee31002);
+ dp->~ee31002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31002(Test_ee31002, "ee31002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31002C1Ev();
+extern void _ZN7ee31002D1Ev();
+Name_Map name_map_ee31002[] = {
+ NSPAIR(_ZN7ee31002C1Ev),
+ NSPAIR(_ZN7ee31002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd1002;
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+static Base_Class bases_ee31002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31002[];
+extern void _ZN7ee310023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310023fooEv,_ZTv0_n12_N7ee310023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee310023fooEv,_ZThn16_N7ee310023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee31002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31002[0]),
+ (VTBL_ENTRY)&_ZN7ee310023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31002[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310023fooEv,_ZTv0_n12_N7ee310023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31002[];
+static VTBL_ENTRY _tg__ZTV6dd1002__7ee31002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd1002__7ee31002[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee31002[] = {
+ {&(_ZTV7ee31002[4]), 4,14},
+ {&(_ZTV7ee31002[8]), 8,14},
+ {&(_ZTV7ee31002[12]), 12,14},
+ {&(_tg__ZTV6dd1002__7ee31002[3]), 3,3},
+ {&(_tg__ZTV3aa24bb025cc002__6dd1002__7ee31002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31002[];
+extern VTBL_ENTRY _ZTV7ee31002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31002[];
+static VTBL_ENTRY alt_thunk_names696[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310023fooEv,_ZTv0_n12_N7ee310023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee310023fooEv,_ZThn16_N7ee310023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31002 = { "ee31002", // class name
+ bases_ee31002, 4,
+ &(vtc_ee31002[0]), // expected_vtbl_contents
+ &(vtt_ee31002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31002),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names696,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41002 : dd1002 {
+ int e;
+ virtual void bar(); // _ZN7ee410023barEv
+ ~ee41002(); // tgen
+ ee41002(); // tgen
+};
+//SIG(1 ee41002) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee41002 ::bar(){vfunc_called(this, "_ZN7ee410023barEv");}
+ee41002 ::~ee41002(){ note_dtor("ee41002", this);} // tgen
+ee41002 ::ee41002(){ note_ctor("ee41002", this);} // tgen
+
+static void Test_ee41002()
+{
+ extern Class_Descriptor cd_ee41002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41002, buf);
+ ee41002 *dp, &lv = *(dp=new (buf) ee41002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee41002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee41002");
+ check_base_class_offset(lv, (cc002*)(dd1002*), ABISELECT(16,12), "ee41002");
+ check_base_class_offset(lv, (dd1002*), 0, "ee41002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41002.e");
+ test_class_info(&lv, &cd_ee41002);
+ dp->~ee41002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41002(Test_ee41002, "ee41002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41002C1Ev();
+extern void _ZN7ee41002D1Ev();
+Name_Map name_map_ee41002[] = {
+ NSPAIR(_ZN7ee41002C1Ev),
+ NSPAIR(_ZN7ee41002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd1002;
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+static Base_Class bases_ee41002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41002[];
+extern void _ZN7ee410023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee410023barEv,_ZTv0_n16_N7ee410023barEv)();
+extern void ABISELECT(_ZThn16_N7ee410023barEv,_ZThn12_N7ee410023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41002[0]),
+ (VTBL_ENTRY)&_ZN7ee410023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee410023barEv,_ZTv0_n16_N7ee410023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41002[];
+static VTBL_ENTRY _tg__ZTV6dd1002__7ee41002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd1002__7ee41002[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee41002[] = {
+ {&(_ZTV7ee41002[3]), 3,10},
+ {&(_tg__ZTV6dd1002__7ee41002[3]), 3,3},
+ {&(_tg__ZTV3aa24bb025cc002__6dd1002__7ee41002[4]), 4,6},
+ {&(_ZTV7ee41002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41002[];
+extern VTBL_ENTRY _ZTV7ee41002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41002[];
+static VTBL_ENTRY alt_thunk_names697[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee410023barEv,_ZTv0_n16_N7ee410023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee410023barEv,_ZThn12_N7ee410023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41002 = { "ee41002", // class name
+ bases_ee41002, 4,
+ &(vtc_ee41002[0]), // expected_vtbl_contents
+ &(vtt_ee41002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names697,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51002 : virtual dd1002 {
+ int e;
+ virtual void bar(); // _ZN7ee510023barEv
+ ~ee51002(); // tgen
+ ee51002(); // tgen
+};
+//SIG(1 ee51002) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee51002 ::bar(){vfunc_called(this, "_ZN7ee510023barEv");}
+ee51002 ::~ee51002(){ note_dtor("ee51002", this);} // tgen
+ee51002 ::ee51002(){ note_ctor("ee51002", this);} // tgen
+
+static void Test_ee51002()
+{
+ extern Class_Descriptor cd_ee51002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51002, buf);
+ ee51002 *dp, &lv = *(dp=new (buf) ee51002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee51002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee51002");
+ check_base_class_offset(lv, (cc002*)(dd1002*), ABISELECT(32,16), "ee51002");
+ check_base_class_offset(lv, (dd1002*), ABISELECT(16,8), "ee51002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51002.e");
+ test_class_info(&lv, &cd_ee51002);
+ dp->~ee51002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51002(Test_ee51002, "ee51002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51002C1Ev();
+extern void _ZN7ee51002D1Ev();
+Name_Map name_map_ee51002[] = {
+ NSPAIR(_ZN7ee51002C1Ev),
+ NSPAIR(_ZN7ee51002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd1002;
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+static Base_Class bases_ee51002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51002[];
+extern void _ZN7ee510023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee510023barEv,_ZTv0_n16_N7ee510023barEv)();
+extern void ABISELECT(_ZThn32_N7ee510023barEv,_ZThn16_N7ee510023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51002[0]),
+ (VTBL_ENTRY)&_ZN7ee510023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51002[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee510023barEv,_ZTv0_n16_N7ee510023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51002[];
+static VTBL_ENTRY _tg__ZTV6dd1002__7ee51002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd1002__7ee51002[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee51002[] = {
+ {&(_ZTV7ee51002[4]), 4,14},
+ {&(_ZTV7ee51002[8]), 8,14},
+ {&(_ZTV7ee51002[12]), 12,14},
+ {&(_tg__ZTV6dd1002__7ee51002[3]), 3,3},
+ {&(_tg__ZTV3aa24bb025cc002__6dd1002__7ee51002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51002[];
+extern VTBL_ENTRY _ZTV7ee51002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51002[];
+static VTBL_ENTRY alt_thunk_names698[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee510023barEv,_ZTv0_n16_N7ee510023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee510023barEv,_ZThn16_N7ee510023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51002 = { "ee51002", // class name
+ bases_ee51002, 4,
+ &(vtc_ee51002[0]), // expected_vtbl_contents
+ &(vtt_ee51002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51002),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names698,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61002 : dd1002 {
+ int e;
+ virtual void foo(); // _ZN7ee610023fooEv
+ virtual void bar(); // _ZN7ee610023barEv
+ ~ee61002(); // tgen
+ ee61002(); // tgen
+};
+//SIG(1 ee61002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61002 ::foo(){vfunc_called(this, "_ZN7ee610023fooEv");}
+void ee61002 ::bar(){vfunc_called(this, "_ZN7ee610023barEv");}
+ee61002 ::~ee61002(){ note_dtor("ee61002", this);} // tgen
+ee61002 ::ee61002(){ note_ctor("ee61002", this);} // tgen
+
+static void Test_ee61002()
+{
+ extern Class_Descriptor cd_ee61002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61002, buf);
+ ee61002 *dp, &lv = *(dp=new (buf) ee61002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee61002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee61002");
+ check_base_class_offset(lv, (cc002*)(dd1002*), ABISELECT(16,12), "ee61002");
+ check_base_class_offset(lv, (dd1002*), 0, "ee61002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61002.e");
+ test_class_info(&lv, &cd_ee61002);
+ dp->~ee61002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61002(Test_ee61002, "ee61002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61002C1Ev();
+extern void _ZN7ee61002D1Ev();
+Name_Map name_map_ee61002[] = {
+ NSPAIR(_ZN7ee61002C1Ev),
+ NSPAIR(_ZN7ee61002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd1002;
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+static Base_Class bases_ee61002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61002[];
+extern void _ZN7ee610023fooEv();
+extern void _ZN7ee610023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee610023fooEv,_ZTv0_n12_N7ee610023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee610023fooEv,_ZThn12_N7ee610023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee610023barEv,_ZTv0_n16_N7ee610023barEv)();
+extern void ABISELECT(_ZThn16_N7ee610023barEv,_ZThn12_N7ee610023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61002[0]),
+ (VTBL_ENTRY)&_ZN7ee610023fooEv,
+ (VTBL_ENTRY)&_ZN7ee610023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610023fooEv,_ZTv0_n12_N7ee610023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610023barEv,_ZTv0_n16_N7ee610023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61002[];
+static VTBL_ENTRY _tg__ZTV6dd1002__7ee61002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd1002__7ee61002[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee61002[] = {
+ {&(_ZTV7ee61002[3]), 3,11},
+ {&(_tg__ZTV6dd1002__7ee61002[3]), 3,3},
+ {&(_tg__ZTV3aa24bb025cc002__6dd1002__7ee61002[4]), 4,6},
+ {&(_ZTV7ee61002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61002[];
+extern VTBL_ENTRY _ZTV7ee61002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61002[];
+static VTBL_ENTRY alt_thunk_names699[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610023barEv,_ZTv0_n16_N7ee610023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610023barEv,_ZThn12_N7ee610023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610023fooEv,_ZTv0_n12_N7ee610023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610023fooEv,_ZThn12_N7ee610023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61002 = { "ee61002", // class name
+ bases_ee61002, 4,
+ &(vtc_ee61002[0]), // expected_vtbl_contents
+ &(vtt_ee61002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names699,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71002 : virtual dd1002 {
+ int e;
+ virtual void foo(); // _ZN7ee710023fooEv
+ virtual void bar(); // _ZN7ee710023barEv
+ ~ee71002(); // tgen
+ ee71002(); // tgen
+};
+//SIG(1 ee71002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71002 ::foo(){vfunc_called(this, "_ZN7ee710023fooEv");}
+void ee71002 ::bar(){vfunc_called(this, "_ZN7ee710023barEv");}
+ee71002 ::~ee71002(){ note_dtor("ee71002", this);} // tgen
+ee71002 ::ee71002(){ note_ctor("ee71002", this);} // tgen
+
+static void Test_ee71002()
+{
+ extern Class_Descriptor cd_ee71002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71002, buf);
+ ee71002 *dp, &lv = *(dp=new (buf) ee71002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee71002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee71002");
+ check_base_class_offset(lv, (cc002*)(dd1002*), ABISELECT(32,16), "ee71002");
+ check_base_class_offset(lv, (dd1002*), ABISELECT(16,8), "ee71002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71002.e");
+ test_class_info(&lv, &cd_ee71002);
+ dp->~ee71002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71002(Test_ee71002, "ee71002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71002C1Ev();
+extern void _ZN7ee71002D1Ev();
+Name_Map name_map_ee71002[] = {
+ NSPAIR(_ZN7ee71002C1Ev),
+ NSPAIR(_ZN7ee71002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd1002;
+extern VTBL_ENTRY _ZTI6dd1002[];
+extern VTBL_ENTRY _ZTV6dd1002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1002[];
+static Base_Class bases_ee71002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1002, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71002[];
+extern void _ZN7ee710023fooEv();
+extern void _ZN7ee710023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee710023fooEv,_ZTv0_n12_N7ee710023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee710023fooEv,_ZThn16_N7ee710023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee710023barEv,_ZTv0_n16_N7ee710023barEv)();
+extern void ABISELECT(_ZThn32_N7ee710023barEv,_ZThn16_N7ee710023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71002[0]),
+ (VTBL_ENTRY)&_ZN7ee710023fooEv,
+ (VTBL_ENTRY)&_ZN7ee710023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71002[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710023fooEv,_ZTv0_n12_N7ee710023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710023barEv,_ZTv0_n16_N7ee710023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71002[];
+static VTBL_ENTRY _tg__ZTV6dd1002__7ee71002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd1002__7ee71002[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee71002[] = {
+ {&(_ZTV7ee71002[4]), 4,15},
+ {&(_ZTV7ee71002[9]), 9,15},
+ {&(_ZTV7ee71002[13]), 13,15},
+ {&(_tg__ZTV6dd1002__7ee71002[3]), 3,3},
+ {&(_tg__ZTV3aa24bb025cc002__6dd1002__7ee71002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71002[];
+extern VTBL_ENTRY _ZTV7ee71002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71002[];
+static VTBL_ENTRY alt_thunk_names700[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710023barEv,_ZTv0_n16_N7ee710023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710023barEv,_ZThn16_N7ee710023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710023fooEv,_ZTv0_n12_N7ee710023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710023fooEv,_ZThn16_N7ee710023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71002 = { "ee71002", // class name
+ bases_ee71002, 4,
+ &(vtc_ee71002[0]), // expected_vtbl_contents
+ &(vtt_ee71002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71002),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names700,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2002 : cc002 {
+ int d;
+ virtual void foo(); // _ZN6dd20023fooEv
+ ~dd2002(); // tgen
+ dd2002(); // tgen
+};
+//SIG(-1 dd2002) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void dd2002 ::foo(){vfunc_called(this, "_ZN6dd20023fooEv");}
+dd2002 ::~dd2002(){ note_dtor("dd2002", this);} // tgen
+dd2002 ::dd2002(){ note_ctor("dd2002", this);} // tgen
+
+static void Test_dd2002()
+{
+ extern Class_Descriptor cd_dd2002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2002, buf);
+ dd2002 *dp, &lv = *(dp=new (buf) dd2002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), 0, "dd2002");
+ check_base_class_offset(lv, (bb02*)(cc002*), 0, "dd2002");
+ check_base_class_offset(lv, (cc002*), 0, "dd2002");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2002.d");
+ test_class_info(&lv, &cd_dd2002);
+ dp->~dd2002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2002(Test_dd2002, "dd2002", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2002C1Ev();
+extern void _ZN6dd2002D1Ev();
+Name_Map name_map_dd2002[] = {
+ NSPAIR(_ZN6dd2002C1Ev),
+ NSPAIR(_ZN6dd2002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+static Base_Class bases_dd2002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern void _ZN6dd20023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd2002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2002[0]),
+ (VTBL_ENTRY)&_ZN6dd20023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+Class_Descriptor cd_dd2002 = { "dd2002", // class name
+ bases_dd2002, 3,
+ &(vtc_dd2002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02002 : dd2002 {
+ int e;
+ ~ee02002(); // tgen
+ ee02002(); // tgen
+};
+//SIG(1 ee02002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee02002 ::~ee02002(){ note_dtor("ee02002", this);} // tgen
+ee02002 ::ee02002(){ note_ctor("ee02002", this);} // tgen
+
+static void Test_ee02002()
+{
+ extern Class_Descriptor cd_ee02002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02002, buf);
+ ee02002 *dp, &lv = *(dp=new (buf) ee02002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd2002*), 0, "ee02002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd2002*), 0, "ee02002");
+ check_base_class_offset(lv, (cc002*)(dd2002*), 0, "ee02002");
+ check_base_class_offset(lv, (dd2002*), 0, "ee02002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02002.e");
+ test_class_info(&lv, &cd_ee02002);
+ dp->~ee02002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02002(Test_ee02002, "ee02002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02002C1Ev();
+extern void _ZN7ee02002D1Ev();
+Name_Map name_map_ee02002[] = {
+ NSPAIR(_ZN7ee02002C1Ev),
+ NSPAIR(_ZN7ee02002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd2002;
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+static Base_Class bases_ee02002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2002, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02002[];
+extern void _ZN6dd20023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee02002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02002[0]),
+ (VTBL_ENTRY)&_ZN6dd20023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02002[];
+extern VTBL_ENTRY _ZTV7ee02002[];
+Class_Descriptor cd_ee02002 = { "ee02002", // class name
+ bases_ee02002, 4,
+ &(vtc_ee02002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12002 : virtual dd2002 {
+ int e;
+ ~ee12002(); // tgen
+ ee12002(); // tgen
+};
+//SIG(1 ee12002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee12002 ::~ee12002(){ note_dtor("ee12002", this);} // tgen
+ee12002 ::ee12002(){ note_ctor("ee12002", this);} // tgen
+
+static void Test_ee12002()
+{
+ extern Class_Descriptor cd_ee12002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12002, buf);
+ ee12002 *dp, &lv = *(dp=new (buf) ee12002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd2002*), ABISELECT(16,8), "ee12002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd2002*), ABISELECT(16,8), "ee12002");
+ check_base_class_offset(lv, (cc002*)(dd2002*), ABISELECT(16,8), "ee12002");
+ check_base_class_offset(lv, (dd2002*), ABISELECT(16,8), "ee12002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12002.e");
+ test_class_info(&lv, &cd_ee12002);
+ dp->~ee12002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12002(Test_ee12002, "ee12002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12002C1Ev();
+extern void _ZN7ee12002D1Ev();
+Name_Map name_map_ee12002[] = {
+ NSPAIR(_ZN7ee12002C1Ev),
+ NSPAIR(_ZN7ee12002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd2002;
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+static Base_Class bases_ee12002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2002, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12002[];
+extern void _ZN6dd20023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee12002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12002[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12002[0]),
+ (VTBL_ENTRY)&_ZN6dd20023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12002[];
+static VTT_ENTRY vtt_ee12002[] = {
+ {&(_ZTV7ee12002[3]), 3,9},
+ {&(_ZTV7ee12002[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12002[];
+extern VTBL_ENTRY _ZTV7ee12002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12002[];
+Class_Descriptor cd_ee12002 = { "ee12002", // class name
+ bases_ee12002, 4,
+ &(vtc_ee12002[0]), // expected_vtbl_contents
+ &(vtt_ee12002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12002),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22002 : dd2002 {
+ int e;
+ virtual void foo(); // _ZN7ee220023fooEv
+ ~ee22002(); // tgen
+ ee22002(); // tgen
+};
+//SIG(1 ee22002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22002 ::foo(){vfunc_called(this, "_ZN7ee220023fooEv");}
+ee22002 ::~ee22002(){ note_dtor("ee22002", this);} // tgen
+ee22002 ::ee22002(){ note_ctor("ee22002", this);} // tgen
+
+static void Test_ee22002()
+{
+ extern Class_Descriptor cd_ee22002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22002, buf);
+ ee22002 *dp, &lv = *(dp=new (buf) ee22002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd2002*), 0, "ee22002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd2002*), 0, "ee22002");
+ check_base_class_offset(lv, (cc002*)(dd2002*), 0, "ee22002");
+ check_base_class_offset(lv, (dd2002*), 0, "ee22002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22002.e");
+ test_class_info(&lv, &cd_ee22002);
+ dp->~ee22002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22002(Test_ee22002, "ee22002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22002C1Ev();
+extern void _ZN7ee22002D1Ev();
+Name_Map name_map_ee22002[] = {
+ NSPAIR(_ZN7ee22002C1Ev),
+ NSPAIR(_ZN7ee22002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd2002;
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+static Base_Class bases_ee22002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22002[];
+extern void _ZN7ee220023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee22002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22002[0]),
+ (VTBL_ENTRY)&_ZN7ee220023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22002[];
+extern VTBL_ENTRY _ZTV7ee22002[];
+Class_Descriptor cd_ee22002 = { "ee22002", // class name
+ bases_ee22002, 4,
+ &(vtc_ee22002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32002 : virtual dd2002 {
+ int e;
+ virtual void foo(); // _ZN7ee320023fooEv
+ ~ee32002(); // tgen
+ ee32002(); // tgen
+};
+//SIG(1 ee32002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32002 ::foo(){vfunc_called(this, "_ZN7ee320023fooEv");}
+ee32002 ::~ee32002(){ note_dtor("ee32002", this);} // tgen
+ee32002 ::ee32002(){ note_ctor("ee32002", this);} // tgen
+
+static void Test_ee32002()
+{
+ extern Class_Descriptor cd_ee32002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32002, buf);
+ ee32002 *dp, &lv = *(dp=new (buf) ee32002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd2002*), ABISELECT(16,8), "ee32002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd2002*), ABISELECT(16,8), "ee32002");
+ check_base_class_offset(lv, (cc002*)(dd2002*), ABISELECT(16,8), "ee32002");
+ check_base_class_offset(lv, (dd2002*), ABISELECT(16,8), "ee32002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32002.e");
+ test_class_info(&lv, &cd_ee32002);
+ dp->~ee32002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32002(Test_ee32002, "ee32002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32002C1Ev();
+extern void _ZN7ee32002D1Ev();
+Name_Map name_map_ee32002[] = {
+ NSPAIR(_ZN7ee32002C1Ev),
+ NSPAIR(_ZN7ee32002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd2002;
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+static Base_Class bases_ee32002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32002[];
+extern void _ZN7ee320023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee320023fooEv,_ZTv0_n12_N7ee320023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320023fooEv,_ZThn8_N7ee320023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee32002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32002[0]),
+ (VTBL_ENTRY)&_ZN7ee320023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320023fooEv,_ZTv0_n12_N7ee320023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32002[];
+static VTT_ENTRY vtt_ee32002[] = {
+ {&(_ZTV7ee32002[3]), 3,10},
+ {&(_ZTV7ee32002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32002[];
+extern VTBL_ENTRY _ZTV7ee32002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32002[];
+static VTBL_ENTRY alt_thunk_names701[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320023fooEv,_ZTv0_n12_N7ee320023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320023fooEv,_ZThn8_N7ee320023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32002 = { "ee32002", // class name
+ bases_ee32002, 4,
+ &(vtc_ee32002[0]), // expected_vtbl_contents
+ &(vtt_ee32002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names701,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42002 : dd2002 {
+ int e;
+ virtual void bar(); // _ZN7ee420023barEv
+ ~ee42002(); // tgen
+ ee42002(); // tgen
+};
+//SIG(1 ee42002) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42002 ::bar(){vfunc_called(this, "_ZN7ee420023barEv");}
+ee42002 ::~ee42002(){ note_dtor("ee42002", this);} // tgen
+ee42002 ::ee42002(){ note_ctor("ee42002", this);} // tgen
+
+static void Test_ee42002()
+{
+ extern Class_Descriptor cd_ee42002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42002, buf);
+ ee42002 *dp, &lv = *(dp=new (buf) ee42002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd2002*), 0, "ee42002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd2002*), 0, "ee42002");
+ check_base_class_offset(lv, (cc002*)(dd2002*), 0, "ee42002");
+ check_base_class_offset(lv, (dd2002*), 0, "ee42002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42002.e");
+ test_class_info(&lv, &cd_ee42002);
+ dp->~ee42002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42002(Test_ee42002, "ee42002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42002C1Ev();
+extern void _ZN7ee42002D1Ev();
+Name_Map name_map_ee42002[] = {
+ NSPAIR(_ZN7ee42002C1Ev),
+ NSPAIR(_ZN7ee42002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd2002;
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+static Base_Class bases_ee42002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42002[];
+extern void _ZN6dd20023fooEv();
+extern void _ZN7ee420023barEv();
+static VTBL_ENTRY vtc_ee42002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42002[0]),
+ (VTBL_ENTRY)&_ZN6dd20023fooEv,
+ (VTBL_ENTRY)&_ZN7ee420023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42002[];
+extern VTBL_ENTRY _ZTV7ee42002[];
+Class_Descriptor cd_ee42002 = { "ee42002", // class name
+ bases_ee42002, 4,
+ &(vtc_ee42002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52002 : virtual dd2002 {
+ int e;
+ virtual void bar(); // _ZN7ee520023barEv
+ ~ee52002(); // tgen
+ ee52002(); // tgen
+};
+//SIG(1 ee52002) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52002 ::bar(){vfunc_called(this, "_ZN7ee520023barEv");}
+ee52002 ::~ee52002(){ note_dtor("ee52002", this);} // tgen
+ee52002 ::ee52002(){ note_ctor("ee52002", this);} // tgen
+
+static void Test_ee52002()
+{
+ extern Class_Descriptor cd_ee52002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52002, buf);
+ ee52002 *dp, &lv = *(dp=new (buf) ee52002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd2002*), ABISELECT(16,8), "ee52002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd2002*), ABISELECT(16,8), "ee52002");
+ check_base_class_offset(lv, (cc002*)(dd2002*), ABISELECT(16,8), "ee52002");
+ check_base_class_offset(lv, (dd2002*), ABISELECT(16,8), "ee52002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52002.e");
+ test_class_info(&lv, &cd_ee52002);
+ dp->~ee52002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52002(Test_ee52002, "ee52002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52002C1Ev();
+extern void _ZN7ee52002D1Ev();
+Name_Map name_map_ee52002[] = {
+ NSPAIR(_ZN7ee52002C1Ev),
+ NSPAIR(_ZN7ee52002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd2002;
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+static Base_Class bases_ee52002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52002[];
+extern void _ZN7ee520023barEv();
+extern void _ZN6dd20023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee520023barEv,_ZTv0_n16_N7ee520023barEv)();
+extern void ABISELECT(_ZThn16_N7ee520023barEv,_ZThn8_N7ee520023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52002[0]),
+ (VTBL_ENTRY)&_ZN7ee520023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52002[0]),
+ (VTBL_ENTRY)&_ZN6dd20023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee520023barEv,_ZTv0_n16_N7ee520023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52002[];
+static VTT_ENTRY vtt_ee52002[] = {
+ {&(_ZTV7ee52002[3]), 3,10},
+ {&(_ZTV7ee52002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52002[];
+extern VTBL_ENTRY _ZTV7ee52002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52002[];
+static VTBL_ENTRY alt_thunk_names702[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee520023barEv,_ZTv0_n16_N7ee520023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee520023barEv,_ZThn8_N7ee520023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52002 = { "ee52002", // class name
+ bases_ee52002, 4,
+ &(vtc_ee52002[0]), // expected_vtbl_contents
+ &(vtt_ee52002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names702,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62002 : dd2002 {
+ int e;
+ virtual void foo(); // _ZN7ee620023fooEv
+ virtual void bar(); // _ZN7ee620023barEv
+ ~ee62002(); // tgen
+ ee62002(); // tgen
+};
+//SIG(1 ee62002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62002 ::foo(){vfunc_called(this, "_ZN7ee620023fooEv");}
+void ee62002 ::bar(){vfunc_called(this, "_ZN7ee620023barEv");}
+ee62002 ::~ee62002(){ note_dtor("ee62002", this);} // tgen
+ee62002 ::ee62002(){ note_ctor("ee62002", this);} // tgen
+
+static void Test_ee62002()
+{
+ extern Class_Descriptor cd_ee62002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62002, buf);
+ ee62002 *dp, &lv = *(dp=new (buf) ee62002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd2002*), 0, "ee62002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd2002*), 0, "ee62002");
+ check_base_class_offset(lv, (cc002*)(dd2002*), 0, "ee62002");
+ check_base_class_offset(lv, (dd2002*), 0, "ee62002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62002.e");
+ test_class_info(&lv, &cd_ee62002);
+ dp->~ee62002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62002(Test_ee62002, "ee62002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62002C1Ev();
+extern void _ZN7ee62002D1Ev();
+Name_Map name_map_ee62002[] = {
+ NSPAIR(_ZN7ee62002C1Ev),
+ NSPAIR(_ZN7ee62002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd2002;
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+static Base_Class bases_ee62002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62002[];
+extern void _ZN7ee620023fooEv();
+extern void _ZN7ee620023barEv();
+static VTBL_ENTRY vtc_ee62002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62002[0]),
+ (VTBL_ENTRY)&_ZN7ee620023fooEv,
+ (VTBL_ENTRY)&_ZN7ee620023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62002[];
+extern VTBL_ENTRY _ZTV7ee62002[];
+Class_Descriptor cd_ee62002 = { "ee62002", // class name
+ bases_ee62002, 4,
+ &(vtc_ee62002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72002 : virtual dd2002 {
+ int e;
+ virtual void foo(); // _ZN7ee720023fooEv
+ virtual void bar(); // _ZN7ee720023barEv
+ ~ee72002(); // tgen
+ ee72002(); // tgen
+};
+//SIG(1 ee72002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72002 ::foo(){vfunc_called(this, "_ZN7ee720023fooEv");}
+void ee72002 ::bar(){vfunc_called(this, "_ZN7ee720023barEv");}
+ee72002 ::~ee72002(){ note_dtor("ee72002", this);} // tgen
+ee72002 ::ee72002(){ note_ctor("ee72002", this);} // tgen
+
+static void Test_ee72002()
+{
+ extern Class_Descriptor cd_ee72002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72002, buf);
+ ee72002 *dp, &lv = *(dp=new (buf) ee72002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd2002*), ABISELECT(16,8), "ee72002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd2002*), ABISELECT(16,8), "ee72002");
+ check_base_class_offset(lv, (cc002*)(dd2002*), ABISELECT(16,8), "ee72002");
+ check_base_class_offset(lv, (dd2002*), ABISELECT(16,8), "ee72002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72002.e");
+ test_class_info(&lv, &cd_ee72002);
+ dp->~ee72002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72002(Test_ee72002, "ee72002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72002C1Ev();
+extern void _ZN7ee72002D1Ev();
+Name_Map name_map_ee72002[] = {
+ NSPAIR(_ZN7ee72002C1Ev),
+ NSPAIR(_ZN7ee72002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd2002;
+extern VTBL_ENTRY _ZTI6dd2002[];
+extern VTBL_ENTRY _ZTV6dd2002[];
+static Base_Class bases_ee72002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72002[];
+extern void _ZN7ee720023fooEv();
+extern void _ZN7ee720023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee720023fooEv,_ZTv0_n12_N7ee720023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720023fooEv,_ZThn8_N7ee720023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee720023barEv,_ZTv0_n16_N7ee720023barEv)();
+extern void ABISELECT(_ZThn16_N7ee720023barEv,_ZThn8_N7ee720023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72002[0]),
+ (VTBL_ENTRY)&_ZN7ee720023fooEv,
+ (VTBL_ENTRY)&_ZN7ee720023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720023fooEv,_ZTv0_n12_N7ee720023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720023barEv,_ZTv0_n16_N7ee720023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72002[];
+static VTT_ENTRY vtt_ee72002[] = {
+ {&(_ZTV7ee72002[3]), 3,11},
+ {&(_ZTV7ee72002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72002[];
+extern VTBL_ENTRY _ZTV7ee72002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72002[];
+static VTBL_ENTRY alt_thunk_names703[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720023barEv,_ZTv0_n16_N7ee720023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720023barEv,_ZThn8_N7ee720023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720023fooEv,_ZTv0_n12_N7ee720023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720023fooEv,_ZThn8_N7ee720023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72002 = { "ee72002", // class name
+ bases_ee72002, 4,
+ &(vtc_ee72002[0]), // expected_vtbl_contents
+ &(vtt_ee72002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names703,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3002 : virtual cc002 {
+ int d;
+ virtual void foo(); // _ZN6dd30023fooEv
+ ~dd3002(); // tgen
+ dd3002(); // tgen
+};
+//SIG(-1 dd3002) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void dd3002 ::foo(){vfunc_called(this, "_ZN6dd30023fooEv");}
+dd3002 ::~dd3002(){ note_dtor("dd3002", this);} // tgen
+dd3002 ::dd3002(){ note_ctor("dd3002", this);} // tgen
+
+static void Test_dd3002()
+{
+ extern Class_Descriptor cd_dd3002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3002, buf);
+ dd3002 *dp, &lv = *(dp=new (buf) dd3002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,8), "dd3002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,8), "dd3002");
+ check_base_class_offset(lv, (cc002*), ABISELECT(16,8), "dd3002");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3002.d");
+ test_class_info(&lv, &cd_dd3002);
+ dp->~dd3002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3002(Test_dd3002, "dd3002", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3002C1Ev();
+extern void _ZN6dd3002D1Ev();
+Name_Map name_map_dd3002[] = {
+ NSPAIR(_ZN6dd3002C1Ev),
+ NSPAIR(_ZN6dd3002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+static Base_Class bases_dd3002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern void _ZN6dd30023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd3002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3002[];
+static VTT_ENTRY vtt_dd3002[] = {
+ {&(_ZTV6dd3002[3]), 3,10},
+ {&(_ZTV6dd3002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static VTBL_ENTRY alt_thunk_names704[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3002 = { "dd3002", // class name
+ bases_dd3002, 3,
+ &(vtc_dd3002[0]), // expected_vtbl_contents
+ &(vtt_dd3002[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3002),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names704,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03002 : dd3002 {
+ int e;
+ ~ee03002(); // tgen
+ ee03002(); // tgen
+};
+//SIG(1 ee03002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee03002 ::~ee03002(){ note_dtor("ee03002", this);} // tgen
+ee03002 ::ee03002(){ note_ctor("ee03002", this);} // tgen
+
+static void Test_ee03002()
+{
+ extern Class_Descriptor cd_ee03002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03002, buf);
+ ee03002 *dp, &lv = *(dp=new (buf) ee03002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee03002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee03002");
+ check_base_class_offset(lv, (cc002*)(dd3002*), ABISELECT(16,12), "ee03002");
+ check_base_class_offset(lv, (dd3002*), 0, "ee03002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03002.e");
+ test_class_info(&lv, &cd_ee03002);
+ dp->~ee03002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03002(Test_ee03002, "ee03002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03002C1Ev();
+extern void _ZN7ee03002D1Ev();
+Name_Map name_map_ee03002[] = {
+ NSPAIR(_ZN7ee03002C1Ev),
+ NSPAIR(_ZN7ee03002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd3002;
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static Base_Class bases_ee03002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03002[];
+extern void _ZN6dd30023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee03002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03002[];
+extern void _ZN6dd30023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3002__7ee03002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd3002__7ee03002[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee03002[] = {
+ {&(_ZTV7ee03002[3]), 3,10},
+ {&(_tg__ZTV6dd3002__7ee03002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd3002__7ee03002[4]), 4,6},
+ {&(_ZTV7ee03002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03002[];
+extern VTBL_ENTRY _ZTV7ee03002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03002[];
+static VTBL_ENTRY alt_thunk_names705[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03002 = { "ee03002", // class name
+ bases_ee03002, 4,
+ &(vtc_ee03002[0]), // expected_vtbl_contents
+ &(vtt_ee03002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names705,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13002 : virtual dd3002 {
+ int e;
+ ~ee13002(); // tgen
+ ee13002(); // tgen
+};
+//SIG(1 ee13002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee13002 ::~ee13002(){ note_dtor("ee13002", this);} // tgen
+ee13002 ::ee13002(){ note_ctor("ee13002", this);} // tgen
+
+static void Test_ee13002()
+{
+ extern Class_Descriptor cd_ee13002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13002, buf);
+ ee13002 *dp, &lv = *(dp=new (buf) ee13002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee13002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee13002");
+ check_base_class_offset(lv, (cc002*)(dd3002*), ABISELECT(32,16), "ee13002");
+ check_base_class_offset(lv, (dd3002*), ABISELECT(16,8), "ee13002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13002.e");
+ test_class_info(&lv, &cd_ee13002);
+ dp->~ee13002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13002(Test_ee13002, "ee13002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13002C1Ev();
+extern void _ZN7ee13002D1Ev();
+Name_Map name_map_ee13002[] = {
+ NSPAIR(_ZN7ee13002C1Ev),
+ NSPAIR(_ZN7ee13002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd3002;
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static Base_Class bases_ee13002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13002[];
+extern void _ZN6dd30023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee13002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13002[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13002[];
+extern void _ZN6dd30023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3002__7ee13002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd3002__7ee13002[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee13002[] = {
+ {&(_ZTV7ee13002[4]), 4,15},
+ {&(_ZTV7ee13002[8]), 8,15},
+ {&(_ZTV7ee13002[13]), 13,15},
+ {&(_tg__ZTV6dd3002__7ee13002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd3002__7ee13002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13002[];
+extern VTBL_ENTRY _ZTV7ee13002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13002[];
+static VTBL_ENTRY alt_thunk_names706[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13002 = { "ee13002", // class name
+ bases_ee13002, 4,
+ &(vtc_ee13002[0]), // expected_vtbl_contents
+ &(vtt_ee13002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13002),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names706,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23002 : dd3002 {
+ int e;
+ virtual void foo(); // _ZN7ee230023fooEv
+ ~ee23002(); // tgen
+ ee23002(); // tgen
+};
+//SIG(1 ee23002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23002 ::foo(){vfunc_called(this, "_ZN7ee230023fooEv");}
+ee23002 ::~ee23002(){ note_dtor("ee23002", this);} // tgen
+ee23002 ::ee23002(){ note_ctor("ee23002", this);} // tgen
+
+static void Test_ee23002()
+{
+ extern Class_Descriptor cd_ee23002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23002, buf);
+ ee23002 *dp, &lv = *(dp=new (buf) ee23002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee23002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee23002");
+ check_base_class_offset(lv, (cc002*)(dd3002*), ABISELECT(16,12), "ee23002");
+ check_base_class_offset(lv, (dd3002*), 0, "ee23002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23002.e");
+ test_class_info(&lv, &cd_ee23002);
+ dp->~ee23002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23002(Test_ee23002, "ee23002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23002C1Ev();
+extern void _ZN7ee23002D1Ev();
+Name_Map name_map_ee23002[] = {
+ NSPAIR(_ZN7ee23002C1Ev),
+ NSPAIR(_ZN7ee23002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd3002;
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static Base_Class bases_ee23002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23002[];
+extern void _ZN7ee230023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230023fooEv,_ZTv0_n12_N7ee230023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee230023fooEv,_ZThn12_N7ee230023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee23002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23002[0]),
+ (VTBL_ENTRY)&_ZN7ee230023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230023fooEv,_ZTv0_n12_N7ee230023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23002[];
+extern void _ZN6dd30023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3002__7ee23002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd3002__7ee23002[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee23002[] = {
+ {&(_ZTV7ee23002[3]), 3,10},
+ {&(_tg__ZTV6dd3002__7ee23002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd3002__7ee23002[4]), 4,6},
+ {&(_ZTV7ee23002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23002[];
+extern VTBL_ENTRY _ZTV7ee23002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23002[];
+static VTBL_ENTRY alt_thunk_names707[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230023fooEv,_ZTv0_n12_N7ee230023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee230023fooEv,_ZThn12_N7ee230023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23002 = { "ee23002", // class name
+ bases_ee23002, 4,
+ &(vtc_ee23002[0]), // expected_vtbl_contents
+ &(vtt_ee23002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names707,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33002 : virtual dd3002 {
+ int e;
+ virtual void foo(); // _ZN7ee330023fooEv
+ ~ee33002(); // tgen
+ ee33002(); // tgen
+};
+//SIG(1 ee33002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33002 ::foo(){vfunc_called(this, "_ZN7ee330023fooEv");}
+ee33002 ::~ee33002(){ note_dtor("ee33002", this);} // tgen
+ee33002 ::ee33002(){ note_ctor("ee33002", this);} // tgen
+
+static void Test_ee33002()
+{
+ extern Class_Descriptor cd_ee33002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33002, buf);
+ ee33002 *dp, &lv = *(dp=new (buf) ee33002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee33002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee33002");
+ check_base_class_offset(lv, (cc002*)(dd3002*), ABISELECT(32,16), "ee33002");
+ check_base_class_offset(lv, (dd3002*), ABISELECT(16,8), "ee33002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33002.e");
+ test_class_info(&lv, &cd_ee33002);
+ dp->~ee33002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33002(Test_ee33002, "ee33002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33002C1Ev();
+extern void _ZN7ee33002D1Ev();
+Name_Map name_map_ee33002[] = {
+ NSPAIR(_ZN7ee33002C1Ev),
+ NSPAIR(_ZN7ee33002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd3002;
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static Base_Class bases_ee33002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33002[];
+extern void _ZN7ee330023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee330023fooEv,_ZTv0_n16_N7ee330023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330023fooEv,_ZThn8_N7ee330023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee330023fooEv,_ZTv0_n12_N7ee330023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee330023fooEv,_ZThn16_N7ee330023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee33002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33002[0]),
+ (VTBL_ENTRY)&_ZN7ee330023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee330023fooEv,_ZTv0_n16_N7ee330023fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330023fooEv,_ZTv0_n12_N7ee330023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33002[];
+extern void _ZN6dd30023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3002__7ee33002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd3002__7ee33002[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee33002[] = {
+ {&(_ZTV7ee33002[4]), 4,16},
+ {&(_ZTV7ee33002[9]), 9,16},
+ {&(_ZTV7ee33002[14]), 14,16},
+ {&(_tg__ZTV6dd3002__7ee33002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd3002__7ee33002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33002[];
+extern VTBL_ENTRY _ZTV7ee33002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33002[];
+static VTBL_ENTRY alt_thunk_names708[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330023fooEv,_ZTv0_n12_N7ee330023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee330023fooEv,_ZThn16_N7ee330023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee330023fooEv,_ZTv0_n16_N7ee330023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330023fooEv,_ZThn8_N7ee330023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33002 = { "ee33002", // class name
+ bases_ee33002, 4,
+ &(vtc_ee33002[0]), // expected_vtbl_contents
+ &(vtt_ee33002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33002),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names708,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43002 : dd3002 {
+ int e;
+ virtual void bar(); // _ZN7ee430023barEv
+ ~ee43002(); // tgen
+ ee43002(); // tgen
+};
+//SIG(1 ee43002) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43002 ::bar(){vfunc_called(this, "_ZN7ee430023barEv");}
+ee43002 ::~ee43002(){ note_dtor("ee43002", this);} // tgen
+ee43002 ::ee43002(){ note_ctor("ee43002", this);} // tgen
+
+static void Test_ee43002()
+{
+ extern Class_Descriptor cd_ee43002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43002, buf);
+ ee43002 *dp, &lv = *(dp=new (buf) ee43002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee43002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee43002");
+ check_base_class_offset(lv, (cc002*)(dd3002*), ABISELECT(16,12), "ee43002");
+ check_base_class_offset(lv, (dd3002*), 0, "ee43002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43002.e");
+ test_class_info(&lv, &cd_ee43002);
+ dp->~ee43002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43002(Test_ee43002, "ee43002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43002C1Ev();
+extern void _ZN7ee43002D1Ev();
+Name_Map name_map_ee43002[] = {
+ NSPAIR(_ZN7ee43002C1Ev),
+ NSPAIR(_ZN7ee43002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd3002;
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static Base_Class bases_ee43002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43002[];
+extern void _ZN6dd30023fooEv();
+extern void _ZN7ee430023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee430023barEv,_ZTv0_n16_N7ee430023barEv)();
+extern void ABISELECT(_ZThn16_N7ee430023barEv,_ZThn12_N7ee430023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+ (VTBL_ENTRY)&_ZN7ee430023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee430023barEv,_ZTv0_n16_N7ee430023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43002[];
+extern void _ZN6dd30023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3002__7ee43002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd3002__7ee43002[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee43002[] = {
+ {&(_ZTV7ee43002[3]), 3,11},
+ {&(_tg__ZTV6dd3002__7ee43002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd3002__7ee43002[4]), 4,6},
+ {&(_ZTV7ee43002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43002[];
+extern VTBL_ENTRY _ZTV7ee43002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43002[];
+static VTBL_ENTRY alt_thunk_names709[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee430023barEv,_ZTv0_n16_N7ee430023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee430023barEv,_ZThn12_N7ee430023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43002 = { "ee43002", // class name
+ bases_ee43002, 4,
+ &(vtc_ee43002[0]), // expected_vtbl_contents
+ &(vtt_ee43002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names709,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53002 : virtual dd3002 {
+ int e;
+ virtual void bar(); // _ZN7ee530023barEv
+ ~ee53002(); // tgen
+ ee53002(); // tgen
+};
+//SIG(1 ee53002) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53002 ::bar(){vfunc_called(this, "_ZN7ee530023barEv");}
+ee53002 ::~ee53002(){ note_dtor("ee53002", this);} // tgen
+ee53002 ::ee53002(){ note_ctor("ee53002", this);} // tgen
+
+static void Test_ee53002()
+{
+ extern Class_Descriptor cd_ee53002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53002, buf);
+ ee53002 *dp, &lv = *(dp=new (buf) ee53002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee53002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee53002");
+ check_base_class_offset(lv, (cc002*)(dd3002*), ABISELECT(32,16), "ee53002");
+ check_base_class_offset(lv, (dd3002*), ABISELECT(16,8), "ee53002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53002.e");
+ test_class_info(&lv, &cd_ee53002);
+ dp->~ee53002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53002(Test_ee53002, "ee53002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53002C1Ev();
+extern void _ZN7ee53002D1Ev();
+Name_Map name_map_ee53002[] = {
+ NSPAIR(_ZN7ee53002C1Ev),
+ NSPAIR(_ZN7ee53002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd3002;
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static Base_Class bases_ee53002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53002[];
+extern void _ZN7ee530023barEv();
+extern void _ZN6dd30023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee530023barEv,_ZTv0_n16_N7ee530023barEv)();
+extern void ABISELECT(_ZThn32_N7ee530023barEv,_ZThn16_N7ee530023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53002[0]),
+ (VTBL_ENTRY)&_ZN7ee530023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee530023barEv,_ZTv0_n16_N7ee530023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53002[];
+extern void _ZN6dd30023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3002__7ee53002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd3002__7ee53002[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee53002[] = {
+ {&(_ZTV7ee53002[4]), 4,16},
+ {&(_ZTV7ee53002[9]), 9,16},
+ {&(_ZTV7ee53002[14]), 14,16},
+ {&(_tg__ZTV6dd3002__7ee53002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd3002__7ee53002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53002[];
+extern VTBL_ENTRY _ZTV7ee53002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53002[];
+static VTBL_ENTRY alt_thunk_names710[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee530023barEv,_ZTv0_n16_N7ee530023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee530023barEv,_ZThn16_N7ee530023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53002 = { "ee53002", // class name
+ bases_ee53002, 4,
+ &(vtc_ee53002[0]), // expected_vtbl_contents
+ &(vtt_ee53002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53002),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names710,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63002 : dd3002 {
+ int e;
+ virtual void foo(); // _ZN7ee630023fooEv
+ virtual void bar(); // _ZN7ee630023barEv
+ ~ee63002(); // tgen
+ ee63002(); // tgen
+};
+//SIG(1 ee63002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63002 ::foo(){vfunc_called(this, "_ZN7ee630023fooEv");}
+void ee63002 ::bar(){vfunc_called(this, "_ZN7ee630023barEv");}
+ee63002 ::~ee63002(){ note_dtor("ee63002", this);} // tgen
+ee63002 ::ee63002(){ note_ctor("ee63002", this);} // tgen
+
+static void Test_ee63002()
+{
+ extern Class_Descriptor cd_ee63002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63002, buf);
+ ee63002 *dp, &lv = *(dp=new (buf) ee63002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee63002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee63002");
+ check_base_class_offset(lv, (cc002*)(dd3002*), ABISELECT(16,12), "ee63002");
+ check_base_class_offset(lv, (dd3002*), 0, "ee63002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63002.e");
+ test_class_info(&lv, &cd_ee63002);
+ dp->~ee63002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63002(Test_ee63002, "ee63002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63002C1Ev();
+extern void _ZN7ee63002D1Ev();
+Name_Map name_map_ee63002[] = {
+ NSPAIR(_ZN7ee63002C1Ev),
+ NSPAIR(_ZN7ee63002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd3002;
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static Base_Class bases_ee63002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63002[];
+extern void _ZN7ee630023fooEv();
+extern void _ZN7ee630023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee630023fooEv,_ZTv0_n12_N7ee630023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee630023fooEv,_ZThn12_N7ee630023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee630023barEv,_ZTv0_n16_N7ee630023barEv)();
+extern void ABISELECT(_ZThn16_N7ee630023barEv,_ZThn12_N7ee630023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63002[0]),
+ (VTBL_ENTRY)&_ZN7ee630023fooEv,
+ (VTBL_ENTRY)&_ZN7ee630023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630023fooEv,_ZTv0_n12_N7ee630023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630023barEv,_ZTv0_n16_N7ee630023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63002[];
+extern void _ZN6dd30023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3002__7ee63002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd3002__7ee63002[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee63002[] = {
+ {&(_ZTV7ee63002[3]), 3,11},
+ {&(_tg__ZTV6dd3002__7ee63002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd3002__7ee63002[4]), 4,6},
+ {&(_ZTV7ee63002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63002[];
+extern VTBL_ENTRY _ZTV7ee63002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63002[];
+static VTBL_ENTRY alt_thunk_names711[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn12_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630023barEv,_ZTv0_n16_N7ee630023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630023barEv,_ZThn12_N7ee630023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630023fooEv,_ZTv0_n12_N7ee630023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630023fooEv,_ZThn12_N7ee630023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63002 = { "ee63002", // class name
+ bases_ee63002, 4,
+ &(vtc_ee63002[0]), // expected_vtbl_contents
+ &(vtt_ee63002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names711,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73002 : virtual dd3002 {
+ int e;
+ virtual void foo(); // _ZN7ee730023fooEv
+ virtual void bar(); // _ZN7ee730023barEv
+ ~ee73002(); // tgen
+ ee73002(); // tgen
+};
+//SIG(1 ee73002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73002 ::foo(){vfunc_called(this, "_ZN7ee730023fooEv");}
+void ee73002 ::bar(){vfunc_called(this, "_ZN7ee730023barEv");}
+ee73002 ::~ee73002(){ note_dtor("ee73002", this);} // tgen
+ee73002 ::ee73002(){ note_ctor("ee73002", this);} // tgen
+
+static void Test_ee73002()
+{
+ extern Class_Descriptor cd_ee73002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73002, buf);
+ ee73002 *dp, &lv = *(dp=new (buf) ee73002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee73002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee73002");
+ check_base_class_offset(lv, (cc002*)(dd3002*), ABISELECT(32,16), "ee73002");
+ check_base_class_offset(lv, (dd3002*), ABISELECT(16,8), "ee73002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73002.e");
+ test_class_info(&lv, &cd_ee73002);
+ dp->~ee73002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73002(Test_ee73002, "ee73002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73002C1Ev();
+extern void _ZN7ee73002D1Ev();
+Name_Map name_map_ee73002[] = {
+ NSPAIR(_ZN7ee73002C1Ev),
+ NSPAIR(_ZN7ee73002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd3002;
+extern VTBL_ENTRY _ZTI6dd3002[];
+extern VTBL_ENTRY _ZTV6dd3002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3002[];
+static Base_Class bases_ee73002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3002, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73002[];
+extern void _ZN7ee730023fooEv();
+extern void _ZN7ee730023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee730023fooEv,_ZTv0_n16_N7ee730023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730023fooEv,_ZThn8_N7ee730023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730023fooEv,_ZTv0_n12_N7ee730023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee730023fooEv,_ZThn16_N7ee730023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730023barEv,_ZTv0_n16_N7ee730023barEv)();
+extern void ABISELECT(_ZThn32_N7ee730023barEv,_ZThn16_N7ee730023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73002[0]),
+ (VTBL_ENTRY)&_ZN7ee730023fooEv,
+ (VTBL_ENTRY)&_ZN7ee730023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730023fooEv,_ZTv0_n16_N7ee730023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730023fooEv,_ZTv0_n12_N7ee730023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730023barEv,_ZTv0_n16_N7ee730023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73002[];
+extern void _ZN6dd30023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3002__7ee73002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&_ZN6dd30023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd3002__7ee73002[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee73002[] = {
+ {&(_ZTV7ee73002[4]), 4,17},
+ {&(_ZTV7ee73002[10]), 10,17},
+ {&(_ZTV7ee73002[15]), 15,17},
+ {&(_tg__ZTV6dd3002__7ee73002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd3002__7ee73002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73002[];
+extern VTBL_ENTRY _ZTV7ee73002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73002[];
+static VTBL_ENTRY alt_thunk_names712[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30023fooEv,_ZTv0_n12_N6dd30023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd30023fooEv,_ZThn8_N6dd30023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730023barEv,_ZTv0_n16_N7ee730023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730023barEv,_ZThn16_N7ee730023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730023fooEv,_ZTv0_n12_N7ee730023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730023fooEv,_ZThn16_N7ee730023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730023fooEv,_ZTv0_n16_N7ee730023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730023fooEv,_ZThn8_N7ee730023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73002 = { "ee73002", // class name
+ bases_ee73002, 4,
+ &(vtc_ee73002[0]), // expected_vtbl_contents
+ &(vtt_ee73002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73002),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names712,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4002 : cc002 {
+ int d;
+ virtual void bar(); // _ZN6dd40023barEv
+ ~dd4002(); // tgen
+ dd4002(); // tgen
+};
+//SIG(-1 dd4002) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void dd4002 ::bar(){vfunc_called(this, "_ZN6dd40023barEv");}
+dd4002 ::~dd4002(){ note_dtor("dd4002", this);} // tgen
+dd4002 ::dd4002(){ note_ctor("dd4002", this);} // tgen
+
+static void Test_dd4002()
+{
+ extern Class_Descriptor cd_dd4002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4002, buf);
+ dd4002 *dp, &lv = *(dp=new (buf) dd4002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), 0, "dd4002");
+ check_base_class_offset(lv, (bb02*)(cc002*), 0, "dd4002");
+ check_base_class_offset(lv, (cc002*), 0, "dd4002");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4002.d");
+ test_class_info(&lv, &cd_dd4002);
+ dp->~dd4002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4002(Test_dd4002, "dd4002", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4002C1Ev();
+extern void _ZN6dd4002D1Ev();
+Name_Map name_map_dd4002[] = {
+ NSPAIR(_ZN6dd4002C1Ev),
+ NSPAIR(_ZN6dd4002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+static Base_Class bases_dd4002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN6dd40023barEv();
+static VTBL_ENTRY vtc_dd4002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN6dd40023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+Class_Descriptor cd_dd4002 = { "dd4002", // class name
+ bases_dd4002, 3,
+ &(vtc_dd4002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04002 : dd4002 {
+ int e;
+ ~ee04002(); // tgen
+ ee04002(); // tgen
+};
+//SIG(1 ee04002) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee04002 ::~ee04002(){ note_dtor("ee04002", this);} // tgen
+ee04002 ::ee04002(){ note_ctor("ee04002", this);} // tgen
+
+static void Test_ee04002()
+{
+ extern Class_Descriptor cd_ee04002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04002, buf);
+ ee04002 *dp, &lv = *(dp=new (buf) ee04002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd4002*), 0, "ee04002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd4002*), 0, "ee04002");
+ check_base_class_offset(lv, (cc002*)(dd4002*), 0, "ee04002");
+ check_base_class_offset(lv, (dd4002*), 0, "ee04002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04002.e");
+ test_class_info(&lv, &cd_ee04002);
+ dp->~ee04002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04002(Test_ee04002, "ee04002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04002C1Ev();
+extern void _ZN7ee04002D1Ev();
+Name_Map name_map_ee04002[] = {
+ NSPAIR(_ZN7ee04002C1Ev),
+ NSPAIR(_ZN7ee04002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd4002;
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+static Base_Class bases_ee04002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4002, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN6dd40023barEv();
+static VTBL_ENTRY vtc_ee04002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN6dd40023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04002[];
+extern VTBL_ENTRY _ZTV7ee04002[];
+Class_Descriptor cd_ee04002 = { "ee04002", // class name
+ bases_ee04002, 4,
+ &(vtc_ee04002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14002 : virtual dd4002 {
+ int e;
+ ~ee14002(); // tgen
+ ee14002(); // tgen
+};
+//SIG(1 ee14002) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee14002 ::~ee14002(){ note_dtor("ee14002", this);} // tgen
+ee14002 ::ee14002(){ note_ctor("ee14002", this);} // tgen
+
+static void Test_ee14002()
+{
+ extern Class_Descriptor cd_ee14002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14002, buf);
+ ee14002 *dp, &lv = *(dp=new (buf) ee14002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd4002*), ABISELECT(16,8), "ee14002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd4002*), ABISELECT(16,8), "ee14002");
+ check_base_class_offset(lv, (cc002*)(dd4002*), ABISELECT(16,8), "ee14002");
+ check_base_class_offset(lv, (dd4002*), ABISELECT(16,8), "ee14002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14002.e");
+ test_class_info(&lv, &cd_ee14002);
+ dp->~ee14002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14002(Test_ee14002, "ee14002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14002C1Ev();
+extern void _ZN7ee14002D1Ev();
+Name_Map name_map_ee14002[] = {
+ NSPAIR(_ZN7ee14002C1Ev),
+ NSPAIR(_ZN7ee14002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd4002;
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+static Base_Class bases_ee14002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4002, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN6dd40023barEv();
+static VTBL_ENTRY vtc_ee14002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14002[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN6dd40023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14002[];
+static VTT_ENTRY vtt_ee14002[] = {
+ {&(_ZTV7ee14002[3]), 3,9},
+ {&(_ZTV7ee14002[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14002[];
+extern VTBL_ENTRY _ZTV7ee14002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14002[];
+Class_Descriptor cd_ee14002 = { "ee14002", // class name
+ bases_ee14002, 4,
+ &(vtc_ee14002[0]), // expected_vtbl_contents
+ &(vtt_ee14002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14002),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24002 : dd4002 {
+ int e;
+ virtual void foo(); // _ZN7ee240023fooEv
+ ~ee24002(); // tgen
+ ee24002(); // tgen
+};
+//SIG(1 ee24002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24002 ::foo(){vfunc_called(this, "_ZN7ee240023fooEv");}
+ee24002 ::~ee24002(){ note_dtor("ee24002", this);} // tgen
+ee24002 ::ee24002(){ note_ctor("ee24002", this);} // tgen
+
+static void Test_ee24002()
+{
+ extern Class_Descriptor cd_ee24002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24002, buf);
+ ee24002 *dp, &lv = *(dp=new (buf) ee24002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd4002*), 0, "ee24002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd4002*), 0, "ee24002");
+ check_base_class_offset(lv, (cc002*)(dd4002*), 0, "ee24002");
+ check_base_class_offset(lv, (dd4002*), 0, "ee24002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24002.e");
+ test_class_info(&lv, &cd_ee24002);
+ dp->~ee24002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24002(Test_ee24002, "ee24002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24002C1Ev();
+extern void _ZN7ee24002D1Ev();
+Name_Map name_map_ee24002[] = {
+ NSPAIR(_ZN7ee24002C1Ev),
+ NSPAIR(_ZN7ee24002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd4002;
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+static Base_Class bases_ee24002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24002[];
+extern void _ZN7ee240023fooEv();
+extern void _ZN6dd40023barEv();
+static VTBL_ENTRY vtc_ee24002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24002[0]),
+ (VTBL_ENTRY)&_ZN7ee240023fooEv,
+ (VTBL_ENTRY)&_ZN6dd40023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24002[];
+extern VTBL_ENTRY _ZTV7ee24002[];
+Class_Descriptor cd_ee24002 = { "ee24002", // class name
+ bases_ee24002, 4,
+ &(vtc_ee24002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34002 : virtual dd4002 {
+ int e;
+ virtual void foo(); // _ZN7ee340023fooEv
+ ~ee34002(); // tgen
+ ee34002(); // tgen
+};
+//SIG(1 ee34002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34002 ::foo(){vfunc_called(this, "_ZN7ee340023fooEv");}
+ee34002 ::~ee34002(){ note_dtor("ee34002", this);} // tgen
+ee34002 ::ee34002(){ note_ctor("ee34002", this);} // tgen
+
+static void Test_ee34002()
+{
+ extern Class_Descriptor cd_ee34002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34002, buf);
+ ee34002 *dp, &lv = *(dp=new (buf) ee34002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd4002*), ABISELECT(16,8), "ee34002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd4002*), ABISELECT(16,8), "ee34002");
+ check_base_class_offset(lv, (cc002*)(dd4002*), ABISELECT(16,8), "ee34002");
+ check_base_class_offset(lv, (dd4002*), ABISELECT(16,8), "ee34002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34002.e");
+ test_class_info(&lv, &cd_ee34002);
+ dp->~ee34002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34002(Test_ee34002, "ee34002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34002C1Ev();
+extern void _ZN7ee34002D1Ev();
+Name_Map name_map_ee34002[] = {
+ NSPAIR(_ZN7ee34002C1Ev),
+ NSPAIR(_ZN7ee34002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd4002;
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+static Base_Class bases_ee34002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34002[];
+extern void _ZN7ee340023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340023fooEv,_ZTv0_n12_N7ee340023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee340023fooEv,_ZThn8_N7ee340023fooEv)() __attribute__((weak));
+extern void _ZN6dd40023barEv();
+static VTBL_ENTRY vtc_ee34002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34002[0]),
+ (VTBL_ENTRY)&_ZN7ee340023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340023fooEv,_ZTv0_n12_N7ee340023fooEv),
+ (VTBL_ENTRY)&_ZN6dd40023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34002[];
+static VTT_ENTRY vtt_ee34002[] = {
+ {&(_ZTV7ee34002[3]), 3,10},
+ {&(_ZTV7ee34002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34002[];
+extern VTBL_ENTRY _ZTV7ee34002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34002[];
+static VTBL_ENTRY alt_thunk_names713[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340023fooEv,_ZTv0_n12_N7ee340023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee340023fooEv,_ZThn8_N7ee340023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34002 = { "ee34002", // class name
+ bases_ee34002, 4,
+ &(vtc_ee34002[0]), // expected_vtbl_contents
+ &(vtt_ee34002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names713,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44002 : dd4002 {
+ int e;
+ virtual void bar(); // _ZN7ee440023barEv
+ ~ee44002(); // tgen
+ ee44002(); // tgen
+};
+//SIG(1 ee44002) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44002 ::bar(){vfunc_called(this, "_ZN7ee440023barEv");}
+ee44002 ::~ee44002(){ note_dtor("ee44002", this);} // tgen
+ee44002 ::ee44002(){ note_ctor("ee44002", this);} // tgen
+
+static void Test_ee44002()
+{
+ extern Class_Descriptor cd_ee44002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44002, buf);
+ ee44002 *dp, &lv = *(dp=new (buf) ee44002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd4002*), 0, "ee44002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd4002*), 0, "ee44002");
+ check_base_class_offset(lv, (cc002*)(dd4002*), 0, "ee44002");
+ check_base_class_offset(lv, (dd4002*), 0, "ee44002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44002.e");
+ test_class_info(&lv, &cd_ee44002);
+ dp->~ee44002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44002(Test_ee44002, "ee44002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44002C1Ev();
+extern void _ZN7ee44002D1Ev();
+Name_Map name_map_ee44002[] = {
+ NSPAIR(_ZN7ee44002C1Ev),
+ NSPAIR(_ZN7ee44002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd4002;
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+static Base_Class bases_ee44002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44002[];
+extern void _ZN3aa23fooEv();
+extern void _ZN7ee440023barEv();
+static VTBL_ENTRY vtc_ee44002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN7ee440023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44002[];
+extern VTBL_ENTRY _ZTV7ee44002[];
+Class_Descriptor cd_ee44002 = { "ee44002", // class name
+ bases_ee44002, 4,
+ &(vtc_ee44002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54002 : virtual dd4002 {
+ int e;
+ virtual void bar(); // _ZN7ee540023barEv
+ ~ee54002(); // tgen
+ ee54002(); // tgen
+};
+//SIG(1 ee54002) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54002 ::bar(){vfunc_called(this, "_ZN7ee540023barEv");}
+ee54002 ::~ee54002(){ note_dtor("ee54002", this);} // tgen
+ee54002 ::ee54002(){ note_ctor("ee54002", this);} // tgen
+
+static void Test_ee54002()
+{
+ extern Class_Descriptor cd_ee54002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54002, buf);
+ ee54002 *dp, &lv = *(dp=new (buf) ee54002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd4002*), ABISELECT(16,8), "ee54002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd4002*), ABISELECT(16,8), "ee54002");
+ check_base_class_offset(lv, (cc002*)(dd4002*), ABISELECT(16,8), "ee54002");
+ check_base_class_offset(lv, (dd4002*), ABISELECT(16,8), "ee54002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54002.e");
+ test_class_info(&lv, &cd_ee54002);
+ dp->~ee54002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54002(Test_ee54002, "ee54002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54002C1Ev();
+extern void _ZN7ee54002D1Ev();
+Name_Map name_map_ee54002[] = {
+ NSPAIR(_ZN7ee54002C1Ev),
+ NSPAIR(_ZN7ee54002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd4002;
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+static Base_Class bases_ee54002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54002[];
+extern void _ZN7ee540023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540023barEv,_ZTv0_n16_N7ee540023barEv)();
+extern void ABISELECT(_ZThn16_N7ee540023barEv,_ZThn8_N7ee540023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54002[0]),
+ (VTBL_ENTRY)&_ZN7ee540023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540023barEv,_ZTv0_n16_N7ee540023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54002[];
+static VTT_ENTRY vtt_ee54002[] = {
+ {&(_ZTV7ee54002[3]), 3,10},
+ {&(_ZTV7ee54002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54002[];
+extern VTBL_ENTRY _ZTV7ee54002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54002[];
+static VTBL_ENTRY alt_thunk_names714[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540023barEv,_ZTv0_n16_N7ee540023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540023barEv,_ZThn8_N7ee540023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54002 = { "ee54002", // class name
+ bases_ee54002, 4,
+ &(vtc_ee54002[0]), // expected_vtbl_contents
+ &(vtt_ee54002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names714,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64002 : dd4002 {
+ int e;
+ virtual void foo(); // _ZN7ee640023fooEv
+ virtual void bar(); // _ZN7ee640023barEv
+ ~ee64002(); // tgen
+ ee64002(); // tgen
+};
+//SIG(1 ee64002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64002 ::foo(){vfunc_called(this, "_ZN7ee640023fooEv");}
+void ee64002 ::bar(){vfunc_called(this, "_ZN7ee640023barEv");}
+ee64002 ::~ee64002(){ note_dtor("ee64002", this);} // tgen
+ee64002 ::ee64002(){ note_ctor("ee64002", this);} // tgen
+
+static void Test_ee64002()
+{
+ extern Class_Descriptor cd_ee64002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64002, buf);
+ ee64002 *dp, &lv = *(dp=new (buf) ee64002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd4002*), 0, "ee64002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd4002*), 0, "ee64002");
+ check_base_class_offset(lv, (cc002*)(dd4002*), 0, "ee64002");
+ check_base_class_offset(lv, (dd4002*), 0, "ee64002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64002.e");
+ test_class_info(&lv, &cd_ee64002);
+ dp->~ee64002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64002(Test_ee64002, "ee64002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64002C1Ev();
+extern void _ZN7ee64002D1Ev();
+Name_Map name_map_ee64002[] = {
+ NSPAIR(_ZN7ee64002C1Ev),
+ NSPAIR(_ZN7ee64002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd4002;
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+static Base_Class bases_ee64002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64002[];
+extern void _ZN7ee640023fooEv();
+extern void _ZN7ee640023barEv();
+static VTBL_ENTRY vtc_ee64002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64002[0]),
+ (VTBL_ENTRY)&_ZN7ee640023fooEv,
+ (VTBL_ENTRY)&_ZN7ee640023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64002[];
+extern VTBL_ENTRY _ZTV7ee64002[];
+Class_Descriptor cd_ee64002 = { "ee64002", // class name
+ bases_ee64002, 4,
+ &(vtc_ee64002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74002 : virtual dd4002 {
+ int e;
+ virtual void foo(); // _ZN7ee740023fooEv
+ virtual void bar(); // _ZN7ee740023barEv
+ ~ee74002(); // tgen
+ ee74002(); // tgen
+};
+//SIG(1 ee74002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74002 ::foo(){vfunc_called(this, "_ZN7ee740023fooEv");}
+void ee74002 ::bar(){vfunc_called(this, "_ZN7ee740023barEv");}
+ee74002 ::~ee74002(){ note_dtor("ee74002", this);} // tgen
+ee74002 ::ee74002(){ note_ctor("ee74002", this);} // tgen
+
+static void Test_ee74002()
+{
+ extern Class_Descriptor cd_ee74002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74002, buf);
+ ee74002 *dp, &lv = *(dp=new (buf) ee74002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd4002*), ABISELECT(16,8), "ee74002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd4002*), ABISELECT(16,8), "ee74002");
+ check_base_class_offset(lv, (cc002*)(dd4002*), ABISELECT(16,8), "ee74002");
+ check_base_class_offset(lv, (dd4002*), ABISELECT(16,8), "ee74002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74002.e");
+ test_class_info(&lv, &cd_ee74002);
+ dp->~ee74002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74002(Test_ee74002, "ee74002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74002C1Ev();
+extern void _ZN7ee74002D1Ev();
+Name_Map name_map_ee74002[] = {
+ NSPAIR(_ZN7ee74002C1Ev),
+ NSPAIR(_ZN7ee74002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd4002;
+extern VTBL_ENTRY _ZTI6dd4002[];
+extern VTBL_ENTRY _ZTV6dd4002[];
+static Base_Class bases_ee74002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74002[];
+extern void _ZN7ee740023fooEv();
+extern void _ZN7ee740023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee740023fooEv,_ZTv0_n12_N7ee740023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee740023fooEv,_ZThn8_N7ee740023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740023barEv,_ZTv0_n16_N7ee740023barEv)();
+extern void ABISELECT(_ZThn16_N7ee740023barEv,_ZThn8_N7ee740023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74002[0]),
+ (VTBL_ENTRY)&_ZN7ee740023fooEv,
+ (VTBL_ENTRY)&_ZN7ee740023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740023fooEv,_ZTv0_n12_N7ee740023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740023barEv,_ZTv0_n16_N7ee740023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74002[];
+static VTT_ENTRY vtt_ee74002[] = {
+ {&(_ZTV7ee74002[3]), 3,11},
+ {&(_ZTV7ee74002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74002[];
+extern VTBL_ENTRY _ZTV7ee74002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74002[];
+static VTBL_ENTRY alt_thunk_names715[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740023barEv,_ZTv0_n16_N7ee740023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740023barEv,_ZThn8_N7ee740023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740023fooEv,_ZTv0_n12_N7ee740023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740023fooEv,_ZThn8_N7ee740023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74002 = { "ee74002", // class name
+ bases_ee74002, 4,
+ &(vtc_ee74002[0]), // expected_vtbl_contents
+ &(vtt_ee74002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names715,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5002 : virtual cc002 {
+ int d;
+ virtual void bar(); // _ZN6dd50023barEv
+ ~dd5002(); // tgen
+ dd5002(); // tgen
+};
+//SIG(-1 dd5002) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void dd5002 ::bar(){vfunc_called(this, "_ZN6dd50023barEv");}
+dd5002 ::~dd5002(){ note_dtor("dd5002", this);} // tgen
+dd5002 ::dd5002(){ note_ctor("dd5002", this);} // tgen
+
+static void Test_dd5002()
+{
+ extern Class_Descriptor cd_dd5002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5002, buf);
+ dd5002 *dp, &lv = *(dp=new (buf) dd5002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,8), "dd5002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,8), "dd5002");
+ check_base_class_offset(lv, (cc002*), ABISELECT(16,8), "dd5002");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5002.d");
+ test_class_info(&lv, &cd_dd5002);
+ dp->~dd5002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5002(Test_dd5002, "dd5002", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5002C1Ev();
+extern void _ZN6dd5002D1Ev();
+Name_Map name_map_dd5002[] = {
+ NSPAIR(_ZN6dd5002C1Ev),
+ NSPAIR(_ZN6dd5002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+static Base_Class bases_dd5002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern void _ZN6dd50023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5002[];
+static VTT_ENTRY vtt_dd5002[] = {
+ {&(_ZTV6dd5002[3]), 3,10},
+ {&(_ZTV6dd5002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static VTBL_ENTRY alt_thunk_names716[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5002 = { "dd5002", // class name
+ bases_dd5002, 3,
+ &(vtc_dd5002[0]), // expected_vtbl_contents
+ &(vtt_dd5002[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5002),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names716,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05002 : dd5002 {
+ int e;
+ ~ee05002(); // tgen
+ ee05002(); // tgen
+};
+//SIG(1 ee05002) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee05002 ::~ee05002(){ note_dtor("ee05002", this);} // tgen
+ee05002 ::ee05002(){ note_ctor("ee05002", this);} // tgen
+
+static void Test_ee05002()
+{
+ extern Class_Descriptor cd_ee05002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05002, buf);
+ ee05002 *dp, &lv = *(dp=new (buf) ee05002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee05002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee05002");
+ check_base_class_offset(lv, (cc002*)(dd5002*), ABISELECT(16,12), "ee05002");
+ check_base_class_offset(lv, (dd5002*), 0, "ee05002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05002.e");
+ test_class_info(&lv, &cd_ee05002);
+ dp->~ee05002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05002(Test_ee05002, "ee05002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05002C1Ev();
+extern void _ZN7ee05002D1Ev();
+Name_Map name_map_ee05002[] = {
+ NSPAIR(_ZN7ee05002C1Ev),
+ NSPAIR(_ZN7ee05002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd5002;
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static Base_Class bases_ee05002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05002[];
+extern void _ZN6dd50023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05002[];
+extern void _ZN6dd50023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5002__7ee05002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd5002__7ee05002[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+static VTT_ENTRY vtt_ee05002[] = {
+ {&(_ZTV7ee05002[3]), 3,10},
+ {&(_tg__ZTV6dd5002__7ee05002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd5002__7ee05002[4]), 4,6},
+ {&(_ZTV7ee05002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05002[];
+extern VTBL_ENTRY _ZTV7ee05002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05002[];
+static VTBL_ENTRY alt_thunk_names717[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05002 = { "ee05002", // class name
+ bases_ee05002, 4,
+ &(vtc_ee05002[0]), // expected_vtbl_contents
+ &(vtt_ee05002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names717,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15002 : virtual dd5002 {
+ int e;
+ ~ee15002(); // tgen
+ ee15002(); // tgen
+};
+//SIG(1 ee15002) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee15002 ::~ee15002(){ note_dtor("ee15002", this);} // tgen
+ee15002 ::ee15002(){ note_ctor("ee15002", this);} // tgen
+
+static void Test_ee15002()
+{
+ extern Class_Descriptor cd_ee15002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15002, buf);
+ ee15002 *dp, &lv = *(dp=new (buf) ee15002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee15002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee15002");
+ check_base_class_offset(lv, (cc002*)(dd5002*), ABISELECT(32,16), "ee15002");
+ check_base_class_offset(lv, (dd5002*), ABISELECT(16,8), "ee15002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15002.e");
+ test_class_info(&lv, &cd_ee15002);
+ dp->~ee15002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15002(Test_ee15002, "ee15002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15002C1Ev();
+extern void _ZN7ee15002D1Ev();
+Name_Map name_map_ee15002[] = {
+ NSPAIR(_ZN7ee15002C1Ev),
+ NSPAIR(_ZN7ee15002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd5002;
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static Base_Class bases_ee15002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15002[];
+extern void _ZN6dd50023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15002[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15002[];
+extern void _ZN6dd50023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5002__7ee15002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd5002__7ee15002[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+static VTT_ENTRY vtt_ee15002[] = {
+ {&(_ZTV7ee15002[4]), 4,15},
+ {&(_ZTV7ee15002[8]), 8,15},
+ {&(_ZTV7ee15002[13]), 13,15},
+ {&(_tg__ZTV6dd5002__7ee15002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd5002__7ee15002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15002[];
+extern VTBL_ENTRY _ZTV7ee15002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15002[];
+static VTBL_ENTRY alt_thunk_names718[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15002 = { "ee15002", // class name
+ bases_ee15002, 4,
+ &(vtc_ee15002[0]), // expected_vtbl_contents
+ &(vtt_ee15002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15002),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names718,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25002 : dd5002 {
+ int e;
+ virtual void foo(); // _ZN7ee250023fooEv
+ ~ee25002(); // tgen
+ ee25002(); // tgen
+};
+//SIG(1 ee25002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25002 ::foo(){vfunc_called(this, "_ZN7ee250023fooEv");}
+ee25002 ::~ee25002(){ note_dtor("ee25002", this);} // tgen
+ee25002 ::ee25002(){ note_ctor("ee25002", this);} // tgen
+
+static void Test_ee25002()
+{
+ extern Class_Descriptor cd_ee25002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25002, buf);
+ ee25002 *dp, &lv = *(dp=new (buf) ee25002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee25002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee25002");
+ check_base_class_offset(lv, (cc002*)(dd5002*), ABISELECT(16,12), "ee25002");
+ check_base_class_offset(lv, (dd5002*), 0, "ee25002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25002.e");
+ test_class_info(&lv, &cd_ee25002);
+ dp->~ee25002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25002(Test_ee25002, "ee25002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25002C1Ev();
+extern void _ZN7ee25002D1Ev();
+Name_Map name_map_ee25002[] = {
+ NSPAIR(_ZN7ee25002C1Ev),
+ NSPAIR(_ZN7ee25002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd5002;
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static Base_Class bases_ee25002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25002[];
+extern void _ZN6dd50023barEv();
+extern void _ZN7ee250023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee250023fooEv,_ZTv0_n12_N7ee250023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee250023fooEv,_ZThn12_N7ee250023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+ (VTBL_ENTRY)&_ZN7ee250023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250023fooEv,_ZTv0_n12_N7ee250023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25002[];
+extern void _ZN6dd50023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5002__7ee25002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd5002__7ee25002[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+static VTT_ENTRY vtt_ee25002[] = {
+ {&(_ZTV7ee25002[3]), 3,11},
+ {&(_tg__ZTV6dd5002__7ee25002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd5002__7ee25002[4]), 4,6},
+ {&(_ZTV7ee25002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25002[];
+extern VTBL_ENTRY _ZTV7ee25002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25002[];
+static VTBL_ENTRY alt_thunk_names719[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250023fooEv,_ZTv0_n12_N7ee250023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee250023fooEv,_ZThn12_N7ee250023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25002 = { "ee25002", // class name
+ bases_ee25002, 4,
+ &(vtc_ee25002[0]), // expected_vtbl_contents
+ &(vtt_ee25002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names719,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35002 : virtual dd5002 {
+ int e;
+ virtual void foo(); // _ZN7ee350023fooEv
+ ~ee35002(); // tgen
+ ee35002(); // tgen
+};
+//SIG(1 ee35002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35002 ::foo(){vfunc_called(this, "_ZN7ee350023fooEv");}
+ee35002 ::~ee35002(){ note_dtor("ee35002", this);} // tgen
+ee35002 ::ee35002(){ note_ctor("ee35002", this);} // tgen
+
+static void Test_ee35002()
+{
+ extern Class_Descriptor cd_ee35002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35002, buf);
+ ee35002 *dp, &lv = *(dp=new (buf) ee35002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee35002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee35002");
+ check_base_class_offset(lv, (cc002*)(dd5002*), ABISELECT(32,16), "ee35002");
+ check_base_class_offset(lv, (dd5002*), ABISELECT(16,8), "ee35002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35002.e");
+ test_class_info(&lv, &cd_ee35002);
+ dp->~ee35002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35002(Test_ee35002, "ee35002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35002C1Ev();
+extern void _ZN7ee35002D1Ev();
+Name_Map name_map_ee35002[] = {
+ NSPAIR(_ZN7ee35002C1Ev),
+ NSPAIR(_ZN7ee35002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd5002;
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static Base_Class bases_ee35002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35002[];
+extern void _ZN7ee350023fooEv();
+extern void _ZN6dd50023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee350023fooEv,_ZTv0_n12_N7ee350023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee350023fooEv,_ZThn16_N7ee350023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35002[0]),
+ (VTBL_ENTRY)&_ZN7ee350023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350023fooEv,_ZTv0_n12_N7ee350023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35002[];
+extern void _ZN6dd50023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5002__7ee35002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd5002__7ee35002[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+static VTT_ENTRY vtt_ee35002[] = {
+ {&(_ZTV7ee35002[4]), 4,16},
+ {&(_ZTV7ee35002[9]), 9,16},
+ {&(_ZTV7ee35002[14]), 14,16},
+ {&(_tg__ZTV6dd5002__7ee35002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd5002__7ee35002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35002[];
+extern VTBL_ENTRY _ZTV7ee35002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35002[];
+static VTBL_ENTRY alt_thunk_names720[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350023fooEv,_ZTv0_n12_N7ee350023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee350023fooEv,_ZThn16_N7ee350023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35002 = { "ee35002", // class name
+ bases_ee35002, 4,
+ &(vtc_ee35002[0]), // expected_vtbl_contents
+ &(vtt_ee35002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35002),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names720,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45002 : dd5002 {
+ int e;
+ virtual void bar(); // _ZN7ee450023barEv
+ ~ee45002(); // tgen
+ ee45002(); // tgen
+};
+//SIG(1 ee45002) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45002 ::bar(){vfunc_called(this, "_ZN7ee450023barEv");}
+ee45002 ::~ee45002(){ note_dtor("ee45002", this);} // tgen
+ee45002 ::ee45002(){ note_ctor("ee45002", this);} // tgen
+
+static void Test_ee45002()
+{
+ extern Class_Descriptor cd_ee45002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45002, buf);
+ ee45002 *dp, &lv = *(dp=new (buf) ee45002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee45002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee45002");
+ check_base_class_offset(lv, (cc002*)(dd5002*), ABISELECT(16,12), "ee45002");
+ check_base_class_offset(lv, (dd5002*), 0, "ee45002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45002.e");
+ test_class_info(&lv, &cd_ee45002);
+ dp->~ee45002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45002(Test_ee45002, "ee45002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45002C1Ev();
+extern void _ZN7ee45002D1Ev();
+Name_Map name_map_ee45002[] = {
+ NSPAIR(_ZN7ee45002C1Ev),
+ NSPAIR(_ZN7ee45002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd5002;
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static Base_Class bases_ee45002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45002[];
+extern void _ZN7ee450023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee450023barEv,_ZTv0_n16_N7ee450023barEv)();
+extern void ABISELECT(_ZThn16_N7ee450023barEv,_ZThn12_N7ee450023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45002[0]),
+ (VTBL_ENTRY)&_ZN7ee450023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee450023barEv,_ZTv0_n16_N7ee450023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45002[];
+extern void _ZN6dd50023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5002__7ee45002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd5002__7ee45002[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+static VTT_ENTRY vtt_ee45002[] = {
+ {&(_ZTV7ee45002[3]), 3,10},
+ {&(_tg__ZTV6dd5002__7ee45002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd5002__7ee45002[4]), 4,6},
+ {&(_ZTV7ee45002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45002[];
+extern VTBL_ENTRY _ZTV7ee45002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45002[];
+static VTBL_ENTRY alt_thunk_names721[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee450023barEv,_ZTv0_n16_N7ee450023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee450023barEv,_ZThn12_N7ee450023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45002 = { "ee45002", // class name
+ bases_ee45002, 4,
+ &(vtc_ee45002[0]), // expected_vtbl_contents
+ &(vtt_ee45002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names721,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55002 : virtual dd5002 {
+ int e;
+ virtual void bar(); // _ZN7ee550023barEv
+ ~ee55002(); // tgen
+ ee55002(); // tgen
+};
+//SIG(1 ee55002) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55002 ::bar(){vfunc_called(this, "_ZN7ee550023barEv");}
+ee55002 ::~ee55002(){ note_dtor("ee55002", this);} // tgen
+ee55002 ::ee55002(){ note_ctor("ee55002", this);} // tgen
+
+static void Test_ee55002()
+{
+ extern Class_Descriptor cd_ee55002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55002, buf);
+ ee55002 *dp, &lv = *(dp=new (buf) ee55002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee55002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee55002");
+ check_base_class_offset(lv, (cc002*)(dd5002*), ABISELECT(32,16), "ee55002");
+ check_base_class_offset(lv, (dd5002*), ABISELECT(16,8), "ee55002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55002.e");
+ test_class_info(&lv, &cd_ee55002);
+ dp->~ee55002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55002(Test_ee55002, "ee55002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55002C1Ev();
+extern void _ZN7ee55002D1Ev();
+Name_Map name_map_ee55002[] = {
+ NSPAIR(_ZN7ee55002C1Ev),
+ NSPAIR(_ZN7ee55002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd5002;
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static Base_Class bases_ee55002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55002[];
+extern void _ZN7ee550023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550023barEv,_ZTv0_n16_N7ee550023barEv)();
+extern void ABISELECT(_ZThn16_N7ee550023barEv,_ZThn8_N7ee550023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550023barEv,_ZTv0_n16_N7ee550023barEv)();
+extern void ABISELECT(_ZThn32_N7ee550023barEv,_ZThn16_N7ee550023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55002[0]),
+ (VTBL_ENTRY)&_ZN7ee550023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550023barEv,_ZTv0_n16_N7ee550023barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550023barEv,_ZTv0_n16_N7ee550023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55002[];
+extern void _ZN6dd50023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5002__7ee55002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd5002__7ee55002[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+static VTT_ENTRY vtt_ee55002[] = {
+ {&(_ZTV7ee55002[4]), 4,16},
+ {&(_ZTV7ee55002[9]), 9,16},
+ {&(_ZTV7ee55002[14]), 14,16},
+ {&(_tg__ZTV6dd5002__7ee55002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd5002__7ee55002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55002[];
+extern VTBL_ENTRY _ZTV7ee55002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55002[];
+static VTBL_ENTRY alt_thunk_names722[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550023barEv,_ZTv0_n16_N7ee550023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee550023barEv,_ZThn16_N7ee550023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550023barEv,_ZThn8_N7ee550023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55002 = { "ee55002", // class name
+ bases_ee55002, 4,
+ &(vtc_ee55002[0]), // expected_vtbl_contents
+ &(vtt_ee55002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55002),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names722,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65002 : dd5002 {
+ int e;
+ virtual void foo(); // _ZN7ee650023fooEv
+ virtual void bar(); // _ZN7ee650023barEv
+ ~ee65002(); // tgen
+ ee65002(); // tgen
+};
+//SIG(1 ee65002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65002 ::foo(){vfunc_called(this, "_ZN7ee650023fooEv");}
+void ee65002 ::bar(){vfunc_called(this, "_ZN7ee650023barEv");}
+ee65002 ::~ee65002(){ note_dtor("ee65002", this);} // tgen
+ee65002 ::ee65002(){ note_ctor("ee65002", this);} // tgen
+
+static void Test_ee65002()
+{
+ extern Class_Descriptor cd_ee65002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65002, buf);
+ ee65002 *dp, &lv = *(dp=new (buf) ee65002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee65002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee65002");
+ check_base_class_offset(lv, (cc002*)(dd5002*), ABISELECT(16,12), "ee65002");
+ check_base_class_offset(lv, (dd5002*), 0, "ee65002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65002.e");
+ test_class_info(&lv, &cd_ee65002);
+ dp->~ee65002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65002(Test_ee65002, "ee65002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65002C1Ev();
+extern void _ZN7ee65002D1Ev();
+Name_Map name_map_ee65002[] = {
+ NSPAIR(_ZN7ee65002C1Ev),
+ NSPAIR(_ZN7ee65002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd5002;
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static Base_Class bases_ee65002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65002[];
+extern void _ZN7ee650023barEv();
+extern void _ZN7ee650023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee650023fooEv,_ZTv0_n12_N7ee650023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee650023fooEv,_ZThn12_N7ee650023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee650023barEv,_ZTv0_n16_N7ee650023barEv)();
+extern void ABISELECT(_ZThn16_N7ee650023barEv,_ZThn12_N7ee650023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65002[0]),
+ (VTBL_ENTRY)&_ZN7ee650023barEv,
+ (VTBL_ENTRY)&_ZN7ee650023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650023fooEv,_ZTv0_n12_N7ee650023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650023barEv,_ZTv0_n16_N7ee650023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65002[];
+extern void _ZN6dd50023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5002__7ee65002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd5002__7ee65002[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+static VTT_ENTRY vtt_ee65002[] = {
+ {&(_ZTV7ee65002[3]), 3,11},
+ {&(_tg__ZTV6dd5002__7ee65002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd5002__7ee65002[4]), 4,6},
+ {&(_ZTV7ee65002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65002[];
+extern VTBL_ENTRY _ZTV7ee65002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65002[];
+static VTBL_ENTRY alt_thunk_names723[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn12_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650023barEv,_ZTv0_n16_N7ee650023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650023barEv,_ZThn12_N7ee650023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650023fooEv,_ZTv0_n12_N7ee650023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650023fooEv,_ZThn12_N7ee650023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65002 = { "ee65002", // class name
+ bases_ee65002, 4,
+ &(vtc_ee65002[0]), // expected_vtbl_contents
+ &(vtt_ee65002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names723,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75002 : virtual dd5002 {
+ int e;
+ virtual void foo(); // _ZN7ee750023fooEv
+ virtual void bar(); // _ZN7ee750023barEv
+ ~ee75002(); // tgen
+ ee75002(); // tgen
+};
+//SIG(1 ee75002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75002 ::foo(){vfunc_called(this, "_ZN7ee750023fooEv");}
+void ee75002 ::bar(){vfunc_called(this, "_ZN7ee750023barEv");}
+ee75002 ::~ee75002(){ note_dtor("ee75002", this);} // tgen
+ee75002 ::ee75002(){ note_ctor("ee75002", this);} // tgen
+
+static void Test_ee75002()
+{
+ extern Class_Descriptor cd_ee75002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75002, buf);
+ ee75002 *dp, &lv = *(dp=new (buf) ee75002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee75002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee75002");
+ check_base_class_offset(lv, (cc002*)(dd5002*), ABISELECT(32,16), "ee75002");
+ check_base_class_offset(lv, (dd5002*), ABISELECT(16,8), "ee75002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75002.e");
+ test_class_info(&lv, &cd_ee75002);
+ dp->~ee75002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75002(Test_ee75002, "ee75002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75002C1Ev();
+extern void _ZN7ee75002D1Ev();
+Name_Map name_map_ee75002[] = {
+ NSPAIR(_ZN7ee75002C1Ev),
+ NSPAIR(_ZN7ee75002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd5002;
+extern VTBL_ENTRY _ZTI6dd5002[];
+extern VTBL_ENTRY _ZTV6dd5002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5002[];
+static Base_Class bases_ee75002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5002, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75002[];
+extern void _ZN7ee750023fooEv();
+extern void _ZN7ee750023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee750023barEv,_ZTv0_n16_N7ee750023barEv)();
+extern void ABISELECT(_ZThn16_N7ee750023barEv,_ZThn8_N7ee750023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750023fooEv,_ZTv0_n12_N7ee750023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee750023fooEv,_ZThn16_N7ee750023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750023barEv,_ZTv0_n16_N7ee750023barEv)();
+extern void ABISELECT(_ZThn32_N7ee750023barEv,_ZThn16_N7ee750023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75002[0]),
+ (VTBL_ENTRY)&_ZN7ee750023fooEv,
+ (VTBL_ENTRY)&_ZN7ee750023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750023barEv,_ZTv0_n16_N7ee750023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750023fooEv,_ZTv0_n12_N7ee750023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750023barEv,_ZTv0_n16_N7ee750023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75002[];
+extern void _ZN6dd50023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5002__7ee75002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN6dd50023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv)();
+extern void ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd5002__7ee75002[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5002[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv),
+};
+static VTT_ENTRY vtt_ee75002[] = {
+ {&(_ZTV7ee75002[4]), 4,17},
+ {&(_ZTV7ee75002[10]), 10,17},
+ {&(_ZTV7ee75002[15]), 15,17},
+ {&(_tg__ZTV6dd5002__7ee75002[3]), 3,4},
+ {&(_tg__ZTV3aa24bb025cc002__6dd5002__7ee75002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75002[];
+extern VTBL_ENTRY _ZTV7ee75002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75002[];
+static VTBL_ENTRY alt_thunk_names724[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50023barEv,_ZTv0_n16_N6dd50023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50023barEv,_ZThn8_N6dd50023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750023fooEv,_ZTv0_n12_N7ee750023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750023fooEv,_ZThn16_N7ee750023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750023barEv,_ZTv0_n16_N7ee750023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750023barEv,_ZThn16_N7ee750023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750023barEv,_ZThn8_N7ee750023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75002 = { "ee75002", // class name
+ bases_ee75002, 4,
+ &(vtc_ee75002[0]), // expected_vtbl_contents
+ &(vtt_ee75002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75002),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names724,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6002 : cc002 {
+ int d;
+ virtual void bar(); // _ZN6dd60023barEv
+ virtual void foo(); // _ZN6dd60023fooEv
+ ~dd6002(); // tgen
+ dd6002(); // tgen
+};
+//SIG(-1 dd6002) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd6002 ::bar(){vfunc_called(this, "_ZN6dd60023barEv");}
+void dd6002 ::foo(){vfunc_called(this, "_ZN6dd60023fooEv");}
+dd6002 ::~dd6002(){ note_dtor("dd6002", this);} // tgen
+dd6002 ::dd6002(){ note_ctor("dd6002", this);} // tgen
+
+static void Test_dd6002()
+{
+ extern Class_Descriptor cd_dd6002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6002, buf);
+ dd6002 *dp, &lv = *(dp=new (buf) dd6002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), 0, "dd6002");
+ check_base_class_offset(lv, (bb02*)(cc002*), 0, "dd6002");
+ check_base_class_offset(lv, (cc002*), 0, "dd6002");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6002.d");
+ test_class_info(&lv, &cd_dd6002);
+ dp->~dd6002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6002(Test_dd6002, "dd6002", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6002C1Ev();
+extern void _ZN6dd6002D1Ev();
+Name_Map name_map_dd6002[] = {
+ NSPAIR(_ZN6dd6002C1Ev),
+ NSPAIR(_ZN6dd6002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+static Base_Class bases_dd6002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern void _ZN6dd60023fooEv();
+extern void _ZN6dd60023barEv();
+static VTBL_ENTRY vtc_dd6002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6002[0]),
+ (VTBL_ENTRY)&_ZN6dd60023fooEv,
+ (VTBL_ENTRY)&_ZN6dd60023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+Class_Descriptor cd_dd6002 = { "dd6002", // class name
+ bases_dd6002, 3,
+ &(vtc_dd6002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06002 : dd6002 {
+ int e;
+ ~ee06002(); // tgen
+ ee06002(); // tgen
+};
+//SIG(1 ee06002) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06002 ::~ee06002(){ note_dtor("ee06002", this);} // tgen
+ee06002 ::ee06002(){ note_ctor("ee06002", this);} // tgen
+
+static void Test_ee06002()
+{
+ extern Class_Descriptor cd_ee06002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06002, buf);
+ ee06002 *dp, &lv = *(dp=new (buf) ee06002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd6002*), 0, "ee06002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd6002*), 0, "ee06002");
+ check_base_class_offset(lv, (cc002*)(dd6002*), 0, "ee06002");
+ check_base_class_offset(lv, (dd6002*), 0, "ee06002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06002.e");
+ test_class_info(&lv, &cd_ee06002);
+ dp->~ee06002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06002(Test_ee06002, "ee06002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06002C1Ev();
+extern void _ZN7ee06002D1Ev();
+Name_Map name_map_ee06002[] = {
+ NSPAIR(_ZN7ee06002C1Ev),
+ NSPAIR(_ZN7ee06002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd6002;
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+static Base_Class bases_ee06002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6002, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06002[];
+extern void _ZN6dd60023fooEv();
+extern void _ZN6dd60023barEv();
+static VTBL_ENTRY vtc_ee06002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06002[0]),
+ (VTBL_ENTRY)&_ZN6dd60023fooEv,
+ (VTBL_ENTRY)&_ZN6dd60023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06002[];
+extern VTBL_ENTRY _ZTV7ee06002[];
+Class_Descriptor cd_ee06002 = { "ee06002", // class name
+ bases_ee06002, 4,
+ &(vtc_ee06002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16002 : virtual dd6002 {
+ int e;
+ ~ee16002(); // tgen
+ ee16002(); // tgen
+};
+//SIG(1 ee16002) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16002 ::~ee16002(){ note_dtor("ee16002", this);} // tgen
+ee16002 ::ee16002(){ note_ctor("ee16002", this);} // tgen
+
+static void Test_ee16002()
+{
+ extern Class_Descriptor cd_ee16002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16002, buf);
+ ee16002 *dp, &lv = *(dp=new (buf) ee16002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd6002*), ABISELECT(16,8), "ee16002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd6002*), ABISELECT(16,8), "ee16002");
+ check_base_class_offset(lv, (cc002*)(dd6002*), ABISELECT(16,8), "ee16002");
+ check_base_class_offset(lv, (dd6002*), ABISELECT(16,8), "ee16002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16002.e");
+ test_class_info(&lv, &cd_ee16002);
+ dp->~ee16002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16002(Test_ee16002, "ee16002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16002C1Ev();
+extern void _ZN7ee16002D1Ev();
+Name_Map name_map_ee16002[] = {
+ NSPAIR(_ZN7ee16002C1Ev),
+ NSPAIR(_ZN7ee16002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd6002;
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+static Base_Class bases_ee16002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6002, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16002[];
+extern void _ZN6dd60023fooEv();
+extern void _ZN6dd60023barEv();
+static VTBL_ENTRY vtc_ee16002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16002[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16002[0]),
+ (VTBL_ENTRY)&_ZN6dd60023fooEv,
+ (VTBL_ENTRY)&_ZN6dd60023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16002[];
+static VTT_ENTRY vtt_ee16002[] = {
+ {&(_ZTV7ee16002[3]), 3,9},
+ {&(_ZTV7ee16002[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16002[];
+extern VTBL_ENTRY _ZTV7ee16002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16002[];
+Class_Descriptor cd_ee16002 = { "ee16002", // class name
+ bases_ee16002, 4,
+ &(vtc_ee16002[0]), // expected_vtbl_contents
+ &(vtt_ee16002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16002),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26002 : dd6002 {
+ int e;
+ virtual void foo(); // _ZN7ee260023fooEv
+ ~ee26002(); // tgen
+ ee26002(); // tgen
+};
+//SIG(1 ee26002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26002 ::foo(){vfunc_called(this, "_ZN7ee260023fooEv");}
+ee26002 ::~ee26002(){ note_dtor("ee26002", this);} // tgen
+ee26002 ::ee26002(){ note_ctor("ee26002", this);} // tgen
+
+static void Test_ee26002()
+{
+ extern Class_Descriptor cd_ee26002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26002, buf);
+ ee26002 *dp, &lv = *(dp=new (buf) ee26002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd6002*), 0, "ee26002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd6002*), 0, "ee26002");
+ check_base_class_offset(lv, (cc002*)(dd6002*), 0, "ee26002");
+ check_base_class_offset(lv, (dd6002*), 0, "ee26002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26002.e");
+ test_class_info(&lv, &cd_ee26002);
+ dp->~ee26002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26002(Test_ee26002, "ee26002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26002C1Ev();
+extern void _ZN7ee26002D1Ev();
+Name_Map name_map_ee26002[] = {
+ NSPAIR(_ZN7ee26002C1Ev),
+ NSPAIR(_ZN7ee26002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd6002;
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+static Base_Class bases_ee26002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26002[];
+extern void _ZN7ee260023fooEv();
+extern void _ZN6dd60023barEv();
+static VTBL_ENTRY vtc_ee26002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26002[0]),
+ (VTBL_ENTRY)&_ZN7ee260023fooEv,
+ (VTBL_ENTRY)&_ZN6dd60023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26002[];
+extern VTBL_ENTRY _ZTV7ee26002[];
+Class_Descriptor cd_ee26002 = { "ee26002", // class name
+ bases_ee26002, 4,
+ &(vtc_ee26002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36002 : virtual dd6002 {
+ int e;
+ virtual void foo(); // _ZN7ee360023fooEv
+ ~ee36002(); // tgen
+ ee36002(); // tgen
+};
+//SIG(1 ee36002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36002 ::foo(){vfunc_called(this, "_ZN7ee360023fooEv");}
+ee36002 ::~ee36002(){ note_dtor("ee36002", this);} // tgen
+ee36002 ::ee36002(){ note_ctor("ee36002", this);} // tgen
+
+static void Test_ee36002()
+{
+ extern Class_Descriptor cd_ee36002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36002, buf);
+ ee36002 *dp, &lv = *(dp=new (buf) ee36002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd6002*), ABISELECT(16,8), "ee36002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd6002*), ABISELECT(16,8), "ee36002");
+ check_base_class_offset(lv, (cc002*)(dd6002*), ABISELECT(16,8), "ee36002");
+ check_base_class_offset(lv, (dd6002*), ABISELECT(16,8), "ee36002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36002.e");
+ test_class_info(&lv, &cd_ee36002);
+ dp->~ee36002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36002(Test_ee36002, "ee36002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36002C1Ev();
+extern void _ZN7ee36002D1Ev();
+Name_Map name_map_ee36002[] = {
+ NSPAIR(_ZN7ee36002C1Ev),
+ NSPAIR(_ZN7ee36002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd6002;
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+static Base_Class bases_ee36002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36002[];
+extern void _ZN7ee360023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee360023fooEv,_ZTv0_n12_N7ee360023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360023fooEv,_ZThn8_N7ee360023fooEv)() __attribute__((weak));
+extern void _ZN6dd60023barEv();
+static VTBL_ENTRY vtc_ee36002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36002[0]),
+ (VTBL_ENTRY)&_ZN7ee360023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360023fooEv,_ZTv0_n12_N7ee360023fooEv),
+ (VTBL_ENTRY)&_ZN6dd60023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36002[];
+static VTT_ENTRY vtt_ee36002[] = {
+ {&(_ZTV7ee36002[3]), 3,10},
+ {&(_ZTV7ee36002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36002[];
+extern VTBL_ENTRY _ZTV7ee36002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36002[];
+static VTBL_ENTRY alt_thunk_names725[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360023fooEv,_ZTv0_n12_N7ee360023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360023fooEv,_ZThn8_N7ee360023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36002 = { "ee36002", // class name
+ bases_ee36002, 4,
+ &(vtc_ee36002[0]), // expected_vtbl_contents
+ &(vtt_ee36002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names725,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46002 : dd6002 {
+ int e;
+ virtual void bar(); // _ZN7ee460023barEv
+ ~ee46002(); // tgen
+ ee46002(); // tgen
+};
+//SIG(1 ee46002) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46002 ::bar(){vfunc_called(this, "_ZN7ee460023barEv");}
+ee46002 ::~ee46002(){ note_dtor("ee46002", this);} // tgen
+ee46002 ::ee46002(){ note_ctor("ee46002", this);} // tgen
+
+static void Test_ee46002()
+{
+ extern Class_Descriptor cd_ee46002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46002, buf);
+ ee46002 *dp, &lv = *(dp=new (buf) ee46002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd6002*), 0, "ee46002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd6002*), 0, "ee46002");
+ check_base_class_offset(lv, (cc002*)(dd6002*), 0, "ee46002");
+ check_base_class_offset(lv, (dd6002*), 0, "ee46002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46002.e");
+ test_class_info(&lv, &cd_ee46002);
+ dp->~ee46002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46002(Test_ee46002, "ee46002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46002C1Ev();
+extern void _ZN7ee46002D1Ev();
+Name_Map name_map_ee46002[] = {
+ NSPAIR(_ZN7ee46002C1Ev),
+ NSPAIR(_ZN7ee46002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd6002;
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+static Base_Class bases_ee46002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46002[];
+extern void _ZN6dd60023fooEv();
+extern void _ZN7ee460023barEv();
+static VTBL_ENTRY vtc_ee46002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46002[0]),
+ (VTBL_ENTRY)&_ZN6dd60023fooEv,
+ (VTBL_ENTRY)&_ZN7ee460023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46002[];
+extern VTBL_ENTRY _ZTV7ee46002[];
+Class_Descriptor cd_ee46002 = { "ee46002", // class name
+ bases_ee46002, 4,
+ &(vtc_ee46002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56002 : virtual dd6002 {
+ int e;
+ virtual void bar(); // _ZN7ee560023barEv
+ ~ee56002(); // tgen
+ ee56002(); // tgen
+};
+//SIG(1 ee56002) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56002 ::bar(){vfunc_called(this, "_ZN7ee560023barEv");}
+ee56002 ::~ee56002(){ note_dtor("ee56002", this);} // tgen
+ee56002 ::ee56002(){ note_ctor("ee56002", this);} // tgen
+
+static void Test_ee56002()
+{
+ extern Class_Descriptor cd_ee56002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56002, buf);
+ ee56002 *dp, &lv = *(dp=new (buf) ee56002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd6002*), ABISELECT(16,8), "ee56002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd6002*), ABISELECT(16,8), "ee56002");
+ check_base_class_offset(lv, (cc002*)(dd6002*), ABISELECT(16,8), "ee56002");
+ check_base_class_offset(lv, (dd6002*), ABISELECT(16,8), "ee56002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56002.e");
+ test_class_info(&lv, &cd_ee56002);
+ dp->~ee56002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56002(Test_ee56002, "ee56002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56002C1Ev();
+extern void _ZN7ee56002D1Ev();
+Name_Map name_map_ee56002[] = {
+ NSPAIR(_ZN7ee56002C1Ev),
+ NSPAIR(_ZN7ee56002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd6002;
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+static Base_Class bases_ee56002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56002[];
+extern void _ZN7ee560023barEv();
+extern void _ZN6dd60023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560023barEv,_ZTv0_n16_N7ee560023barEv)();
+extern void ABISELECT(_ZThn16_N7ee560023barEv,_ZThn8_N7ee560023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56002[0]),
+ (VTBL_ENTRY)&_ZN7ee560023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56002[0]),
+ (VTBL_ENTRY)&_ZN6dd60023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560023barEv,_ZTv0_n16_N7ee560023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56002[];
+static VTT_ENTRY vtt_ee56002[] = {
+ {&(_ZTV7ee56002[3]), 3,10},
+ {&(_ZTV7ee56002[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56002[];
+extern VTBL_ENTRY _ZTV7ee56002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56002[];
+static VTBL_ENTRY alt_thunk_names726[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560023barEv,_ZTv0_n16_N7ee560023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560023barEv,_ZThn8_N7ee560023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56002 = { "ee56002", // class name
+ bases_ee56002, 4,
+ &(vtc_ee56002[0]), // expected_vtbl_contents
+ &(vtt_ee56002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56002),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names726,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66002 : dd6002 {
+ int e;
+ virtual void foo(); // _ZN7ee660023fooEv
+ virtual void bar(); // _ZN7ee660023barEv
+ ~ee66002(); // tgen
+ ee66002(); // tgen
+};
+//SIG(1 ee66002) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66002 ::foo(){vfunc_called(this, "_ZN7ee660023fooEv");}
+void ee66002 ::bar(){vfunc_called(this, "_ZN7ee660023barEv");}
+ee66002 ::~ee66002(){ note_dtor("ee66002", this);} // tgen
+ee66002 ::ee66002(){ note_ctor("ee66002", this);} // tgen
+
+static void Test_ee66002()
+{
+ extern Class_Descriptor cd_ee66002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66002, buf);
+ ee66002 *dp, &lv = *(dp=new (buf) ee66002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd6002*), 0, "ee66002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd6002*), 0, "ee66002");
+ check_base_class_offset(lv, (cc002*)(dd6002*), 0, "ee66002");
+ check_base_class_offset(lv, (dd6002*), 0, "ee66002");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66002.e");
+ test_class_info(&lv, &cd_ee66002);
+ dp->~ee66002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66002(Test_ee66002, "ee66002", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66002C1Ev();
+extern void _ZN7ee66002D1Ev();
+Name_Map name_map_ee66002[] = {
+ NSPAIR(_ZN7ee66002C1Ev),
+ NSPAIR(_ZN7ee66002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd6002;
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+static Base_Class bases_ee66002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66002[];
+extern void _ZN7ee660023fooEv();
+extern void _ZN7ee660023barEv();
+static VTBL_ENTRY vtc_ee66002[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66002[0]),
+ (VTBL_ENTRY)&_ZN7ee660023fooEv,
+ (VTBL_ENTRY)&_ZN7ee660023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66002[];
+extern VTBL_ENTRY _ZTV7ee66002[];
+Class_Descriptor cd_ee66002 = { "ee66002", // class name
+ bases_ee66002, 4,
+ &(vtc_ee66002[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66002),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76002 : virtual dd6002 {
+ int e;
+ virtual void foo(); // _ZN7ee760023fooEv
+ virtual void bar(); // _ZN7ee760023barEv
+ ~ee76002(); // tgen
+ ee76002(); // tgen
+};
+//SIG(1 ee76002) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76002 ::foo(){vfunc_called(this, "_ZN7ee760023fooEv");}
+void ee76002 ::bar(){vfunc_called(this, "_ZN7ee760023barEv");}
+ee76002 ::~ee76002(){ note_dtor("ee76002", this);} // tgen
+ee76002 ::ee76002(){ note_ctor("ee76002", this);} // tgen
+
+static void Test_ee76002()
+{
+ extern Class_Descriptor cd_ee76002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76002, buf);
+ ee76002 *dp, &lv = *(dp=new (buf) ee76002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*)(dd6002*), ABISELECT(16,8), "ee76002");
+ check_base_class_offset(lv, (bb02*)(cc002*)(dd6002*), ABISELECT(16,8), "ee76002");
+ check_base_class_offset(lv, (cc002*)(dd6002*), ABISELECT(16,8), "ee76002");
+ check_base_class_offset(lv, (dd6002*), ABISELECT(16,8), "ee76002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76002.e");
+ test_class_info(&lv, &cd_ee76002);
+ dp->~ee76002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76002(Test_ee76002, "ee76002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76002C1Ev();
+extern void _ZN7ee76002D1Ev();
+Name_Map name_map_ee76002[] = {
+ NSPAIR(_ZN7ee76002C1Ev),
+ NSPAIR(_ZN7ee76002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd6002;
+extern VTBL_ENTRY _ZTI6dd6002[];
+extern VTBL_ENTRY _ZTV6dd6002[];
+static Base_Class bases_ee76002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76002[];
+extern void _ZN7ee760023fooEv();
+extern void _ZN7ee760023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee760023fooEv,_ZTv0_n12_N7ee760023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760023fooEv,_ZThn8_N7ee760023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760023barEv,_ZTv0_n16_N7ee760023barEv)();
+extern void ABISELECT(_ZThn16_N7ee760023barEv,_ZThn8_N7ee760023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76002[0]),
+ (VTBL_ENTRY)&_ZN7ee760023fooEv,
+ (VTBL_ENTRY)&_ZN7ee760023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760023fooEv,_ZTv0_n12_N7ee760023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760023barEv,_ZTv0_n16_N7ee760023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76002[];
+static VTT_ENTRY vtt_ee76002[] = {
+ {&(_ZTV7ee76002[3]), 3,11},
+ {&(_ZTV7ee76002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76002[];
+extern VTBL_ENTRY _ZTV7ee76002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76002[];
+static VTBL_ENTRY alt_thunk_names727[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760023barEv,_ZTv0_n16_N7ee760023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760023barEv,_ZThn8_N7ee760023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760023fooEv,_ZTv0_n12_N7ee760023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760023fooEv,_ZThn8_N7ee760023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76002 = { "ee76002", // class name
+ bases_ee76002, 4,
+ &(vtc_ee76002[0]), // expected_vtbl_contents
+ &(vtt_ee76002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76002),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names727,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7002 : virtual cc002 {
+ int d;
+ virtual void bar(); // _ZN6dd70023barEv
+ virtual void foo(); // _ZN6dd70023fooEv
+ ~dd7002(); // tgen
+ dd7002(); // tgen
+};
+//SIG(-1 dd7002) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd7002 ::bar(){vfunc_called(this, "_ZN6dd70023barEv");}
+void dd7002 ::foo(){vfunc_called(this, "_ZN6dd70023fooEv");}
+dd7002 ::~dd7002(){ note_dtor("dd7002", this);} // tgen
+dd7002 ::dd7002(){ note_ctor("dd7002", this);} // tgen
+
+static void Test_dd7002()
+{
+ extern Class_Descriptor cd_dd7002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7002, buf);
+ dd7002 *dp, &lv = *(dp=new (buf) dd7002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,8), "dd7002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,8), "dd7002");
+ check_base_class_offset(lv, (cc002*), ABISELECT(16,8), "dd7002");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7002.d");
+ test_class_info(&lv, &cd_dd7002);
+ dp->~dd7002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7002(Test_dd7002, "dd7002", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7002C1Ev();
+extern void _ZN6dd7002D1Ev();
+Name_Map name_map_dd7002[] = {
+ NSPAIR(_ZN6dd7002C1Ev),
+ NSPAIR(_ZN6dd7002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+static Base_Class bases_dd7002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7002[];
+static VTT_ENTRY vtt_dd7002[] = {
+ {&(_ZTV6dd7002[3]), 3,11},
+ {&(_ZTV6dd7002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static VTBL_ENTRY alt_thunk_names728[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7002 = { "dd7002", // class name
+ bases_dd7002, 3,
+ &(vtc_dd7002[0]), // expected_vtbl_contents
+ &(vtt_dd7002[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7002),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names728,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07002 : dd7002 {
+ int e;
+ ~ee07002(); // tgen
+ ee07002(); // tgen
+};
+//SIG(1 ee07002) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07002 ::~ee07002(){ note_dtor("ee07002", this);} // tgen
+ee07002 ::ee07002(){ note_ctor("ee07002", this);} // tgen
+
+static void Test_ee07002()
+{
+ extern Class_Descriptor cd_ee07002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07002, buf);
+ ee07002 *dp, &lv = *(dp=new (buf) ee07002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee07002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee07002");
+ check_base_class_offset(lv, (cc002*)(dd7002*), ABISELECT(16,12), "ee07002");
+ check_base_class_offset(lv, (dd7002*), 0, "ee07002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07002.e");
+ test_class_info(&lv, &cd_ee07002);
+ dp->~ee07002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07002(Test_ee07002, "ee07002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07002C1Ev();
+extern void _ZN7ee07002D1Ev();
+Name_Map name_map_ee07002[] = {
+ NSPAIR(_ZN7ee07002C1Ev),
+ NSPAIR(_ZN7ee07002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd7002;
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static Base_Class bases_ee07002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7002__7ee07002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd7002__7ee07002[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+static VTT_ENTRY vtt_ee07002[] = {
+ {&(_ZTV7ee07002[3]), 3,11},
+ {&(_tg__ZTV6dd7002__7ee07002[3]), 3,5},
+ {&(_tg__ZTV3aa24bb025cc002__6dd7002__7ee07002[4]), 4,6},
+ {&(_ZTV7ee07002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07002[];
+extern VTBL_ENTRY _ZTV7ee07002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07002[];
+static VTBL_ENTRY alt_thunk_names729[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07002 = { "ee07002", // class name
+ bases_ee07002, 4,
+ &(vtc_ee07002[0]), // expected_vtbl_contents
+ &(vtt_ee07002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names729,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17002 : virtual dd7002 {
+ int e;
+ ~ee17002(); // tgen
+ ee17002(); // tgen
+};
+//SIG(1 ee17002) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17002 ::~ee17002(){ note_dtor("ee17002", this);} // tgen
+ee17002 ::ee17002(){ note_ctor("ee17002", this);} // tgen
+
+static void Test_ee17002()
+{
+ extern Class_Descriptor cd_ee17002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17002, buf);
+ ee17002 *dp, &lv = *(dp=new (buf) ee17002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee17002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee17002");
+ check_base_class_offset(lv, (cc002*)(dd7002*), ABISELECT(32,16), "ee17002");
+ check_base_class_offset(lv, (dd7002*), ABISELECT(16,8), "ee17002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17002.e");
+ test_class_info(&lv, &cd_ee17002);
+ dp->~ee17002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17002(Test_ee17002, "ee17002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17002C1Ev();
+extern void _ZN7ee17002D1Ev();
+Name_Map name_map_ee17002[] = {
+ NSPAIR(_ZN7ee17002C1Ev),
+ NSPAIR(_ZN7ee17002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd7002;
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static Base_Class bases_ee17002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7002, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17002[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7002__7ee17002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd7002__7ee17002[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+static VTT_ENTRY vtt_ee17002[] = {
+ {&(_ZTV7ee17002[4]), 4,17},
+ {&(_ZTV7ee17002[9]), 9,17},
+ {&(_ZTV7ee17002[15]), 15,17},
+ {&(_tg__ZTV6dd7002__7ee17002[3]), 3,5},
+ {&(_tg__ZTV3aa24bb025cc002__6dd7002__7ee17002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17002[];
+extern VTBL_ENTRY _ZTV7ee17002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17002[];
+static VTBL_ENTRY alt_thunk_names730[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17002 = { "ee17002", // class name
+ bases_ee17002, 4,
+ &(vtc_ee17002[0]), // expected_vtbl_contents
+ &(vtt_ee17002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17002),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names730,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27002 : dd7002 {
+ int e;
+ virtual void foo(); // _ZN7ee270023fooEv
+ ~ee27002(); // tgen
+ ee27002(); // tgen
+};
+//SIG(1 ee27002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27002 ::foo(){vfunc_called(this, "_ZN7ee270023fooEv");}
+ee27002 ::~ee27002(){ note_dtor("ee27002", this);} // tgen
+ee27002 ::ee27002(){ note_ctor("ee27002", this);} // tgen
+
+static void Test_ee27002()
+{
+ extern Class_Descriptor cd_ee27002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27002, buf);
+ ee27002 *dp, &lv = *(dp=new (buf) ee27002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee27002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee27002");
+ check_base_class_offset(lv, (cc002*)(dd7002*), ABISELECT(16,12), "ee27002");
+ check_base_class_offset(lv, (dd7002*), 0, "ee27002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27002.e");
+ test_class_info(&lv, &cd_ee27002);
+ dp->~ee27002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27002(Test_ee27002, "ee27002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27002C1Ev();
+extern void _ZN7ee27002D1Ev();
+Name_Map name_map_ee27002[] = {
+ NSPAIR(_ZN7ee27002C1Ev),
+ NSPAIR(_ZN7ee27002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd7002;
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static Base_Class bases_ee27002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN7ee270023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee270023fooEv,_ZTv0_n12_N7ee270023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee270023fooEv,_ZThn12_N7ee270023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN7ee270023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270023fooEv,_ZTv0_n12_N7ee270023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7002__7ee27002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd7002__7ee27002[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+static VTT_ENTRY vtt_ee27002[] = {
+ {&(_ZTV7ee27002[3]), 3,11},
+ {&(_tg__ZTV6dd7002__7ee27002[3]), 3,5},
+ {&(_tg__ZTV3aa24bb025cc002__6dd7002__7ee27002[4]), 4,6},
+ {&(_ZTV7ee27002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27002[];
+extern VTBL_ENTRY _ZTV7ee27002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27002[];
+static VTBL_ENTRY alt_thunk_names731[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270023fooEv,_ZTv0_n12_N7ee270023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee270023fooEv,_ZThn12_N7ee270023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27002 = { "ee27002", // class name
+ bases_ee27002, 4,
+ &(vtc_ee27002[0]), // expected_vtbl_contents
+ &(vtt_ee27002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names731,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37002 : virtual dd7002 {
+ int e;
+ virtual void foo(); // _ZN7ee370023fooEv
+ ~ee37002(); // tgen
+ ee37002(); // tgen
+};
+//SIG(1 ee37002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37002 ::foo(){vfunc_called(this, "_ZN7ee370023fooEv");}
+ee37002 ::~ee37002(){ note_dtor("ee37002", this);} // tgen
+ee37002 ::ee37002(){ note_ctor("ee37002", this);} // tgen
+
+static void Test_ee37002()
+{
+ extern Class_Descriptor cd_ee37002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37002, buf);
+ ee37002 *dp, &lv = *(dp=new (buf) ee37002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee37002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee37002");
+ check_base_class_offset(lv, (cc002*)(dd7002*), ABISELECT(32,16), "ee37002");
+ check_base_class_offset(lv, (dd7002*), ABISELECT(16,8), "ee37002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37002.e");
+ test_class_info(&lv, &cd_ee37002);
+ dp->~ee37002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37002(Test_ee37002, "ee37002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37002C1Ev();
+extern void _ZN7ee37002D1Ev();
+Name_Map name_map_ee37002[] = {
+ NSPAIR(_ZN7ee37002C1Ev),
+ NSPAIR(_ZN7ee37002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd7002;
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static Base_Class bases_ee37002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37002[];
+extern void _ZN7ee370023fooEv();
+extern void _ZN6dd70023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee370023fooEv,_ZTv0_n20_N7ee370023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370023fooEv,_ZThn8_N7ee370023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370023fooEv,_ZTv0_n12_N7ee370023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee370023fooEv,_ZThn16_N7ee370023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37002[0]),
+ (VTBL_ENTRY)&_ZN7ee370023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee370023fooEv,_ZTv0_n20_N7ee370023fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370023fooEv,_ZTv0_n12_N7ee370023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7002__7ee37002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd7002__7ee37002[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+static VTT_ENTRY vtt_ee37002[] = {
+ {&(_ZTV7ee37002[4]), 4,18},
+ {&(_ZTV7ee37002[10]), 10,18},
+ {&(_ZTV7ee37002[16]), 16,18},
+ {&(_tg__ZTV6dd7002__7ee37002[3]), 3,5},
+ {&(_tg__ZTV3aa24bb025cc002__6dd7002__7ee37002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37002[];
+extern VTBL_ENTRY _ZTV7ee37002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37002[];
+static VTBL_ENTRY alt_thunk_names732[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370023fooEv,_ZTv0_n12_N7ee370023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee370023fooEv,_ZThn16_N7ee370023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee370023fooEv,_ZTv0_n20_N7ee370023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370023fooEv,_ZThn8_N7ee370023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37002 = { "ee37002", // class name
+ bases_ee37002, 4,
+ &(vtc_ee37002[0]), // expected_vtbl_contents
+ &(vtt_ee37002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37002),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names732,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47002 : dd7002 {
+ int e;
+ virtual void bar(); // _ZN7ee470023barEv
+ ~ee47002(); // tgen
+ ee47002(); // tgen
+};
+//SIG(1 ee47002) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47002 ::bar(){vfunc_called(this, "_ZN7ee470023barEv");}
+ee47002 ::~ee47002(){ note_dtor("ee47002", this);} // tgen
+ee47002 ::ee47002(){ note_ctor("ee47002", this);} // tgen
+
+static void Test_ee47002()
+{
+ extern Class_Descriptor cd_ee47002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47002, buf);
+ ee47002 *dp, &lv = *(dp=new (buf) ee47002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee47002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee47002");
+ check_base_class_offset(lv, (cc002*)(dd7002*), ABISELECT(16,12), "ee47002");
+ check_base_class_offset(lv, (dd7002*), 0, "ee47002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47002.e");
+ test_class_info(&lv, &cd_ee47002);
+ dp->~ee47002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47002(Test_ee47002, "ee47002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47002C1Ev();
+extern void _ZN7ee47002D1Ev();
+Name_Map name_map_ee47002[] = {
+ NSPAIR(_ZN7ee47002C1Ev),
+ NSPAIR(_ZN7ee47002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd7002;
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static Base_Class bases_ee47002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47002[];
+extern void _ZN7ee470023barEv();
+extern void _ZN6dd70023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee470023barEv,_ZTv0_n16_N7ee470023barEv)();
+extern void ABISELECT(_ZThn16_N7ee470023barEv,_ZThn12_N7ee470023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47002[0]),
+ (VTBL_ENTRY)&_ZN7ee470023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee470023barEv,_ZTv0_n16_N7ee470023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7002__7ee47002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd7002__7ee47002[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+static VTT_ENTRY vtt_ee47002[] = {
+ {&(_ZTV7ee47002[3]), 3,11},
+ {&(_tg__ZTV6dd7002__7ee47002[3]), 3,5},
+ {&(_tg__ZTV3aa24bb025cc002__6dd7002__7ee47002[4]), 4,6},
+ {&(_ZTV7ee47002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47002[];
+extern VTBL_ENTRY _ZTV7ee47002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47002[];
+static VTBL_ENTRY alt_thunk_names733[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee470023barEv,_ZTv0_n16_N7ee470023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee470023barEv,_ZThn12_N7ee470023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47002 = { "ee47002", // class name
+ bases_ee47002, 4,
+ &(vtc_ee47002[0]), // expected_vtbl_contents
+ &(vtt_ee47002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names733,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57002 : virtual dd7002 {
+ int e;
+ virtual void bar(); // _ZN7ee570023barEv
+ ~ee57002(); // tgen
+ ee57002(); // tgen
+};
+//SIG(1 ee57002) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57002 ::bar(){vfunc_called(this, "_ZN7ee570023barEv");}
+ee57002 ::~ee57002(){ note_dtor("ee57002", this);} // tgen
+ee57002 ::ee57002(){ note_ctor("ee57002", this);} // tgen
+
+static void Test_ee57002()
+{
+ extern Class_Descriptor cd_ee57002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57002, buf);
+ ee57002 *dp, &lv = *(dp=new (buf) ee57002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee57002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee57002");
+ check_base_class_offset(lv, (cc002*)(dd7002*), ABISELECT(32,16), "ee57002");
+ check_base_class_offset(lv, (dd7002*), ABISELECT(16,8), "ee57002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57002.e");
+ test_class_info(&lv, &cd_ee57002);
+ dp->~ee57002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57002(Test_ee57002, "ee57002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57002C1Ev();
+extern void _ZN7ee57002D1Ev();
+Name_Map name_map_ee57002[] = {
+ NSPAIR(_ZN7ee57002C1Ev),
+ NSPAIR(_ZN7ee57002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd7002;
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static Base_Class bases_ee57002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7002, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57002[];
+extern void _ZN7ee570023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570023barEv,_ZTv0_n16_N7ee570023barEv)();
+extern void ABISELECT(_ZThn16_N7ee570023barEv,_ZThn8_N7ee570023barEv)() __attribute__((weak));
+extern void _ZN6dd70023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee570023barEv,_ZTv0_n16_N7ee570023barEv)();
+extern void ABISELECT(_ZThn32_N7ee570023barEv,_ZThn16_N7ee570023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57002[0]),
+ (VTBL_ENTRY)&_ZN7ee570023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570023barEv,_ZTv0_n16_N7ee570023barEv),
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570023barEv,_ZTv0_n16_N7ee570023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7002__7ee57002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd7002__7ee57002[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+static VTT_ENTRY vtt_ee57002[] = {
+ {&(_ZTV7ee57002[4]), 4,18},
+ {&(_ZTV7ee57002[10]), 10,18},
+ {&(_ZTV7ee57002[16]), 16,18},
+ {&(_tg__ZTV6dd7002__7ee57002[3]), 3,5},
+ {&(_tg__ZTV3aa24bb025cc002__6dd7002__7ee57002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57002[];
+extern VTBL_ENTRY _ZTV7ee57002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57002[];
+static VTBL_ENTRY alt_thunk_names734[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570023barEv,_ZTv0_n16_N7ee570023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee570023barEv,_ZThn16_N7ee570023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570023barEv,_ZThn8_N7ee570023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57002 = { "ee57002", // class name
+ bases_ee57002, 4,
+ &(vtc_ee57002[0]), // expected_vtbl_contents
+ &(vtt_ee57002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57002),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names734,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67002 : dd7002 {
+ int e;
+ virtual void foo(); // _ZN7ee670023fooEv
+ virtual void bar(); // _ZN7ee670023barEv
+ ~ee67002(); // tgen
+ ee67002(); // tgen
+};
+//SIG(1 ee67002) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67002 ::foo(){vfunc_called(this, "_ZN7ee670023fooEv");}
+void ee67002 ::bar(){vfunc_called(this, "_ZN7ee670023barEv");}
+ee67002 ::~ee67002(){ note_dtor("ee67002", this);} // tgen
+ee67002 ::ee67002(){ note_ctor("ee67002", this);} // tgen
+
+static void Test_ee67002()
+{
+ extern Class_Descriptor cd_ee67002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67002, buf);
+ ee67002 *dp, &lv = *(dp=new (buf) ee67002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(16,12), "ee67002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(16,12), "ee67002");
+ check_base_class_offset(lv, (cc002*)(dd7002*), ABISELECT(16,12), "ee67002");
+ check_base_class_offset(lv, (dd7002*), 0, "ee67002");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67002.e");
+ test_class_info(&lv, &cd_ee67002);
+ dp->~ee67002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67002(Test_ee67002, "ee67002", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67002C1Ev();
+extern void _ZN7ee67002D1Ev();
+Name_Map name_map_ee67002[] = {
+ NSPAIR(_ZN7ee67002C1Ev),
+ NSPAIR(_ZN7ee67002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd7002;
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static Base_Class bases_ee67002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7002, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67002[];
+extern void _ZN7ee670023barEv();
+extern void _ZN7ee670023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee670023fooEv,_ZTv0_n12_N7ee670023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee670023fooEv,_ZThn12_N7ee670023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee670023barEv,_ZTv0_n16_N7ee670023barEv)();
+extern void ABISELECT(_ZThn16_N7ee670023barEv,_ZThn12_N7ee670023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67002[0]),
+ (VTBL_ENTRY)&_ZN7ee670023barEv,
+ (VTBL_ENTRY)&_ZN7ee670023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670023fooEv,_ZTv0_n12_N7ee670023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670023barEv,_ZTv0_n16_N7ee670023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7002__7ee67002[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd7002__7ee67002[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+static VTT_ENTRY vtt_ee67002[] = {
+ {&(_ZTV7ee67002[3]), 3,11},
+ {&(_tg__ZTV6dd7002__7ee67002[3]), 3,5},
+ {&(_tg__ZTV3aa24bb025cc002__6dd7002__7ee67002[4]), 4,6},
+ {&(_ZTV7ee67002[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67002[];
+extern VTBL_ENTRY _ZTV7ee67002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67002[];
+static VTBL_ENTRY alt_thunk_names735[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn12_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn12_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670023barEv,_ZTv0_n16_N7ee670023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670023barEv,_ZThn12_N7ee670023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670023fooEv,_ZTv0_n12_N7ee670023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670023fooEv,_ZThn12_N7ee670023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67002 = { "ee67002", // class name
+ bases_ee67002, 4,
+ &(vtc_ee67002[0]), // expected_vtbl_contents
+ &(vtt_ee67002[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67002),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67002),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67002),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names735,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77002 : virtual dd7002 {
+ int e;
+ virtual void foo(); // _ZN7ee770023fooEv
+ virtual void bar(); // _ZN7ee770023barEv
+ ~ee77002(); // tgen
+ ee77002(); // tgen
+};
+//SIG(1 ee77002) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77002 ::foo(){vfunc_called(this, "_ZN7ee770023fooEv");}
+void ee77002 ::bar(){vfunc_called(this, "_ZN7ee770023barEv");}
+ee77002 ::~ee77002(){ note_dtor("ee77002", this);} // tgen
+ee77002 ::ee77002(){ note_ctor("ee77002", this);} // tgen
+
+static void Test_ee77002()
+{
+ extern Class_Descriptor cd_ee77002;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77002, buf);
+ ee77002 *dp, &lv = *(dp=new (buf) ee77002());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77002)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77002)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc002*), ABISELECT(32,16), "ee77002");
+ check_base_class_offset(lv, (bb02*)(cc002*), ABISELECT(32,16), "ee77002");
+ check_base_class_offset(lv, (cc002*)(dd7002*), ABISELECT(32,16), "ee77002");
+ check_base_class_offset(lv, (dd7002*), ABISELECT(16,8), "ee77002");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77002.e");
+ test_class_info(&lv, &cd_ee77002);
+ dp->~ee77002();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77002(Test_ee77002, "ee77002", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77002C1Ev();
+extern void _ZN7ee77002D1Ev();
+Name_Map name_map_ee77002[] = {
+ NSPAIR(_ZN7ee77002C1Ev),
+ NSPAIR(_ZN7ee77002D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc002;
+extern VTBL_ENTRY _ZTI5cc002[];
+extern VTBL_ENTRY _ZTV5cc002[];
+extern Class_Descriptor cd_dd7002;
+extern VTBL_ENTRY _ZTI6dd7002[];
+extern VTBL_ENTRY _ZTV6dd7002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7002[];
+static Base_Class bases_ee77002[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc002, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7002, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77002[];
+extern void _ZN7ee770023fooEv();
+extern void _ZN7ee770023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee770023barEv,_ZTv0_n16_N7ee770023barEv)();
+extern void ABISELECT(_ZThn16_N7ee770023barEv,_ZThn8_N7ee770023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee770023fooEv,_ZTv0_n20_N7ee770023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770023fooEv,_ZThn8_N7ee770023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770023fooEv,_ZTv0_n12_N7ee770023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee770023fooEv,_ZThn16_N7ee770023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770023barEv,_ZTv0_n16_N7ee770023barEv)();
+extern void ABISELECT(_ZThn32_N7ee770023barEv,_ZThn16_N7ee770023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77002[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77002[0]),
+ (VTBL_ENTRY)&_ZN7ee770023fooEv,
+ (VTBL_ENTRY)&_ZN7ee770023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770023barEv,_ZTv0_n16_N7ee770023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770023fooEv,_ZTv0_n20_N7ee770023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770023fooEv,_ZTv0_n12_N7ee770023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770023barEv,_ZTv0_n16_N7ee770023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77002[];
+extern void _ZN6dd70023barEv();
+extern void _ZN6dd70023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7002__7ee77002[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&_ZN6dd70023barEv,
+ (VTBL_ENTRY)&_ZN6dd70023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv)();
+extern void ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb025cc002__6dd7002__7ee77002[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7002[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv),
+};
+static VTT_ENTRY vtt_ee77002[] = {
+ {&(_ZTV7ee77002[4]), 4,19},
+ {&(_ZTV7ee77002[11]), 11,19},
+ {&(_ZTV7ee77002[17]), 17,19},
+ {&(_tg__ZTV6dd7002__7ee77002[3]), 3,5},
+ {&(_tg__ZTV3aa24bb025cc002__6dd7002__7ee77002[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77002[];
+extern VTBL_ENTRY _ZTV7ee77002[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77002[];
+static VTBL_ENTRY alt_thunk_names736[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70023barEv,_ZTv0_n16_N6dd70023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023barEv,_ZThn8_N6dd70023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70023fooEv,_ZTv0_n12_N6dd70023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70023fooEv,_ZThn8_N6dd70023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770023fooEv,_ZTv0_n12_N7ee770023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770023fooEv,_ZThn16_N7ee770023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770023fooEv,_ZTv0_n20_N7ee770023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770023fooEv,_ZThn8_N7ee770023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770023barEv,_ZTv0_n16_N7ee770023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770023barEv,_ZThn16_N7ee770023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770023barEv,_ZThn8_N7ee770023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77002 = { "ee77002", // class name
+ bases_ee77002, 4,
+ &(vtc_ee77002[0]), // expected_vtbl_contents
+ &(vtt_ee77002[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77002),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77002),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77002),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names736,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc102 : virtual bb02 {
+ int c;
+ ~cc102(); // tgen
+ cc102(); // tgen
+};
+//SIG(-1 cc102) C1{ VBC2{ BC3{ v1 v2 Fi} Fi} Fi}
+
+
+cc102 ::~cc102(){ note_dtor("cc102", this);} // tgen
+cc102 ::cc102(){ note_ctor("cc102", this);} // tgen
+
+static void Test_cc102()
+{
+ extern Class_Descriptor cd_cc102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc102, buf);
+ cc102 *dp, &lv = *(dp=new (buf) cc102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,8), "cc102");
+ check_base_class_offset(lv, (bb02*), ABISELECT(16,8), "cc102");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc102.c");
+ test_class_info(&lv, &cd_cc102);
+ dp->~cc102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc102(Test_cc102, "cc102", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc102C1Ev();
+extern void _ZN5cc102D1Ev();
+Name_Map name_map_cc102[] = {
+ NSPAIR(_ZN5cc102C1Ev),
+ NSPAIR(_ZN5cc102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+static Base_Class bases_cc102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc102[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_cc102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV5cc102[];
+static VTT_ENTRY vtt_cc102[] = {
+ {&(_ZTV5cc102[3]), 3,9},
+ {&(_ZTV5cc102[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+Class_Descriptor cd_cc102 = { "cc102", // class name
+ bases_cc102, 2,
+ &(vtc_cc102[0]), // expected_vtbl_contents
+ &(vtt_cc102[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc102),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc102),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0102 : cc102 {
+ int d;
+ ~dd0102(); // tgen
+ dd0102(); // tgen
+};
+//SIG(-1 dd0102) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} Fi} Fi} Fi}
+
+
+dd0102 ::~dd0102(){ note_dtor("dd0102", this);} // tgen
+dd0102 ::dd0102(){ note_ctor("dd0102", this);} // tgen
+
+static void Test_dd0102()
+{
+ extern Class_Descriptor cd_dd0102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0102, buf);
+ dd0102 *dp, &lv = *(dp=new (buf) dd0102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd0102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(16,12), "dd0102");
+ check_base_class_offset(lv, (cc102*), 0, "dd0102");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0102.d");
+ test_class_info(&lv, &cd_dd0102);
+ dp->~dd0102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0102(Test_dd0102, "dd0102", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0102C1Ev();
+extern void _ZN6dd0102D1Ev();
+Name_Map name_map_dd0102[] = {
+ NSPAIR(_ZN6dd0102C1Ev),
+ NSPAIR(_ZN6dd0102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+static Base_Class bases_dd0102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0102[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd0102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0102[];
+static VTBL_ENTRY _tg__ZTV5cc102__6dd0102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__6dd0102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd0102[] = {
+ {&(_ZTV6dd0102[3]), 3,9},
+ {&(_tg__ZTV5cc102__6dd0102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__6dd0102[4]), 4,6},
+ {&(_ZTV6dd0102[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+Class_Descriptor cd_dd0102 = { "dd0102", // class name
+ bases_dd0102, 3,
+ &(vtc_dd0102[0]), // expected_vtbl_contents
+ &(vtt_dd0102[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0102),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0102),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 ee00102 : dd0102 {
+ int e;
+ ~ee00102(); // tgen
+ ee00102(); // tgen
+};
+//SIG(1 ee00102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} Fi}
+
+
+ee00102 ::~ee00102(){ note_dtor("ee00102", this);} // tgen
+ee00102 ::ee00102(){ note_ctor("ee00102", this);} // tgen
+
+static void Test_ee00102()
+{
+ extern Class_Descriptor cd_ee00102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00102, buf);
+ ee00102 *dp, &lv = *(dp=new (buf) ee00102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee00102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd0102*), ABISELECT(24,16), "ee00102");
+ check_base_class_offset(lv, (cc102*)(dd0102*), 0, "ee00102");
+ check_base_class_offset(lv, (dd0102*), 0, "ee00102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00102.e");
+ test_class_info(&lv, &cd_ee00102);
+ dp->~ee00102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00102(Test_ee00102, "ee00102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00102C1Ev();
+extern void _ZN7ee00102D1Ev();
+Name_Map name_map_ee00102[] = {
+ NSPAIR(_ZN7ee00102C1Ev),
+ NSPAIR(_ZN7ee00102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd0102;
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+static Base_Class bases_ee00102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00102[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee00102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00102[0]),
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00102[];
+static VTBL_ENTRY _tg__ZTV6dd0102__7ee00102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd0102__7ee00102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd0102__7ee00102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0102__7ee00102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee00102[] = {
+ {&(_ZTV7ee00102[3]), 3,9},
+ {&(_tg__ZTV6dd0102__7ee00102[3]), 3,3},
+ {&(_tg__ZTV5cc1026dd0102__7ee00102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd0102__7ee00102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0102__7ee00102[4]), 4,6},
+ {&(_ZTV7ee00102[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee00102[];
+extern VTBL_ENTRY _ZTV7ee00102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00102[];
+Class_Descriptor cd_ee00102 = { "ee00102", // class name
+ bases_ee00102, 4,
+ &(vtc_ee00102[0]), // expected_vtbl_contents
+ &(vtt_ee00102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00102),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10102 : virtual dd0102 {
+ int e;
+ ~ee10102(); // tgen
+ ee10102(); // tgen
+};
+//SIG(1 ee10102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} Fi}
+
+
+ee10102 ::~ee10102(){ note_dtor("ee10102", this);} // tgen
+ee10102 ::ee10102(){ note_ctor("ee10102", this);} // tgen
+
+static void Test_ee10102()
+{
+ extern Class_Descriptor cd_ee10102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10102, buf);
+ ee10102 *dp, &lv = *(dp=new (buf) ee10102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee10102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd0102*), ABISELECT(32,20), "ee10102");
+ check_base_class_offset(lv, (cc102*)(dd0102*), ABISELECT(16,8), "ee10102");
+ check_base_class_offset(lv, (dd0102*), ABISELECT(16,8), "ee10102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10102.e");
+ test_class_info(&lv, &cd_ee10102);
+ dp->~ee10102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10102(Test_ee10102, "ee10102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10102C1Ev();
+extern void _ZN7ee10102D1Ev();
+Name_Map name_map_ee10102[] = {
+ NSPAIR(_ZN7ee10102C1Ev),
+ NSPAIR(_ZN7ee10102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd0102;
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+static Base_Class bases_ee10102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0102, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10102[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee10102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10102[0]),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10102[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10102[];
+static VTBL_ENTRY _tg__ZTV6dd0102__7ee10102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd0102__7ee10102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd0102__7ee10102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0102__7ee10102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee10102[] = {
+ {&(_ZTV7ee10102[4]), 4,13},
+ {&(_ZTV7ee10102[7]), 7,13},
+ {&(_ZTV7ee10102[11]), 11,13},
+ {&(_tg__ZTV6dd0102__7ee10102[3]), 3,3},
+ {&(_tg__ZTV5cc1026dd0102__7ee10102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd0102__7ee10102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0102__7ee10102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10102[];
+extern VTBL_ENTRY _ZTV7ee10102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10102[];
+Class_Descriptor cd_ee10102 = { "ee10102", // class name
+ bases_ee10102, 4,
+ &(vtc_ee10102[0]), // expected_vtbl_contents
+ &(vtt_ee10102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10102),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20102 : dd0102 {
+ int e;
+ virtual void foo(); // _ZN7ee201023fooEv
+ ~ee20102(); // tgen
+ ee20102(); // tgen
+};
+//SIG(1 ee20102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee20102 ::foo(){vfunc_called(this, "_ZN7ee201023fooEv");}
+ee20102 ::~ee20102(){ note_dtor("ee20102", this);} // tgen
+ee20102 ::ee20102(){ note_ctor("ee20102", this);} // tgen
+
+static void Test_ee20102()
+{
+ extern Class_Descriptor cd_ee20102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20102, buf);
+ ee20102 *dp, &lv = *(dp=new (buf) ee20102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee20102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd0102*), ABISELECT(24,16), "ee20102");
+ check_base_class_offset(lv, (cc102*)(dd0102*), 0, "ee20102");
+ check_base_class_offset(lv, (dd0102*), 0, "ee20102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20102.e");
+ test_class_info(&lv, &cd_ee20102);
+ dp->~ee20102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20102(Test_ee20102, "ee20102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20102C1Ev();
+extern void _ZN7ee20102D1Ev();
+Name_Map name_map_ee20102[] = {
+ NSPAIR(_ZN7ee20102C1Ev),
+ NSPAIR(_ZN7ee20102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd0102;
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+static Base_Class bases_ee20102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20102[];
+extern void _ZN7ee201023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201023fooEv,_ZTv0_n12_N7ee201023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee201023fooEv,_ZThn16_N7ee201023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee20102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20102[0]),
+ (VTBL_ENTRY)&_ZN7ee201023fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201023fooEv,_ZTv0_n12_N7ee201023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20102[];
+static VTBL_ENTRY _tg__ZTV6dd0102__7ee20102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd0102__7ee20102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd0102__7ee20102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0102__7ee20102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee20102[] = {
+ {&(_ZTV7ee20102[3]), 3,10},
+ {&(_tg__ZTV6dd0102__7ee20102[3]), 3,3},
+ {&(_tg__ZTV5cc1026dd0102__7ee20102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd0102__7ee20102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0102__7ee20102[4]), 4,6},
+ {&(_ZTV7ee20102[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20102[];
+extern VTBL_ENTRY _ZTV7ee20102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20102[];
+static VTBL_ENTRY alt_thunk_names737[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201023fooEv,_ZTv0_n12_N7ee201023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee201023fooEv,_ZThn16_N7ee201023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20102 = { "ee20102", // class name
+ bases_ee20102, 4,
+ &(vtc_ee20102[0]), // expected_vtbl_contents
+ &(vtt_ee20102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20102),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names737,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30102 : virtual dd0102 {
+ int e;
+ virtual void foo(); // _ZN7ee301023fooEv
+ ~ee30102(); // tgen
+ ee30102(); // tgen
+};
+//SIG(1 ee30102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee30102 ::foo(){vfunc_called(this, "_ZN7ee301023fooEv");}
+ee30102 ::~ee30102(){ note_dtor("ee30102", this);} // tgen
+ee30102 ::ee30102(){ note_ctor("ee30102", this);} // tgen
+
+static void Test_ee30102()
+{
+ extern Class_Descriptor cd_ee30102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30102, buf);
+ ee30102 *dp, &lv = *(dp=new (buf) ee30102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee30102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd0102*), ABISELECT(32,20), "ee30102");
+ check_base_class_offset(lv, (cc102*)(dd0102*), ABISELECT(16,8), "ee30102");
+ check_base_class_offset(lv, (dd0102*), ABISELECT(16,8), "ee30102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30102.e");
+ test_class_info(&lv, &cd_ee30102);
+ dp->~ee30102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30102(Test_ee30102, "ee30102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30102C1Ev();
+extern void _ZN7ee30102D1Ev();
+Name_Map name_map_ee30102[] = {
+ NSPAIR(_ZN7ee30102C1Ev),
+ NSPAIR(_ZN7ee30102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd0102;
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+static Base_Class bases_ee30102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30102[];
+extern void _ZN7ee301023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301023fooEv,_ZTv0_n12_N7ee301023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee301023fooEv,_ZThn20_N7ee301023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee30102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30102[0]),
+ (VTBL_ENTRY)&_ZN7ee301023fooEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30102[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301023fooEv,_ZTv0_n12_N7ee301023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30102[];
+static VTBL_ENTRY _tg__ZTV6dd0102__7ee30102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd0102__7ee30102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd0102__7ee30102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0102__7ee30102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee30102[] = {
+ {&(_ZTV7ee30102[4]), 4,14},
+ {&(_ZTV7ee30102[8]), 8,14},
+ {&(_ZTV7ee30102[12]), 12,14},
+ {&(_tg__ZTV6dd0102__7ee30102[3]), 3,3},
+ {&(_tg__ZTV5cc1026dd0102__7ee30102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd0102__7ee30102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0102__7ee30102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30102[];
+extern VTBL_ENTRY _ZTV7ee30102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30102[];
+static VTBL_ENTRY alt_thunk_names738[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301023fooEv,_ZTv0_n12_N7ee301023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee301023fooEv,_ZThn20_N7ee301023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30102 = { "ee30102", // class name
+ bases_ee30102, 4,
+ &(vtc_ee30102[0]), // expected_vtbl_contents
+ &(vtt_ee30102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names738,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40102 : dd0102 {
+ int e;
+ virtual void bar(); // _ZN7ee401023barEv
+ ~ee40102(); // tgen
+ ee40102(); // tgen
+};
+//SIG(1 ee40102) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee40102 ::bar(){vfunc_called(this, "_ZN7ee401023barEv");}
+ee40102 ::~ee40102(){ note_dtor("ee40102", this);} // tgen
+ee40102 ::ee40102(){ note_ctor("ee40102", this);} // tgen
+
+static void Test_ee40102()
+{
+ extern Class_Descriptor cd_ee40102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40102, buf);
+ ee40102 *dp, &lv = *(dp=new (buf) ee40102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee40102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd0102*), ABISELECT(24,16), "ee40102");
+ check_base_class_offset(lv, (cc102*)(dd0102*), 0, "ee40102");
+ check_base_class_offset(lv, (dd0102*), 0, "ee40102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40102.e");
+ test_class_info(&lv, &cd_ee40102);
+ dp->~ee40102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40102(Test_ee40102, "ee40102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40102C1Ev();
+extern void _ZN7ee40102D1Ev();
+Name_Map name_map_ee40102[] = {
+ NSPAIR(_ZN7ee40102C1Ev),
+ NSPAIR(_ZN7ee40102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd0102;
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+static Base_Class bases_ee40102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40102[];
+extern void _ZN7ee401023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee401023barEv,_ZTv0_n16_N7ee401023barEv)();
+extern void ABISELECT(_ZThn24_N7ee401023barEv,_ZThn16_N7ee401023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40102[0]),
+ (VTBL_ENTRY)&_ZN7ee401023barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee401023barEv,_ZTv0_n16_N7ee401023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40102[];
+static VTBL_ENTRY _tg__ZTV6dd0102__7ee40102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd0102__7ee40102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd0102__7ee40102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0102__7ee40102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee40102[] = {
+ {&(_ZTV7ee40102[3]), 3,10},
+ {&(_tg__ZTV6dd0102__7ee40102[3]), 3,3},
+ {&(_tg__ZTV5cc1026dd0102__7ee40102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd0102__7ee40102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0102__7ee40102[4]), 4,6},
+ {&(_ZTV7ee40102[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40102[];
+extern VTBL_ENTRY _ZTV7ee40102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40102[];
+static VTBL_ENTRY alt_thunk_names739[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee401023barEv,_ZTv0_n16_N7ee401023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee401023barEv,_ZThn16_N7ee401023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40102 = { "ee40102", // class name
+ bases_ee40102, 4,
+ &(vtc_ee40102[0]), // expected_vtbl_contents
+ &(vtt_ee40102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40102),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names739,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50102 : virtual dd0102 {
+ int e;
+ virtual void bar(); // _ZN7ee501023barEv
+ ~ee50102(); // tgen
+ ee50102(); // tgen
+};
+//SIG(1 ee50102) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee50102 ::bar(){vfunc_called(this, "_ZN7ee501023barEv");}
+ee50102 ::~ee50102(){ note_dtor("ee50102", this);} // tgen
+ee50102 ::ee50102(){ note_ctor("ee50102", this);} // tgen
+
+static void Test_ee50102()
+{
+ extern Class_Descriptor cd_ee50102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50102, buf);
+ ee50102 *dp, &lv = *(dp=new (buf) ee50102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee50102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd0102*), ABISELECT(32,20), "ee50102");
+ check_base_class_offset(lv, (cc102*)(dd0102*), ABISELECT(16,8), "ee50102");
+ check_base_class_offset(lv, (dd0102*), ABISELECT(16,8), "ee50102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50102.e");
+ test_class_info(&lv, &cd_ee50102);
+ dp->~ee50102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50102(Test_ee50102, "ee50102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50102C1Ev();
+extern void _ZN7ee50102D1Ev();
+Name_Map name_map_ee50102[] = {
+ NSPAIR(_ZN7ee50102C1Ev),
+ NSPAIR(_ZN7ee50102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd0102;
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+static Base_Class bases_ee50102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50102[];
+extern void _ZN7ee501023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee501023barEv,_ZTv0_n16_N7ee501023barEv)();
+extern void ABISELECT(_ZThn32_N7ee501023barEv,_ZThn20_N7ee501023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50102[0]),
+ (VTBL_ENTRY)&_ZN7ee501023barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50102[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee501023barEv,_ZTv0_n16_N7ee501023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50102[];
+static VTBL_ENTRY _tg__ZTV6dd0102__7ee50102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd0102__7ee50102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd0102__7ee50102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0102__7ee50102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee50102[] = {
+ {&(_ZTV7ee50102[4]), 4,14},
+ {&(_ZTV7ee50102[8]), 8,14},
+ {&(_ZTV7ee50102[12]), 12,14},
+ {&(_tg__ZTV6dd0102__7ee50102[3]), 3,3},
+ {&(_tg__ZTV5cc1026dd0102__7ee50102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd0102__7ee50102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0102__7ee50102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50102[];
+extern VTBL_ENTRY _ZTV7ee50102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50102[];
+static VTBL_ENTRY alt_thunk_names740[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee501023barEv,_ZTv0_n16_N7ee501023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee501023barEv,_ZThn20_N7ee501023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50102 = { "ee50102", // class name
+ bases_ee50102, 4,
+ &(vtc_ee50102[0]), // expected_vtbl_contents
+ &(vtt_ee50102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names740,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60102 : dd0102 {
+ int e;
+ virtual void foo(); // _ZN7ee601023fooEv
+ virtual void bar(); // _ZN7ee601023barEv
+ ~ee60102(); // tgen
+ ee60102(); // tgen
+};
+//SIG(1 ee60102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60102 ::foo(){vfunc_called(this, "_ZN7ee601023fooEv");}
+void ee60102 ::bar(){vfunc_called(this, "_ZN7ee601023barEv");}
+ee60102 ::~ee60102(){ note_dtor("ee60102", this);} // tgen
+ee60102 ::ee60102(){ note_ctor("ee60102", this);} // tgen
+
+static void Test_ee60102()
+{
+ extern Class_Descriptor cd_ee60102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60102, buf);
+ ee60102 *dp, &lv = *(dp=new (buf) ee60102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee60102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd0102*), ABISELECT(24,16), "ee60102");
+ check_base_class_offset(lv, (cc102*)(dd0102*), 0, "ee60102");
+ check_base_class_offset(lv, (dd0102*), 0, "ee60102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60102.e");
+ test_class_info(&lv, &cd_ee60102);
+ dp->~ee60102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60102(Test_ee60102, "ee60102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60102C1Ev();
+extern void _ZN7ee60102D1Ev();
+Name_Map name_map_ee60102[] = {
+ NSPAIR(_ZN7ee60102C1Ev),
+ NSPAIR(_ZN7ee60102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd0102;
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+static Base_Class bases_ee60102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60102[];
+extern void _ZN7ee601023fooEv();
+extern void _ZN7ee601023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee601023fooEv,_ZTv0_n12_N7ee601023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee601023fooEv,_ZThn16_N7ee601023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee601023barEv,_ZTv0_n16_N7ee601023barEv)();
+extern void ABISELECT(_ZThn24_N7ee601023barEv,_ZThn16_N7ee601023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60102[0]),
+ (VTBL_ENTRY)&_ZN7ee601023fooEv,
+ (VTBL_ENTRY)&_ZN7ee601023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601023fooEv,_ZTv0_n12_N7ee601023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601023barEv,_ZTv0_n16_N7ee601023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60102[];
+static VTBL_ENTRY _tg__ZTV6dd0102__7ee60102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd0102__7ee60102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd0102__7ee60102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0102__7ee60102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee60102[] = {
+ {&(_ZTV7ee60102[3]), 3,11},
+ {&(_tg__ZTV6dd0102__7ee60102[3]), 3,3},
+ {&(_tg__ZTV5cc1026dd0102__7ee60102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd0102__7ee60102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0102__7ee60102[4]), 4,6},
+ {&(_ZTV7ee60102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60102[];
+extern VTBL_ENTRY _ZTV7ee60102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60102[];
+static VTBL_ENTRY alt_thunk_names741[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601023barEv,_ZTv0_n16_N7ee601023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601023barEv,_ZThn16_N7ee601023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601023fooEv,_ZTv0_n12_N7ee601023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601023fooEv,_ZThn16_N7ee601023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60102 = { "ee60102", // class name
+ bases_ee60102, 4,
+ &(vtc_ee60102[0]), // expected_vtbl_contents
+ &(vtt_ee60102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names741,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70102 : virtual dd0102 {
+ int e;
+ virtual void foo(); // _ZN7ee701023fooEv
+ virtual void bar(); // _ZN7ee701023barEv
+ ~ee70102(); // tgen
+ ee70102(); // tgen
+};
+//SIG(1 ee70102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70102 ::foo(){vfunc_called(this, "_ZN7ee701023fooEv");}
+void ee70102 ::bar(){vfunc_called(this, "_ZN7ee701023barEv");}
+ee70102 ::~ee70102(){ note_dtor("ee70102", this);} // tgen
+ee70102 ::ee70102(){ note_ctor("ee70102", this);} // tgen
+
+static void Test_ee70102()
+{
+ extern Class_Descriptor cd_ee70102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70102, buf);
+ ee70102 *dp, &lv = *(dp=new (buf) ee70102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee70102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd0102*), ABISELECT(32,20), "ee70102");
+ check_base_class_offset(lv, (cc102*)(dd0102*), ABISELECT(16,8), "ee70102");
+ check_base_class_offset(lv, (dd0102*), ABISELECT(16,8), "ee70102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70102.e");
+ test_class_info(&lv, &cd_ee70102);
+ dp->~ee70102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70102(Test_ee70102, "ee70102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70102C1Ev();
+extern void _ZN7ee70102D1Ev();
+Name_Map name_map_ee70102[] = {
+ NSPAIR(_ZN7ee70102C1Ev),
+ NSPAIR(_ZN7ee70102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd0102;
+extern VTBL_ENTRY _ZTI6dd0102[];
+extern VTBL_ENTRY _ZTV6dd0102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0102[];
+static Base_Class bases_ee70102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70102[];
+extern void _ZN7ee701023fooEv();
+extern void _ZN7ee701023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee701023fooEv,_ZTv0_n12_N7ee701023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee701023fooEv,_ZThn20_N7ee701023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee701023barEv,_ZTv0_n16_N7ee701023barEv)();
+extern void ABISELECT(_ZThn32_N7ee701023barEv,_ZThn20_N7ee701023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70102[0]),
+ (VTBL_ENTRY)&_ZN7ee701023fooEv,
+ (VTBL_ENTRY)&_ZN7ee701023barEv,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701023fooEv,_ZTv0_n12_N7ee701023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701023barEv,_ZTv0_n16_N7ee701023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70102[];
+static VTBL_ENTRY _tg__ZTV6dd0102__7ee70102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd0102__7ee70102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd0102__7ee70102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0102__7ee70102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee70102[] = {
+ {&(_ZTV7ee70102[4]), 4,15},
+ {&(_ZTV7ee70102[9]), 9,15},
+ {&(_ZTV7ee70102[13]), 13,15},
+ {&(_tg__ZTV6dd0102__7ee70102[3]), 3,3},
+ {&(_tg__ZTV5cc1026dd0102__7ee70102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd0102__7ee70102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0102__7ee70102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70102[];
+extern VTBL_ENTRY _ZTV7ee70102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70102[];
+static VTBL_ENTRY alt_thunk_names742[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701023barEv,_ZTv0_n16_N7ee701023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701023barEv,_ZThn20_N7ee701023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701023fooEv,_ZTv0_n12_N7ee701023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701023fooEv,_ZThn20_N7ee701023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70102 = { "ee70102", // class name
+ bases_ee70102, 4,
+ &(vtc_ee70102[0]), // expected_vtbl_contents
+ &(vtt_ee70102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names742,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1102 : virtual cc102 {
+ int d;
+ ~dd1102(); // tgen
+ dd1102(); // tgen
+};
+//SIG(-1 dd1102) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} Fi} Fi} Fi}
+
+
+dd1102 ::~dd1102(){ note_dtor("dd1102", this);} // tgen
+dd1102 ::dd1102(){ note_ctor("dd1102", this);} // tgen
+
+static void Test_dd1102()
+{
+ extern Class_Descriptor cd_dd1102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1102, buf);
+ dd1102 *dp, &lv = *(dp=new (buf) dd1102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd1102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,16), "dd1102");
+ check_base_class_offset(lv, (cc102*), ABISELECT(16,8), "dd1102");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1102.d");
+ test_class_info(&lv, &cd_dd1102);
+ dp->~dd1102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1102(Test_dd1102, "dd1102", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1102C1Ev();
+extern void _ZN6dd1102D1Ev();
+Name_Map name_map_dd1102[] = {
+ NSPAIR(_ZN6dd1102C1Ev),
+ NSPAIR(_ZN6dd1102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+static Base_Class bases_dd1102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd1102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1102[];
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__6dd1102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd1102[] = {
+ {&(_ZTV6dd1102[4]), 4,13},
+ {&(_ZTV6dd1102[7]), 7,13},
+ {&(_ZTV6dd1102[11]), 11,13},
+ {&(_tg__ZTV5cc102__6dd1102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__6dd1102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+Class_Descriptor cd_dd1102 = { "dd1102", // class name
+ bases_dd1102, 3,
+ &(vtc_dd1102[0]), // expected_vtbl_contents
+ &(vtt_dd1102[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1102),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1102),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 ee01102 : dd1102 {
+ int e;
+ ~ee01102(); // tgen
+ ee01102(); // tgen
+};
+//SIG(1 ee01102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} Fi}
+
+
+ee01102 ::~ee01102(){ note_dtor("ee01102", this);} // tgen
+ee01102 ::ee01102(){ note_ctor("ee01102", this);} // tgen
+
+static void Test_ee01102()
+{
+ extern Class_Descriptor cd_ee01102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01102, buf);
+ ee01102 *dp, &lv = *(dp=new (buf) ee01102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee01102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee01102");
+ check_base_class_offset(lv, (cc102*)(dd1102*), ABISELECT(16,12), "ee01102");
+ check_base_class_offset(lv, (dd1102*), 0, "ee01102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01102.e");
+ test_class_info(&lv, &cd_ee01102);
+ dp->~ee01102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01102(Test_ee01102, "ee01102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01102C1Ev();
+extern void _ZN7ee01102D1Ev();
+Name_Map name_map_ee01102[] = {
+ NSPAIR(_ZN7ee01102C1Ev),
+ NSPAIR(_ZN7ee01102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd1102;
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+static Base_Class bases_ee01102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01102[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee01102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01102[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01102[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01102[];
+static VTBL_ENTRY _tg__ZTV6dd1102__7ee01102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102__7ee01102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1102__7ee01102[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee01102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee01102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee01102[] = {
+ {&(_ZTV7ee01102[4]), 4,13},
+ {&(_tg__ZTV6dd1102__7ee01102[4]), 4,4},
+ {&(_tg__ZTV5cc102__6dd1102__7ee01102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd1102__7ee01102[4]), 4,6},
+ {&(_ZTV7ee01102[7]), 7,13},
+ {&(_ZTV7ee01102[11]), 11,13},
+ {&(_tg__ZTV5cc102__7ee01102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee01102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01102[];
+extern VTBL_ENTRY _ZTV7ee01102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01102[];
+Class_Descriptor cd_ee01102 = { "ee01102", // class name
+ bases_ee01102, 4,
+ &(vtc_ee01102[0]), // expected_vtbl_contents
+ &(vtt_ee01102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01102),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11102 : virtual dd1102 {
+ int e;
+ ~ee11102(); // tgen
+ ee11102(); // tgen
+};
+//SIG(1 ee11102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} Fi}
+
+
+ee11102 ::~ee11102(){ note_dtor("ee11102", this);} // tgen
+ee11102 ::ee11102(){ note_ctor("ee11102", this);} // tgen
+
+static void Test_ee11102()
+{
+ extern Class_Descriptor cd_ee11102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11102, buf);
+ ee11102 *dp, &lv = *(dp=new (buf) ee11102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee11102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee11102");
+ check_base_class_offset(lv, (cc102*)(dd1102*), ABISELECT(32,16), "ee11102");
+ check_base_class_offset(lv, (dd1102*), ABISELECT(16,8), "ee11102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11102.e");
+ test_class_info(&lv, &cd_ee11102);
+ dp->~ee11102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11102(Test_ee11102, "ee11102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11102C1Ev();
+extern void _ZN7ee11102D1Ev();
+Name_Map name_map_ee11102[] = {
+ NSPAIR(_ZN7ee11102C1Ev),
+ NSPAIR(_ZN7ee11102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd1102;
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+static Base_Class bases_ee11102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11102[];
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee11102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11102[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11102[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11102[0]),
+ 0,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11102[];
+static VTBL_ENTRY _tg__ZTV6dd1102__7ee11102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102__7ee11102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1102__7ee11102[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee11102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee11102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee11102[] = {
+ {&(_ZTV7ee11102[5]), 5,18},
+ {&(_ZTV7ee11102[9]), 9,18},
+ {&(_ZTV7ee11102[12]), 12,18},
+ {&(_ZTV7ee11102[16]), 16,18},
+ {&(_tg__ZTV6dd1102__7ee11102[4]), 4,4},
+ {&(_tg__ZTV5cc102__6dd1102__7ee11102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd1102__7ee11102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee11102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee11102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11102[];
+extern VTBL_ENTRY _ZTV7ee11102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11102[];
+Class_Descriptor cd_ee11102 = { "ee11102", // class name
+ bases_ee11102, 4,
+ &(vtc_ee11102[0]), // expected_vtbl_contents
+ &(vtt_ee11102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11102),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21102 : dd1102 {
+ int e;
+ virtual void foo(); // _ZN7ee211023fooEv
+ ~ee21102(); // tgen
+ ee21102(); // tgen
+};
+//SIG(1 ee21102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee21102 ::foo(){vfunc_called(this, "_ZN7ee211023fooEv");}
+ee21102 ::~ee21102(){ note_dtor("ee21102", this);} // tgen
+ee21102 ::ee21102(){ note_ctor("ee21102", this);} // tgen
+
+static void Test_ee21102()
+{
+ extern Class_Descriptor cd_ee21102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21102, buf);
+ ee21102 *dp, &lv = *(dp=new (buf) ee21102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee21102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee21102");
+ check_base_class_offset(lv, (cc102*)(dd1102*), ABISELECT(16,12), "ee21102");
+ check_base_class_offset(lv, (dd1102*), 0, "ee21102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21102.e");
+ test_class_info(&lv, &cd_ee21102);
+ dp->~ee21102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21102(Test_ee21102, "ee21102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21102C1Ev();
+extern void _ZN7ee21102D1Ev();
+Name_Map name_map_ee21102[] = {
+ NSPAIR(_ZN7ee21102C1Ev),
+ NSPAIR(_ZN7ee21102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd1102;
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+static Base_Class bases_ee21102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21102[];
+extern void _ZN7ee211023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211023fooEv,_ZTv0_n12_N7ee211023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee211023fooEv,_ZThn20_N7ee211023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee21102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21102[0]),
+ (VTBL_ENTRY)&_ZN7ee211023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21102[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211023fooEv,_ZTv0_n12_N7ee211023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21102[];
+static VTBL_ENTRY _tg__ZTV6dd1102__7ee21102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102__7ee21102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1102__7ee21102[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee21102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee21102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee21102[] = {
+ {&(_ZTV7ee21102[4]), 4,14},
+ {&(_tg__ZTV6dd1102__7ee21102[4]), 4,4},
+ {&(_tg__ZTV5cc102__6dd1102__7ee21102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd1102__7ee21102[4]), 4,6},
+ {&(_ZTV7ee21102[8]), 8,14},
+ {&(_ZTV7ee21102[12]), 12,14},
+ {&(_tg__ZTV5cc102__7ee21102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee21102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21102[];
+extern VTBL_ENTRY _ZTV7ee21102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21102[];
+static VTBL_ENTRY alt_thunk_names743[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211023fooEv,_ZTv0_n12_N7ee211023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee211023fooEv,_ZThn20_N7ee211023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21102 = { "ee21102", // class name
+ bases_ee21102, 4,
+ &(vtc_ee21102[0]), // expected_vtbl_contents
+ &(vtt_ee21102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names743,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31102 : virtual dd1102 {
+ int e;
+ virtual void foo(); // _ZN7ee311023fooEv
+ ~ee31102(); // tgen
+ ee31102(); // tgen
+};
+//SIG(1 ee31102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee31102 ::foo(){vfunc_called(this, "_ZN7ee311023fooEv");}
+ee31102 ::~ee31102(){ note_dtor("ee31102", this);} // tgen
+ee31102 ::ee31102(){ note_ctor("ee31102", this);} // tgen
+
+static void Test_ee31102()
+{
+ extern Class_Descriptor cd_ee31102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31102, buf);
+ ee31102 *dp, &lv = *(dp=new (buf) ee31102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee31102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee31102");
+ check_base_class_offset(lv, (cc102*)(dd1102*), ABISELECT(32,16), "ee31102");
+ check_base_class_offset(lv, (dd1102*), ABISELECT(16,8), "ee31102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31102.e");
+ test_class_info(&lv, &cd_ee31102);
+ dp->~ee31102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31102(Test_ee31102, "ee31102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31102C1Ev();
+extern void _ZN7ee31102D1Ev();
+Name_Map name_map_ee31102[] = {
+ NSPAIR(_ZN7ee31102C1Ev),
+ NSPAIR(_ZN7ee31102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd1102;
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+static Base_Class bases_ee31102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31102[];
+extern void _ZN7ee311023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311023fooEv,_ZTv0_n12_N7ee311023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee311023fooEv,_ZThn24_N7ee311023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee31102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31102[0]),
+ (VTBL_ENTRY)&_ZN7ee311023fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31102[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31102[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311023fooEv,_ZTv0_n12_N7ee311023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31102[];
+static VTBL_ENTRY _tg__ZTV6dd1102__7ee31102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102__7ee31102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1102__7ee31102[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee31102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee31102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee31102[] = {
+ {&(_ZTV7ee31102[5]), 5,19},
+ {&(_ZTV7ee31102[10]), 10,19},
+ {&(_ZTV7ee31102[13]), 13,19},
+ {&(_ZTV7ee31102[17]), 17,19},
+ {&(_tg__ZTV6dd1102__7ee31102[4]), 4,4},
+ {&(_tg__ZTV5cc102__6dd1102__7ee31102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd1102__7ee31102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee31102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee31102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31102[];
+extern VTBL_ENTRY _ZTV7ee31102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31102[];
+static VTBL_ENTRY alt_thunk_names744[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311023fooEv,_ZTv0_n12_N7ee311023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee311023fooEv,_ZThn24_N7ee311023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31102 = { "ee31102", // class name
+ bases_ee31102, 4,
+ &(vtc_ee31102[0]), // expected_vtbl_contents
+ &(vtt_ee31102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31102),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names744,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41102 : dd1102 {
+ int e;
+ virtual void bar(); // _ZN7ee411023barEv
+ ~ee41102(); // tgen
+ ee41102(); // tgen
+};
+//SIG(1 ee41102) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee41102 ::bar(){vfunc_called(this, "_ZN7ee411023barEv");}
+ee41102 ::~ee41102(){ note_dtor("ee41102", this);} // tgen
+ee41102 ::ee41102(){ note_ctor("ee41102", this);} // tgen
+
+static void Test_ee41102()
+{
+ extern Class_Descriptor cd_ee41102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41102, buf);
+ ee41102 *dp, &lv = *(dp=new (buf) ee41102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee41102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee41102");
+ check_base_class_offset(lv, (cc102*)(dd1102*), ABISELECT(16,12), "ee41102");
+ check_base_class_offset(lv, (dd1102*), 0, "ee41102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41102.e");
+ test_class_info(&lv, &cd_ee41102);
+ dp->~ee41102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41102(Test_ee41102, "ee41102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41102C1Ev();
+extern void _ZN7ee41102D1Ev();
+Name_Map name_map_ee41102[] = {
+ NSPAIR(_ZN7ee41102C1Ev),
+ NSPAIR(_ZN7ee41102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd1102;
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+static Base_Class bases_ee41102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41102[];
+extern void _ZN7ee411023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee411023barEv,_ZTv0_n16_N7ee411023barEv)();
+extern void ABISELECT(_ZThn32_N7ee411023barEv,_ZThn20_N7ee411023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41102[0]),
+ (VTBL_ENTRY)&_ZN7ee411023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41102[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee411023barEv,_ZTv0_n16_N7ee411023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41102[];
+static VTBL_ENTRY _tg__ZTV6dd1102__7ee41102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102__7ee41102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1102__7ee41102[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee41102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee41102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee41102[] = {
+ {&(_ZTV7ee41102[4]), 4,14},
+ {&(_tg__ZTV6dd1102__7ee41102[4]), 4,4},
+ {&(_tg__ZTV5cc102__6dd1102__7ee41102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd1102__7ee41102[4]), 4,6},
+ {&(_ZTV7ee41102[8]), 8,14},
+ {&(_ZTV7ee41102[12]), 12,14},
+ {&(_tg__ZTV5cc102__7ee41102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee41102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41102[];
+extern VTBL_ENTRY _ZTV7ee41102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41102[];
+static VTBL_ENTRY alt_thunk_names745[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee411023barEv,_ZTv0_n16_N7ee411023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee411023barEv,_ZThn20_N7ee411023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41102 = { "ee41102", // class name
+ bases_ee41102, 4,
+ &(vtc_ee41102[0]), // expected_vtbl_contents
+ &(vtt_ee41102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names745,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51102 : virtual dd1102 {
+ int e;
+ virtual void bar(); // _ZN7ee511023barEv
+ ~ee51102(); // tgen
+ ee51102(); // tgen
+};
+//SIG(1 ee51102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} Fi} v1 Fi}
+
+
+void ee51102 ::bar(){vfunc_called(this, "_ZN7ee511023barEv");}
+ee51102 ::~ee51102(){ note_dtor("ee51102", this);} // tgen
+ee51102 ::ee51102(){ note_ctor("ee51102", this);} // tgen
+
+static void Test_ee51102()
+{
+ extern Class_Descriptor cd_ee51102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51102, buf);
+ ee51102 *dp, &lv = *(dp=new (buf) ee51102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee51102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee51102");
+ check_base_class_offset(lv, (cc102*)(dd1102*), ABISELECT(32,16), "ee51102");
+ check_base_class_offset(lv, (dd1102*), ABISELECT(16,8), "ee51102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51102.e");
+ test_class_info(&lv, &cd_ee51102);
+ dp->~ee51102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51102(Test_ee51102, "ee51102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51102C1Ev();
+extern void _ZN7ee51102D1Ev();
+Name_Map name_map_ee51102[] = {
+ NSPAIR(_ZN7ee51102C1Ev),
+ NSPAIR(_ZN7ee51102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd1102;
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+static Base_Class bases_ee51102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51102[];
+extern void _ZN7ee511023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee511023barEv,_ZTv0_n16_N7ee511023barEv)();
+extern void ABISELECT(_ZThn48_N7ee511023barEv,_ZThn24_N7ee511023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51102[0]),
+ (VTBL_ENTRY)&_ZN7ee511023barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51102[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51102[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee511023barEv,_ZTv0_n16_N7ee511023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51102[];
+static VTBL_ENTRY _tg__ZTV6dd1102__7ee51102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102__7ee51102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1102__7ee51102[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee51102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee51102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee51102[] = {
+ {&(_ZTV7ee51102[5]), 5,19},
+ {&(_ZTV7ee51102[10]), 10,19},
+ {&(_ZTV7ee51102[13]), 13,19},
+ {&(_ZTV7ee51102[17]), 17,19},
+ {&(_tg__ZTV6dd1102__7ee51102[4]), 4,4},
+ {&(_tg__ZTV5cc102__6dd1102__7ee51102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd1102__7ee51102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee51102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee51102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51102[];
+extern VTBL_ENTRY _ZTV7ee51102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51102[];
+static VTBL_ENTRY alt_thunk_names746[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee511023barEv,_ZTv0_n16_N7ee511023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee511023barEv,_ZThn24_N7ee511023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51102 = { "ee51102", // class name
+ bases_ee51102, 4,
+ &(vtc_ee51102[0]), // expected_vtbl_contents
+ &(vtt_ee51102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51102),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names746,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61102 : dd1102 {
+ int e;
+ virtual void foo(); // _ZN7ee611023fooEv
+ virtual void bar(); // _ZN7ee611023barEv
+ ~ee61102(); // tgen
+ ee61102(); // tgen
+};
+//SIG(1 ee61102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61102 ::foo(){vfunc_called(this, "_ZN7ee611023fooEv");}
+void ee61102 ::bar(){vfunc_called(this, "_ZN7ee611023barEv");}
+ee61102 ::~ee61102(){ note_dtor("ee61102", this);} // tgen
+ee61102 ::ee61102(){ note_ctor("ee61102", this);} // tgen
+
+static void Test_ee61102()
+{
+ extern Class_Descriptor cd_ee61102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61102, buf);
+ ee61102 *dp, &lv = *(dp=new (buf) ee61102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee61102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee61102");
+ check_base_class_offset(lv, (cc102*)(dd1102*), ABISELECT(16,12), "ee61102");
+ check_base_class_offset(lv, (dd1102*), 0, "ee61102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61102.e");
+ test_class_info(&lv, &cd_ee61102);
+ dp->~ee61102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61102(Test_ee61102, "ee61102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61102C1Ev();
+extern void _ZN7ee61102D1Ev();
+Name_Map name_map_ee61102[] = {
+ NSPAIR(_ZN7ee61102C1Ev),
+ NSPAIR(_ZN7ee61102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd1102;
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+static Base_Class bases_ee61102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61102[];
+extern void _ZN7ee611023fooEv();
+extern void _ZN7ee611023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee611023fooEv,_ZTv0_n12_N7ee611023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee611023fooEv,_ZThn20_N7ee611023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee611023barEv,_ZTv0_n16_N7ee611023barEv)();
+extern void ABISELECT(_ZThn32_N7ee611023barEv,_ZThn20_N7ee611023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61102[0]),
+ (VTBL_ENTRY)&_ZN7ee611023fooEv,
+ (VTBL_ENTRY)&_ZN7ee611023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611023fooEv,_ZTv0_n12_N7ee611023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611023barEv,_ZTv0_n16_N7ee611023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61102[];
+static VTBL_ENTRY _tg__ZTV6dd1102__7ee61102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102__7ee61102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1102__7ee61102[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee61102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee61102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee61102[] = {
+ {&(_ZTV7ee61102[4]), 4,15},
+ {&(_tg__ZTV6dd1102__7ee61102[4]), 4,4},
+ {&(_tg__ZTV5cc102__6dd1102__7ee61102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd1102__7ee61102[4]), 4,6},
+ {&(_ZTV7ee61102[9]), 9,15},
+ {&(_ZTV7ee61102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee61102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee61102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61102[];
+extern VTBL_ENTRY _ZTV7ee61102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61102[];
+static VTBL_ENTRY alt_thunk_names747[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611023barEv,_ZTv0_n16_N7ee611023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611023barEv,_ZThn20_N7ee611023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611023fooEv,_ZTv0_n12_N7ee611023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611023fooEv,_ZThn20_N7ee611023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61102 = { "ee61102", // class name
+ bases_ee61102, 4,
+ &(vtc_ee61102[0]), // expected_vtbl_contents
+ &(vtt_ee61102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names747,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71102 : virtual dd1102 {
+ int e;
+ virtual void foo(); // _ZN7ee711023fooEv
+ virtual void bar(); // _ZN7ee711023barEv
+ ~ee71102(); // tgen
+ ee71102(); // tgen
+};
+//SIG(1 ee71102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71102 ::foo(){vfunc_called(this, "_ZN7ee711023fooEv");}
+void ee71102 ::bar(){vfunc_called(this, "_ZN7ee711023barEv");}
+ee71102 ::~ee71102(){ note_dtor("ee71102", this);} // tgen
+ee71102 ::ee71102(){ note_ctor("ee71102", this);} // tgen
+
+static void Test_ee71102()
+{
+ extern Class_Descriptor cd_ee71102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71102, buf);
+ ee71102 *dp, &lv = *(dp=new (buf) ee71102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee71102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee71102");
+ check_base_class_offset(lv, (cc102*)(dd1102*), ABISELECT(32,16), "ee71102");
+ check_base_class_offset(lv, (dd1102*), ABISELECT(16,8), "ee71102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71102.e");
+ test_class_info(&lv, &cd_ee71102);
+ dp->~ee71102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71102(Test_ee71102, "ee71102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71102C1Ev();
+extern void _ZN7ee71102D1Ev();
+Name_Map name_map_ee71102[] = {
+ NSPAIR(_ZN7ee71102C1Ev),
+ NSPAIR(_ZN7ee71102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd1102;
+extern VTBL_ENTRY _ZTI6dd1102[];
+extern VTBL_ENTRY _ZTV6dd1102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1102[];
+static Base_Class bases_ee71102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1102, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71102[];
+extern void _ZN7ee711023fooEv();
+extern void _ZN7ee711023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee711023fooEv,_ZTv0_n12_N7ee711023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee711023fooEv,_ZThn24_N7ee711023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee711023barEv,_ZTv0_n16_N7ee711023barEv)();
+extern void ABISELECT(_ZThn48_N7ee711023barEv,_ZThn24_N7ee711023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71102[0]),
+ (VTBL_ENTRY)&_ZN7ee711023fooEv,
+ (VTBL_ENTRY)&_ZN7ee711023barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71102[0]),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71102[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711023fooEv,_ZTv0_n12_N7ee711023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711023barEv,_ZTv0_n16_N7ee711023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71102[];
+static VTBL_ENTRY _tg__ZTV6dd1102__7ee71102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd1102__7ee71102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1102__7ee71102[] = {
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee71102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee71102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee71102[] = {
+ {&(_ZTV7ee71102[5]), 5,20},
+ {&(_ZTV7ee71102[11]), 11,20},
+ {&(_ZTV7ee71102[14]), 14,20},
+ {&(_ZTV7ee71102[18]), 18,20},
+ {&(_tg__ZTV6dd1102__7ee71102[4]), 4,4},
+ {&(_tg__ZTV5cc102__6dd1102__7ee71102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd1102__7ee71102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee71102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee71102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71102[];
+extern VTBL_ENTRY _ZTV7ee71102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71102[];
+static VTBL_ENTRY alt_thunk_names748[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711023barEv,_ZTv0_n16_N7ee711023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711023barEv,_ZThn24_N7ee711023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711023fooEv,_ZTv0_n12_N7ee711023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711023fooEv,_ZThn24_N7ee711023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71102 = { "ee71102", // class name
+ bases_ee71102, 4,
+ &(vtc_ee71102[0]), // expected_vtbl_contents
+ &(vtt_ee71102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71102),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names748,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2102 : cc102 {
+ int d;
+ virtual void foo(); // _ZN6dd21023fooEv
+ ~dd2102(); // tgen
+ dd2102(); // tgen
+};
+//SIG(-1 dd2102) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void dd2102 ::foo(){vfunc_called(this, "_ZN6dd21023fooEv");}
+dd2102 ::~dd2102(){ note_dtor("dd2102", this);} // tgen
+dd2102 ::dd2102(){ note_ctor("dd2102", this);} // tgen
+
+static void Test_dd2102()
+{
+ extern Class_Descriptor cd_dd2102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2102, buf);
+ dd2102 *dp, &lv = *(dp=new (buf) dd2102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd2102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(16,12), "dd2102");
+ check_base_class_offset(lv, (cc102*), 0, "dd2102");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2102.d");
+ test_class_info(&lv, &cd_dd2102);
+ dp->~dd2102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2102(Test_dd2102, "dd2102", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2102C1Ev();
+extern void _ZN6dd2102D1Ev();
+Name_Map name_map_dd2102[] = {
+ NSPAIR(_ZN6dd2102C1Ev),
+ NSPAIR(_ZN6dd2102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+static Base_Class bases_dd2102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2102[];
+extern void _ZN6dd21023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd2102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2102[];
+static VTBL_ENTRY _tg__ZTV5cc102__6dd2102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__6dd2102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd2102[] = {
+ {&(_ZTV6dd2102[3]), 3,10},
+ {&(_tg__ZTV5cc102__6dd2102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__6dd2102[4]), 4,6},
+ {&(_ZTV6dd2102[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static VTBL_ENTRY alt_thunk_names749[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2102 = { "dd2102", // class name
+ bases_dd2102, 3,
+ &(vtc_dd2102[0]), // expected_vtbl_contents
+ &(vtt_dd2102[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2102),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2102),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names749,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02102 : dd2102 {
+ int e;
+ ~ee02102(); // tgen
+ ee02102(); // tgen
+};
+//SIG(1 ee02102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee02102 ::~ee02102(){ note_dtor("ee02102", this);} // tgen
+ee02102 ::ee02102(){ note_ctor("ee02102", this);} // tgen
+
+static void Test_ee02102()
+{
+ extern Class_Descriptor cd_ee02102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02102, buf);
+ ee02102 *dp, &lv = *(dp=new (buf) ee02102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee02102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd2102*), ABISELECT(24,16), "ee02102");
+ check_base_class_offset(lv, (cc102*)(dd2102*), 0, "ee02102");
+ check_base_class_offset(lv, (dd2102*), 0, "ee02102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02102.e");
+ test_class_info(&lv, &cd_ee02102);
+ dp->~ee02102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02102(Test_ee02102, "ee02102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02102C1Ev();
+extern void _ZN7ee02102D1Ev();
+Name_Map name_map_ee02102[] = {
+ NSPAIR(_ZN7ee02102C1Ev),
+ NSPAIR(_ZN7ee02102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd2102;
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static Base_Class bases_ee02102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02102[];
+extern void _ZN6dd21023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee02102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02102[];
+extern void _ZN6dd21023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2102__7ee02102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd2102__7ee02102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd2102__7ee02102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2102__7ee02102[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee02102[] = {
+ {&(_ZTV7ee02102[3]), 3,10},
+ {&(_tg__ZTV6dd2102__7ee02102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd2102__7ee02102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd2102__7ee02102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2102__7ee02102[4]), 4,6},
+ {&(_ZTV7ee02102[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02102[];
+extern VTBL_ENTRY _ZTV7ee02102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02102[];
+static VTBL_ENTRY alt_thunk_names750[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02102 = { "ee02102", // class name
+ bases_ee02102, 4,
+ &(vtc_ee02102[0]), // expected_vtbl_contents
+ &(vtt_ee02102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02102),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names750,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12102 : virtual dd2102 {
+ int e;
+ ~ee12102(); // tgen
+ ee12102(); // tgen
+};
+//SIG(1 ee12102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee12102 ::~ee12102(){ note_dtor("ee12102", this);} // tgen
+ee12102 ::ee12102(){ note_ctor("ee12102", this);} // tgen
+
+static void Test_ee12102()
+{
+ extern Class_Descriptor cd_ee12102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12102, buf);
+ ee12102 *dp, &lv = *(dp=new (buf) ee12102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee12102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd2102*), ABISELECT(32,20), "ee12102");
+ check_base_class_offset(lv, (cc102*)(dd2102*), ABISELECT(16,8), "ee12102");
+ check_base_class_offset(lv, (dd2102*), ABISELECT(16,8), "ee12102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12102.e");
+ test_class_info(&lv, &cd_ee12102);
+ dp->~ee12102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12102(Test_ee12102, "ee12102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12102C1Ev();
+extern void _ZN7ee12102D1Ev();
+Name_Map name_map_ee12102[] = {
+ NSPAIR(_ZN7ee12102C1Ev),
+ NSPAIR(_ZN7ee12102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd2102;
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static Base_Class bases_ee12102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2102, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12102[];
+extern void _ZN6dd21023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee12102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12102[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12102[];
+extern void _ZN6dd21023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2102__7ee12102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd2102__7ee12102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd2102__7ee12102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2102__7ee12102[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee12102[] = {
+ {&(_ZTV7ee12102[4]), 4,15},
+ {&(_ZTV7ee12102[8]), 8,15},
+ {&(_ZTV7ee12102[13]), 13,15},
+ {&(_tg__ZTV6dd2102__7ee12102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd2102__7ee12102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd2102__7ee12102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2102__7ee12102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12102[];
+extern VTBL_ENTRY _ZTV7ee12102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12102[];
+static VTBL_ENTRY alt_thunk_names751[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12102 = { "ee12102", // class name
+ bases_ee12102, 4,
+ &(vtc_ee12102[0]), // expected_vtbl_contents
+ &(vtt_ee12102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names751,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22102 : dd2102 {
+ int e;
+ virtual void foo(); // _ZN7ee221023fooEv
+ ~ee22102(); // tgen
+ ee22102(); // tgen
+};
+//SIG(1 ee22102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22102 ::foo(){vfunc_called(this, "_ZN7ee221023fooEv");}
+ee22102 ::~ee22102(){ note_dtor("ee22102", this);} // tgen
+ee22102 ::ee22102(){ note_ctor("ee22102", this);} // tgen
+
+static void Test_ee22102()
+{
+ extern Class_Descriptor cd_ee22102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22102, buf);
+ ee22102 *dp, &lv = *(dp=new (buf) ee22102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee22102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd2102*), ABISELECT(24,16), "ee22102");
+ check_base_class_offset(lv, (cc102*)(dd2102*), 0, "ee22102");
+ check_base_class_offset(lv, (dd2102*), 0, "ee22102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22102.e");
+ test_class_info(&lv, &cd_ee22102);
+ dp->~ee22102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22102(Test_ee22102, "ee22102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22102C1Ev();
+extern void _ZN7ee22102D1Ev();
+Name_Map name_map_ee22102[] = {
+ NSPAIR(_ZN7ee22102C1Ev),
+ NSPAIR(_ZN7ee22102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd2102;
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static Base_Class bases_ee22102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22102[];
+extern void _ZN7ee221023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221023fooEv,_ZTv0_n12_N7ee221023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee221023fooEv,_ZThn16_N7ee221023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee22102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22102[0]),
+ (VTBL_ENTRY)&_ZN7ee221023fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221023fooEv,_ZTv0_n12_N7ee221023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22102[];
+extern void _ZN6dd21023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2102__7ee22102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd2102__7ee22102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd2102__7ee22102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2102__7ee22102[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee22102[] = {
+ {&(_ZTV7ee22102[3]), 3,10},
+ {&(_tg__ZTV6dd2102__7ee22102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd2102__7ee22102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd2102__7ee22102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2102__7ee22102[4]), 4,6},
+ {&(_ZTV7ee22102[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22102[];
+extern VTBL_ENTRY _ZTV7ee22102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22102[];
+static VTBL_ENTRY alt_thunk_names752[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221023fooEv,_ZTv0_n12_N7ee221023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee221023fooEv,_ZThn16_N7ee221023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22102 = { "ee22102", // class name
+ bases_ee22102, 4,
+ &(vtc_ee22102[0]), // expected_vtbl_contents
+ &(vtt_ee22102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22102),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names752,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32102 : virtual dd2102 {
+ int e;
+ virtual void foo(); // _ZN7ee321023fooEv
+ ~ee32102(); // tgen
+ ee32102(); // tgen
+};
+//SIG(1 ee32102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32102 ::foo(){vfunc_called(this, "_ZN7ee321023fooEv");}
+ee32102 ::~ee32102(){ note_dtor("ee32102", this);} // tgen
+ee32102 ::ee32102(){ note_ctor("ee32102", this);} // tgen
+
+static void Test_ee32102()
+{
+ extern Class_Descriptor cd_ee32102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32102, buf);
+ ee32102 *dp, &lv = *(dp=new (buf) ee32102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee32102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd2102*), ABISELECT(32,20), "ee32102");
+ check_base_class_offset(lv, (cc102*)(dd2102*), ABISELECT(16,8), "ee32102");
+ check_base_class_offset(lv, (dd2102*), ABISELECT(16,8), "ee32102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32102.e");
+ test_class_info(&lv, &cd_ee32102);
+ dp->~ee32102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32102(Test_ee32102, "ee32102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32102C1Ev();
+extern void _ZN7ee32102D1Ev();
+Name_Map name_map_ee32102[] = {
+ NSPAIR(_ZN7ee32102C1Ev),
+ NSPAIR(_ZN7ee32102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd2102;
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static Base_Class bases_ee32102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32102[];
+extern void _ZN7ee321023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee321023fooEv,_ZTv0_n16_N7ee321023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321023fooEv,_ZThn8_N7ee321023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee321023fooEv,_ZTv0_n12_N7ee321023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee321023fooEv,_ZThn20_N7ee321023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee32102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32102[0]),
+ (VTBL_ENTRY)&_ZN7ee321023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee321023fooEv,_ZTv0_n16_N7ee321023fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321023fooEv,_ZTv0_n12_N7ee321023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32102[];
+extern void _ZN6dd21023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2102__7ee32102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd2102__7ee32102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd2102__7ee32102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2102__7ee32102[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee32102[] = {
+ {&(_ZTV7ee32102[4]), 4,16},
+ {&(_ZTV7ee32102[9]), 9,16},
+ {&(_ZTV7ee32102[14]), 14,16},
+ {&(_tg__ZTV6dd2102__7ee32102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd2102__7ee32102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd2102__7ee32102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2102__7ee32102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32102[];
+extern VTBL_ENTRY _ZTV7ee32102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32102[];
+static VTBL_ENTRY alt_thunk_names753[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321023fooEv,_ZTv0_n12_N7ee321023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee321023fooEv,_ZThn20_N7ee321023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee321023fooEv,_ZTv0_n16_N7ee321023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321023fooEv,_ZThn8_N7ee321023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32102 = { "ee32102", // class name
+ bases_ee32102, 4,
+ &(vtc_ee32102[0]), // expected_vtbl_contents
+ &(vtt_ee32102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32102),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names753,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42102 : dd2102 {
+ int e;
+ virtual void bar(); // _ZN7ee421023barEv
+ ~ee42102(); // tgen
+ ee42102(); // tgen
+};
+//SIG(1 ee42102) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42102 ::bar(){vfunc_called(this, "_ZN7ee421023barEv");}
+ee42102 ::~ee42102(){ note_dtor("ee42102", this);} // tgen
+ee42102 ::ee42102(){ note_ctor("ee42102", this);} // tgen
+
+static void Test_ee42102()
+{
+ extern Class_Descriptor cd_ee42102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42102, buf);
+ ee42102 *dp, &lv = *(dp=new (buf) ee42102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee42102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd2102*), ABISELECT(24,16), "ee42102");
+ check_base_class_offset(lv, (cc102*)(dd2102*), 0, "ee42102");
+ check_base_class_offset(lv, (dd2102*), 0, "ee42102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42102.e");
+ test_class_info(&lv, &cd_ee42102);
+ dp->~ee42102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42102(Test_ee42102, "ee42102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42102C1Ev();
+extern void _ZN7ee42102D1Ev();
+Name_Map name_map_ee42102[] = {
+ NSPAIR(_ZN7ee42102C1Ev),
+ NSPAIR(_ZN7ee42102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd2102;
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static Base_Class bases_ee42102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42102[];
+extern void _ZN6dd21023fooEv();
+extern void _ZN7ee421023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee421023barEv,_ZTv0_n16_N7ee421023barEv)();
+extern void ABISELECT(_ZThn24_N7ee421023barEv,_ZThn16_N7ee421023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+ (VTBL_ENTRY)&_ZN7ee421023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee421023barEv,_ZTv0_n16_N7ee421023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42102[];
+extern void _ZN6dd21023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2102__7ee42102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd2102__7ee42102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd2102__7ee42102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2102__7ee42102[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee42102[] = {
+ {&(_ZTV7ee42102[3]), 3,11},
+ {&(_tg__ZTV6dd2102__7ee42102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd2102__7ee42102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd2102__7ee42102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2102__7ee42102[4]), 4,6},
+ {&(_ZTV7ee42102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42102[];
+extern VTBL_ENTRY _ZTV7ee42102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42102[];
+static VTBL_ENTRY alt_thunk_names754[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee421023barEv,_ZTv0_n16_N7ee421023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee421023barEv,_ZThn16_N7ee421023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42102 = { "ee42102", // class name
+ bases_ee42102, 4,
+ &(vtc_ee42102[0]), // expected_vtbl_contents
+ &(vtt_ee42102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names754,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52102 : virtual dd2102 {
+ int e;
+ virtual void bar(); // _ZN7ee521023barEv
+ ~ee52102(); // tgen
+ ee52102(); // tgen
+};
+//SIG(1 ee52102) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52102 ::bar(){vfunc_called(this, "_ZN7ee521023barEv");}
+ee52102 ::~ee52102(){ note_dtor("ee52102", this);} // tgen
+ee52102 ::ee52102(){ note_ctor("ee52102", this);} // tgen
+
+static void Test_ee52102()
+{
+ extern Class_Descriptor cd_ee52102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52102, buf);
+ ee52102 *dp, &lv = *(dp=new (buf) ee52102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee52102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd2102*), ABISELECT(32,20), "ee52102");
+ check_base_class_offset(lv, (cc102*)(dd2102*), ABISELECT(16,8), "ee52102");
+ check_base_class_offset(lv, (dd2102*), ABISELECT(16,8), "ee52102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52102.e");
+ test_class_info(&lv, &cd_ee52102);
+ dp->~ee52102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52102(Test_ee52102, "ee52102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52102C1Ev();
+extern void _ZN7ee52102D1Ev();
+Name_Map name_map_ee52102[] = {
+ NSPAIR(_ZN7ee52102C1Ev),
+ NSPAIR(_ZN7ee52102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd2102;
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static Base_Class bases_ee52102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52102[];
+extern void _ZN7ee521023barEv();
+extern void _ZN6dd21023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee521023barEv,_ZTv0_n16_N7ee521023barEv)();
+extern void ABISELECT(_ZThn32_N7ee521023barEv,_ZThn20_N7ee521023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52102[0]),
+ (VTBL_ENTRY)&_ZN7ee521023barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee521023barEv,_ZTv0_n16_N7ee521023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52102[];
+extern void _ZN6dd21023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2102__7ee52102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd2102__7ee52102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd2102__7ee52102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2102__7ee52102[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee52102[] = {
+ {&(_ZTV7ee52102[4]), 4,16},
+ {&(_ZTV7ee52102[9]), 9,16},
+ {&(_ZTV7ee52102[14]), 14,16},
+ {&(_tg__ZTV6dd2102__7ee52102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd2102__7ee52102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd2102__7ee52102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2102__7ee52102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52102[];
+extern VTBL_ENTRY _ZTV7ee52102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52102[];
+static VTBL_ENTRY alt_thunk_names755[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee521023barEv,_ZTv0_n16_N7ee521023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee521023barEv,_ZThn20_N7ee521023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52102 = { "ee52102", // class name
+ bases_ee52102, 4,
+ &(vtc_ee52102[0]), // expected_vtbl_contents
+ &(vtt_ee52102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52102),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names755,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62102 : dd2102 {
+ int e;
+ virtual void foo(); // _ZN7ee621023fooEv
+ virtual void bar(); // _ZN7ee621023barEv
+ ~ee62102(); // tgen
+ ee62102(); // tgen
+};
+//SIG(1 ee62102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62102 ::foo(){vfunc_called(this, "_ZN7ee621023fooEv");}
+void ee62102 ::bar(){vfunc_called(this, "_ZN7ee621023barEv");}
+ee62102 ::~ee62102(){ note_dtor("ee62102", this);} // tgen
+ee62102 ::ee62102(){ note_ctor("ee62102", this);} // tgen
+
+static void Test_ee62102()
+{
+ extern Class_Descriptor cd_ee62102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62102, buf);
+ ee62102 *dp, &lv = *(dp=new (buf) ee62102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee62102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd2102*), ABISELECT(24,16), "ee62102");
+ check_base_class_offset(lv, (cc102*)(dd2102*), 0, "ee62102");
+ check_base_class_offset(lv, (dd2102*), 0, "ee62102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62102.e");
+ test_class_info(&lv, &cd_ee62102);
+ dp->~ee62102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62102(Test_ee62102, "ee62102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62102C1Ev();
+extern void _ZN7ee62102D1Ev();
+Name_Map name_map_ee62102[] = {
+ NSPAIR(_ZN7ee62102C1Ev),
+ NSPAIR(_ZN7ee62102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd2102;
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static Base_Class bases_ee62102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62102[];
+extern void _ZN7ee621023fooEv();
+extern void _ZN7ee621023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee621023fooEv,_ZTv0_n12_N7ee621023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee621023fooEv,_ZThn16_N7ee621023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee621023barEv,_ZTv0_n16_N7ee621023barEv)();
+extern void ABISELECT(_ZThn24_N7ee621023barEv,_ZThn16_N7ee621023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62102[0]),
+ (VTBL_ENTRY)&_ZN7ee621023fooEv,
+ (VTBL_ENTRY)&_ZN7ee621023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621023fooEv,_ZTv0_n12_N7ee621023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621023barEv,_ZTv0_n16_N7ee621023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62102[];
+extern void _ZN6dd21023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2102__7ee62102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd2102__7ee62102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd2102__7ee62102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2102__7ee62102[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee62102[] = {
+ {&(_ZTV7ee62102[3]), 3,11},
+ {&(_tg__ZTV6dd2102__7ee62102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd2102__7ee62102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd2102__7ee62102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2102__7ee62102[4]), 4,6},
+ {&(_ZTV7ee62102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62102[];
+extern VTBL_ENTRY _ZTV7ee62102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62102[];
+static VTBL_ENTRY alt_thunk_names756[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd21023fooEv,_ZThn16_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621023barEv,_ZTv0_n16_N7ee621023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621023barEv,_ZThn16_N7ee621023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621023fooEv,_ZTv0_n12_N7ee621023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621023fooEv,_ZThn16_N7ee621023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62102 = { "ee62102", // class name
+ bases_ee62102, 4,
+ &(vtc_ee62102[0]), // expected_vtbl_contents
+ &(vtt_ee62102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names756,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72102 : virtual dd2102 {
+ int e;
+ virtual void foo(); // _ZN7ee721023fooEv
+ virtual void bar(); // _ZN7ee721023barEv
+ ~ee72102(); // tgen
+ ee72102(); // tgen
+};
+//SIG(1 ee72102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72102 ::foo(){vfunc_called(this, "_ZN7ee721023fooEv");}
+void ee72102 ::bar(){vfunc_called(this, "_ZN7ee721023barEv");}
+ee72102 ::~ee72102(){ note_dtor("ee72102", this);} // tgen
+ee72102 ::ee72102(){ note_ctor("ee72102", this);} // tgen
+
+static void Test_ee72102()
+{
+ extern Class_Descriptor cd_ee72102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72102, buf);
+ ee72102 *dp, &lv = *(dp=new (buf) ee72102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee72102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd2102*), ABISELECT(32,20), "ee72102");
+ check_base_class_offset(lv, (cc102*)(dd2102*), ABISELECT(16,8), "ee72102");
+ check_base_class_offset(lv, (dd2102*), ABISELECT(16,8), "ee72102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72102.e");
+ test_class_info(&lv, &cd_ee72102);
+ dp->~ee72102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72102(Test_ee72102, "ee72102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72102C1Ev();
+extern void _ZN7ee72102D1Ev();
+Name_Map name_map_ee72102[] = {
+ NSPAIR(_ZN7ee72102C1Ev),
+ NSPAIR(_ZN7ee72102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd2102;
+extern VTBL_ENTRY _ZTI6dd2102[];
+extern VTBL_ENTRY _ZTV6dd2102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2102[];
+static Base_Class bases_ee72102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72102[];
+extern void _ZN7ee721023fooEv();
+extern void _ZN7ee721023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee721023fooEv,_ZTv0_n16_N7ee721023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721023fooEv,_ZThn8_N7ee721023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721023fooEv,_ZTv0_n12_N7ee721023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee721023fooEv,_ZThn20_N7ee721023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721023barEv,_ZTv0_n16_N7ee721023barEv)();
+extern void ABISELECT(_ZThn32_N7ee721023barEv,_ZThn20_N7ee721023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72102[0]),
+ (VTBL_ENTRY)&_ZN7ee721023fooEv,
+ (VTBL_ENTRY)&_ZN7ee721023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721023fooEv,_ZTv0_n16_N7ee721023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721023fooEv,_ZTv0_n12_N7ee721023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721023barEv,_ZTv0_n16_N7ee721023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72102[];
+extern void _ZN6dd21023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2102__7ee72102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&_ZN6dd21023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd2102__7ee72102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd2102__7ee72102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2102__7ee72102[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee72102[] = {
+ {&(_ZTV7ee72102[4]), 4,17},
+ {&(_ZTV7ee72102[10]), 10,17},
+ {&(_ZTV7ee72102[15]), 15,17},
+ {&(_tg__ZTV6dd2102__7ee72102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd2102__7ee72102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd2102__7ee72102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2102__7ee72102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72102[];
+extern VTBL_ENTRY _ZTV7ee72102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72102[];
+static VTBL_ENTRY alt_thunk_names757[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21023fooEv,_ZTv0_n12_N6dd21023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd21023fooEv,_ZThn12_N6dd21023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721023barEv,_ZTv0_n16_N7ee721023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721023barEv,_ZThn20_N7ee721023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721023fooEv,_ZTv0_n12_N7ee721023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721023fooEv,_ZThn20_N7ee721023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721023fooEv,_ZTv0_n16_N7ee721023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721023fooEv,_ZThn8_N7ee721023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72102 = { "ee72102", // class name
+ bases_ee72102, 4,
+ &(vtc_ee72102[0]), // expected_vtbl_contents
+ &(vtt_ee72102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72102),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names757,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3102 : virtual cc102 {
+ int d;
+ virtual void foo(); // _ZN6dd31023fooEv
+ ~dd3102(); // tgen
+ dd3102(); // tgen
+};
+//SIG(-1 dd3102) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} Fi} Fi} v1 Fi}
+
+
+void dd3102 ::foo(){vfunc_called(this, "_ZN6dd31023fooEv");}
+dd3102 ::~dd3102(){ note_dtor("dd3102", this);} // tgen
+dd3102 ::dd3102(){ note_ctor("dd3102", this);} // tgen
+
+static void Test_dd3102()
+{
+ extern Class_Descriptor cd_dd3102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3102, buf);
+ dd3102 *dp, &lv = *(dp=new (buf) dd3102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd3102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,16), "dd3102");
+ check_base_class_offset(lv, (cc102*), ABISELECT(16,8), "dd3102");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3102.d");
+ test_class_info(&lv, &cd_dd3102);
+ dp->~dd3102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3102(Test_dd3102, "dd3102", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3102C1Ev();
+extern void _ZN6dd3102D1Ev();
+Name_Map name_map_dd3102[] = {
+ NSPAIR(_ZN6dd3102C1Ev),
+ NSPAIR(_ZN6dd3102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+static Base_Class bases_dd3102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern void _ZN6dd31023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd3102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3102[];
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__6dd3102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd3102[] = {
+ {&(_ZTV6dd3102[4]), 4,14},
+ {&(_ZTV6dd3102[8]), 8,14},
+ {&(_ZTV6dd3102[12]), 12,14},
+ {&(_tg__ZTV5cc102__6dd3102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__6dd3102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static VTBL_ENTRY alt_thunk_names758[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3102 = { "dd3102", // class name
+ bases_dd3102, 3,
+ &(vtc_dd3102[0]), // expected_vtbl_contents
+ &(vtt_dd3102[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3102),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names758,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03102 : dd3102 {
+ int e;
+ ~ee03102(); // tgen
+ ee03102(); // tgen
+};
+//SIG(1 ee03102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee03102 ::~ee03102(){ note_dtor("ee03102", this);} // tgen
+ee03102 ::ee03102(){ note_ctor("ee03102", this);} // tgen
+
+static void Test_ee03102()
+{
+ extern Class_Descriptor cd_ee03102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03102, buf);
+ ee03102 *dp, &lv = *(dp=new (buf) ee03102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee03102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee03102");
+ check_base_class_offset(lv, (cc102*)(dd3102*), ABISELECT(16,12), "ee03102");
+ check_base_class_offset(lv, (dd3102*), 0, "ee03102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03102.e");
+ test_class_info(&lv, &cd_ee03102);
+ dp->~ee03102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03102(Test_ee03102, "ee03102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03102C1Ev();
+extern void _ZN7ee03102D1Ev();
+Name_Map name_map_ee03102[] = {
+ NSPAIR(_ZN7ee03102C1Ev),
+ NSPAIR(_ZN7ee03102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd3102;
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static Base_Class bases_ee03102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03102[];
+extern void _ZN6dd31023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee03102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03102[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03102[];
+extern void _ZN6dd31023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3102__7ee03102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102__7ee03102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3102__7ee03102[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee03102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee03102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee03102[] = {
+ {&(_ZTV7ee03102[4]), 4,14},
+ {&(_tg__ZTV6dd3102__7ee03102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd3102__7ee03102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd3102__7ee03102[4]), 4,6},
+ {&(_ZTV7ee03102[8]), 8,14},
+ {&(_ZTV7ee03102[12]), 12,14},
+ {&(_tg__ZTV5cc102__7ee03102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee03102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03102[];
+extern VTBL_ENTRY _ZTV7ee03102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03102[];
+static VTBL_ENTRY alt_thunk_names759[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03102 = { "ee03102", // class name
+ bases_ee03102, 4,
+ &(vtc_ee03102[0]), // expected_vtbl_contents
+ &(vtt_ee03102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names759,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13102 : virtual dd3102 {
+ int e;
+ ~ee13102(); // tgen
+ ee13102(); // tgen
+};
+//SIG(1 ee13102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee13102 ::~ee13102(){ note_dtor("ee13102", this);} // tgen
+ee13102 ::ee13102(){ note_ctor("ee13102", this);} // tgen
+
+static void Test_ee13102()
+{
+ extern Class_Descriptor cd_ee13102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13102, buf);
+ ee13102 *dp, &lv = *(dp=new (buf) ee13102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee13102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee13102");
+ check_base_class_offset(lv, (cc102*)(dd3102*), ABISELECT(32,16), "ee13102");
+ check_base_class_offset(lv, (dd3102*), ABISELECT(16,8), "ee13102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13102.e");
+ test_class_info(&lv, &cd_ee13102);
+ dp->~ee13102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13102(Test_ee13102, "ee13102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13102C1Ev();
+extern void _ZN7ee13102D1Ev();
+Name_Map name_map_ee13102[] = {
+ NSPAIR(_ZN7ee13102C1Ev),
+ NSPAIR(_ZN7ee13102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd3102;
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static Base_Class bases_ee13102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13102[];
+extern void _ZN6dd31023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee13102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13102[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13102[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13102[];
+extern void _ZN6dd31023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3102__7ee13102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102__7ee13102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3102__7ee13102[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee13102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee13102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee13102[] = {
+ {&(_ZTV7ee13102[5]), 5,20},
+ {&(_ZTV7ee13102[10]), 10,20},
+ {&(_ZTV7ee13102[14]), 14,20},
+ {&(_ZTV7ee13102[18]), 18,20},
+ {&(_tg__ZTV6dd3102__7ee13102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd3102__7ee13102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd3102__7ee13102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee13102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee13102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13102[];
+extern VTBL_ENTRY _ZTV7ee13102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13102[];
+static VTBL_ENTRY alt_thunk_names760[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13102 = { "ee13102", // class name
+ bases_ee13102, 4,
+ &(vtc_ee13102[0]), // expected_vtbl_contents
+ &(vtt_ee13102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13102),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names760,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23102 : dd3102 {
+ int e;
+ virtual void foo(); // _ZN7ee231023fooEv
+ ~ee23102(); // tgen
+ ee23102(); // tgen
+};
+//SIG(1 ee23102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23102 ::foo(){vfunc_called(this, "_ZN7ee231023fooEv");}
+ee23102 ::~ee23102(){ note_dtor("ee23102", this);} // tgen
+ee23102 ::ee23102(){ note_ctor("ee23102", this);} // tgen
+
+static void Test_ee23102()
+{
+ extern Class_Descriptor cd_ee23102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23102, buf);
+ ee23102 *dp, &lv = *(dp=new (buf) ee23102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee23102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee23102");
+ check_base_class_offset(lv, (cc102*)(dd3102*), ABISELECT(16,12), "ee23102");
+ check_base_class_offset(lv, (dd3102*), 0, "ee23102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23102.e");
+ test_class_info(&lv, &cd_ee23102);
+ dp->~ee23102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23102(Test_ee23102, "ee23102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23102C1Ev();
+extern void _ZN7ee23102D1Ev();
+Name_Map name_map_ee23102[] = {
+ NSPAIR(_ZN7ee23102C1Ev),
+ NSPAIR(_ZN7ee23102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd3102;
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static Base_Class bases_ee23102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23102[];
+extern void _ZN7ee231023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231023fooEv,_ZTv0_n12_N7ee231023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee231023fooEv,_ZThn20_N7ee231023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee23102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23102[0]),
+ (VTBL_ENTRY)&_ZN7ee231023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23102[0]),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231023fooEv,_ZTv0_n12_N7ee231023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23102[];
+extern void _ZN6dd31023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3102__7ee23102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102__7ee23102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3102__7ee23102[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee23102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee23102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee23102[] = {
+ {&(_ZTV7ee23102[4]), 4,14},
+ {&(_tg__ZTV6dd3102__7ee23102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd3102__7ee23102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd3102__7ee23102[4]), 4,6},
+ {&(_ZTV7ee23102[8]), 8,14},
+ {&(_ZTV7ee23102[12]), 12,14},
+ {&(_tg__ZTV5cc102__7ee23102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee23102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23102[];
+extern VTBL_ENTRY _ZTV7ee23102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23102[];
+static VTBL_ENTRY alt_thunk_names761[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231023fooEv,_ZTv0_n12_N7ee231023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee231023fooEv,_ZThn20_N7ee231023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23102 = { "ee23102", // class name
+ bases_ee23102, 4,
+ &(vtc_ee23102[0]), // expected_vtbl_contents
+ &(vtt_ee23102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names761,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33102 : virtual dd3102 {
+ int e;
+ virtual void foo(); // _ZN7ee331023fooEv
+ ~ee33102(); // tgen
+ ee33102(); // tgen
+};
+//SIG(1 ee33102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33102 ::foo(){vfunc_called(this, "_ZN7ee331023fooEv");}
+ee33102 ::~ee33102(){ note_dtor("ee33102", this);} // tgen
+ee33102 ::ee33102(){ note_ctor("ee33102", this);} // tgen
+
+static void Test_ee33102()
+{
+ extern Class_Descriptor cd_ee33102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33102, buf);
+ ee33102 *dp, &lv = *(dp=new (buf) ee33102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee33102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee33102");
+ check_base_class_offset(lv, (cc102*)(dd3102*), ABISELECT(32,16), "ee33102");
+ check_base_class_offset(lv, (dd3102*), ABISELECT(16,8), "ee33102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33102.e");
+ test_class_info(&lv, &cd_ee33102);
+ dp->~ee33102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33102(Test_ee33102, "ee33102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33102C1Ev();
+extern void _ZN7ee33102D1Ev();
+Name_Map name_map_ee33102[] = {
+ NSPAIR(_ZN7ee33102C1Ev),
+ NSPAIR(_ZN7ee33102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd3102;
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static Base_Class bases_ee33102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33102[];
+extern void _ZN7ee331023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee331023fooEv,_ZTv0_n20_N7ee331023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331023fooEv,_ZThn8_N7ee331023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee331023fooEv,_ZTv0_n12_N7ee331023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee331023fooEv,_ZThn24_N7ee331023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee33102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33102[0]),
+ (VTBL_ENTRY)&_ZN7ee331023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee331023fooEv,_ZTv0_n20_N7ee331023fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33102[0]),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331023fooEv,_ZTv0_n12_N7ee331023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33102[];
+extern void _ZN6dd31023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3102__7ee33102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102__7ee33102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3102__7ee33102[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee33102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee33102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee33102[] = {
+ {&(_ZTV7ee33102[5]), 5,21},
+ {&(_ZTV7ee33102[11]), 11,21},
+ {&(_ZTV7ee33102[15]), 15,21},
+ {&(_ZTV7ee33102[19]), 19,21},
+ {&(_tg__ZTV6dd3102__7ee33102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd3102__7ee33102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd3102__7ee33102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee33102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee33102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33102[];
+extern VTBL_ENTRY _ZTV7ee33102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33102[];
+static VTBL_ENTRY alt_thunk_names762[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331023fooEv,_ZTv0_n12_N7ee331023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee331023fooEv,_ZThn24_N7ee331023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee331023fooEv,_ZTv0_n20_N7ee331023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331023fooEv,_ZThn8_N7ee331023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33102 = { "ee33102", // class name
+ bases_ee33102, 4,
+ &(vtc_ee33102[0]), // expected_vtbl_contents
+ &(vtt_ee33102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33102),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names762,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43102 : dd3102 {
+ int e;
+ virtual void bar(); // _ZN7ee431023barEv
+ ~ee43102(); // tgen
+ ee43102(); // tgen
+};
+//SIG(1 ee43102) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43102 ::bar(){vfunc_called(this, "_ZN7ee431023barEv");}
+ee43102 ::~ee43102(){ note_dtor("ee43102", this);} // tgen
+ee43102 ::ee43102(){ note_ctor("ee43102", this);} // tgen
+
+static void Test_ee43102()
+{
+ extern Class_Descriptor cd_ee43102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43102, buf);
+ ee43102 *dp, &lv = *(dp=new (buf) ee43102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee43102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee43102");
+ check_base_class_offset(lv, (cc102*)(dd3102*), ABISELECT(16,12), "ee43102");
+ check_base_class_offset(lv, (dd3102*), 0, "ee43102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43102.e");
+ test_class_info(&lv, &cd_ee43102);
+ dp->~ee43102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43102(Test_ee43102, "ee43102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43102C1Ev();
+extern void _ZN7ee43102D1Ev();
+Name_Map name_map_ee43102[] = {
+ NSPAIR(_ZN7ee43102C1Ev),
+ NSPAIR(_ZN7ee43102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd3102;
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static Base_Class bases_ee43102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43102[];
+extern void _ZN6dd31023fooEv();
+extern void _ZN7ee431023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee431023barEv,_ZTv0_n16_N7ee431023barEv)();
+extern void ABISELECT(_ZThn32_N7ee431023barEv,_ZThn20_N7ee431023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+ (VTBL_ENTRY)&_ZN7ee431023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee431023barEv,_ZTv0_n16_N7ee431023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43102[];
+extern void _ZN6dd31023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3102__7ee43102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102__7ee43102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3102__7ee43102[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee43102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee43102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee43102[] = {
+ {&(_ZTV7ee43102[4]), 4,15},
+ {&(_tg__ZTV6dd3102__7ee43102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd3102__7ee43102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd3102__7ee43102[4]), 4,6},
+ {&(_ZTV7ee43102[9]), 9,15},
+ {&(_ZTV7ee43102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee43102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee43102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43102[];
+extern VTBL_ENTRY _ZTV7ee43102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43102[];
+static VTBL_ENTRY alt_thunk_names763[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee431023barEv,_ZTv0_n16_N7ee431023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee431023barEv,_ZThn20_N7ee431023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43102 = { "ee43102", // class name
+ bases_ee43102, 4,
+ &(vtc_ee43102[0]), // expected_vtbl_contents
+ &(vtt_ee43102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names763,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53102 : virtual dd3102 {
+ int e;
+ virtual void bar(); // _ZN7ee531023barEv
+ ~ee53102(); // tgen
+ ee53102(); // tgen
+};
+//SIG(1 ee53102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53102 ::bar(){vfunc_called(this, "_ZN7ee531023barEv");}
+ee53102 ::~ee53102(){ note_dtor("ee53102", this);} // tgen
+ee53102 ::ee53102(){ note_ctor("ee53102", this);} // tgen
+
+static void Test_ee53102()
+{
+ extern Class_Descriptor cd_ee53102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53102, buf);
+ ee53102 *dp, &lv = *(dp=new (buf) ee53102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee53102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee53102");
+ check_base_class_offset(lv, (cc102*)(dd3102*), ABISELECT(32,16), "ee53102");
+ check_base_class_offset(lv, (dd3102*), ABISELECT(16,8), "ee53102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53102.e");
+ test_class_info(&lv, &cd_ee53102);
+ dp->~ee53102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53102(Test_ee53102, "ee53102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53102C1Ev();
+extern void _ZN7ee53102D1Ev();
+Name_Map name_map_ee53102[] = {
+ NSPAIR(_ZN7ee53102C1Ev),
+ NSPAIR(_ZN7ee53102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd3102;
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static Base_Class bases_ee53102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53102[];
+extern void _ZN7ee531023barEv();
+extern void _ZN6dd31023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee531023barEv,_ZTv0_n16_N7ee531023barEv)();
+extern void ABISELECT(_ZThn48_N7ee531023barEv,_ZThn24_N7ee531023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53102[0]),
+ (VTBL_ENTRY)&_ZN7ee531023barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53102[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee531023barEv,_ZTv0_n16_N7ee531023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53102[];
+extern void _ZN6dd31023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3102__7ee53102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102__7ee53102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3102__7ee53102[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee53102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee53102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee53102[] = {
+ {&(_ZTV7ee53102[5]), 5,21},
+ {&(_ZTV7ee53102[11]), 11,21},
+ {&(_ZTV7ee53102[15]), 15,21},
+ {&(_ZTV7ee53102[19]), 19,21},
+ {&(_tg__ZTV6dd3102__7ee53102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd3102__7ee53102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd3102__7ee53102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee53102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee53102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53102[];
+extern VTBL_ENTRY _ZTV7ee53102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53102[];
+static VTBL_ENTRY alt_thunk_names764[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee531023barEv,_ZTv0_n16_N7ee531023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee531023barEv,_ZThn24_N7ee531023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53102 = { "ee53102", // class name
+ bases_ee53102, 4,
+ &(vtc_ee53102[0]), // expected_vtbl_contents
+ &(vtt_ee53102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53102),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names764,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63102 : dd3102 {
+ int e;
+ virtual void foo(); // _ZN7ee631023fooEv
+ virtual void bar(); // _ZN7ee631023barEv
+ ~ee63102(); // tgen
+ ee63102(); // tgen
+};
+//SIG(1 ee63102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63102 ::foo(){vfunc_called(this, "_ZN7ee631023fooEv");}
+void ee63102 ::bar(){vfunc_called(this, "_ZN7ee631023barEv");}
+ee63102 ::~ee63102(){ note_dtor("ee63102", this);} // tgen
+ee63102 ::ee63102(){ note_ctor("ee63102", this);} // tgen
+
+static void Test_ee63102()
+{
+ extern Class_Descriptor cd_ee63102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63102, buf);
+ ee63102 *dp, &lv = *(dp=new (buf) ee63102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee63102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee63102");
+ check_base_class_offset(lv, (cc102*)(dd3102*), ABISELECT(16,12), "ee63102");
+ check_base_class_offset(lv, (dd3102*), 0, "ee63102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63102.e");
+ test_class_info(&lv, &cd_ee63102);
+ dp->~ee63102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63102(Test_ee63102, "ee63102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63102C1Ev();
+extern void _ZN7ee63102D1Ev();
+Name_Map name_map_ee63102[] = {
+ NSPAIR(_ZN7ee63102C1Ev),
+ NSPAIR(_ZN7ee63102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd3102;
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static Base_Class bases_ee63102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63102[];
+extern void _ZN7ee631023fooEv();
+extern void _ZN7ee631023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee631023fooEv,_ZTv0_n12_N7ee631023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee631023fooEv,_ZThn20_N7ee631023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee631023barEv,_ZTv0_n16_N7ee631023barEv)();
+extern void ABISELECT(_ZThn32_N7ee631023barEv,_ZThn20_N7ee631023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63102[0]),
+ (VTBL_ENTRY)&_ZN7ee631023fooEv,
+ (VTBL_ENTRY)&_ZN7ee631023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631023fooEv,_ZTv0_n12_N7ee631023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631023barEv,_ZTv0_n16_N7ee631023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63102[];
+extern void _ZN6dd31023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3102__7ee63102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102__7ee63102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3102__7ee63102[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee63102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee63102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee63102[] = {
+ {&(_ZTV7ee63102[4]), 4,15},
+ {&(_tg__ZTV6dd3102__7ee63102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd3102__7ee63102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd3102__7ee63102[4]), 4,6},
+ {&(_ZTV7ee63102[9]), 9,15},
+ {&(_ZTV7ee63102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee63102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee63102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63102[];
+extern VTBL_ENTRY _ZTV7ee63102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63102[];
+static VTBL_ENTRY alt_thunk_names765[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn20_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631023barEv,_ZTv0_n16_N7ee631023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631023barEv,_ZThn20_N7ee631023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631023fooEv,_ZTv0_n12_N7ee631023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631023fooEv,_ZThn20_N7ee631023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63102 = { "ee63102", // class name
+ bases_ee63102, 4,
+ &(vtc_ee63102[0]), // expected_vtbl_contents
+ &(vtt_ee63102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names765,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73102 : virtual dd3102 {
+ int e;
+ virtual void foo(); // _ZN7ee731023fooEv
+ virtual void bar(); // _ZN7ee731023barEv
+ ~ee73102(); // tgen
+ ee73102(); // tgen
+};
+//SIG(1 ee73102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73102 ::foo(){vfunc_called(this, "_ZN7ee731023fooEv");}
+void ee73102 ::bar(){vfunc_called(this, "_ZN7ee731023barEv");}
+ee73102 ::~ee73102(){ note_dtor("ee73102", this);} // tgen
+ee73102 ::ee73102(){ note_ctor("ee73102", this);} // tgen
+
+static void Test_ee73102()
+{
+ extern Class_Descriptor cd_ee73102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73102, buf);
+ ee73102 *dp, &lv = *(dp=new (buf) ee73102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee73102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee73102");
+ check_base_class_offset(lv, (cc102*)(dd3102*), ABISELECT(32,16), "ee73102");
+ check_base_class_offset(lv, (dd3102*), ABISELECT(16,8), "ee73102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73102.e");
+ test_class_info(&lv, &cd_ee73102);
+ dp->~ee73102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73102(Test_ee73102, "ee73102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73102C1Ev();
+extern void _ZN7ee73102D1Ev();
+Name_Map name_map_ee73102[] = {
+ NSPAIR(_ZN7ee73102C1Ev),
+ NSPAIR(_ZN7ee73102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd3102;
+extern VTBL_ENTRY _ZTI6dd3102[];
+extern VTBL_ENTRY _ZTV6dd3102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3102[];
+static Base_Class bases_ee73102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3102, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73102[];
+extern void _ZN7ee731023fooEv();
+extern void _ZN7ee731023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee731023fooEv,_ZTv0_n20_N7ee731023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731023fooEv,_ZThn8_N7ee731023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731023fooEv,_ZTv0_n12_N7ee731023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee731023fooEv,_ZThn24_N7ee731023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731023barEv,_ZTv0_n16_N7ee731023barEv)();
+extern void ABISELECT(_ZThn48_N7ee731023barEv,_ZThn24_N7ee731023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73102[0]),
+ (VTBL_ENTRY)&_ZN7ee731023fooEv,
+ (VTBL_ENTRY)&_ZN7ee731023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee731023fooEv,_ZTv0_n20_N7ee731023fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73102[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731023fooEv,_ZTv0_n12_N7ee731023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731023barEv,_ZTv0_n16_N7ee731023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73102[];
+extern void _ZN6dd31023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3102__7ee73102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&_ZN6dd31023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd3102__7ee73102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3102__7ee73102[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee73102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee73102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee73102[] = {
+ {&(_ZTV7ee73102[5]), 5,22},
+ {&(_ZTV7ee73102[12]), 12,22},
+ {&(_ZTV7ee73102[16]), 16,22},
+ {&(_ZTV7ee73102[20]), 20,22},
+ {&(_tg__ZTV6dd3102__7ee73102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd3102__7ee73102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd3102__7ee73102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee73102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee73102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73102[];
+extern VTBL_ENTRY _ZTV7ee73102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73102[];
+static VTBL_ENTRY alt_thunk_names766[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31023fooEv,_ZTv0_n12_N6dd31023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd31023fooEv,_ZThn16_N6dd31023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731023barEv,_ZTv0_n16_N7ee731023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731023barEv,_ZThn24_N7ee731023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731023fooEv,_ZTv0_n12_N7ee731023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731023fooEv,_ZThn24_N7ee731023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee731023fooEv,_ZTv0_n20_N7ee731023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731023fooEv,_ZThn8_N7ee731023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73102 = { "ee73102", // class name
+ bases_ee73102, 4,
+ &(vtc_ee73102[0]), // expected_vtbl_contents
+ &(vtt_ee73102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73102),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names766,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4102 : cc102 {
+ int d;
+ virtual void bar(); // _ZN6dd41023barEv
+ ~dd4102(); // tgen
+ dd4102(); // tgen
+};
+//SIG(-1 dd4102) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void dd4102 ::bar(){vfunc_called(this, "_ZN6dd41023barEv");}
+dd4102 ::~dd4102(){ note_dtor("dd4102", this);} // tgen
+dd4102 ::dd4102(){ note_ctor("dd4102", this);} // tgen
+
+static void Test_dd4102()
+{
+ extern Class_Descriptor cd_dd4102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4102, buf);
+ dd4102 *dp, &lv = *(dp=new (buf) dd4102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd4102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(16,12), "dd4102");
+ check_base_class_offset(lv, (cc102*), 0, "dd4102");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4102.d");
+ test_class_info(&lv, &cd_dd4102);
+ dp->~dd4102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4102(Test_dd4102, "dd4102", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4102C1Ev();
+extern void _ZN6dd4102D1Ev();
+Name_Map name_map_dd4102[] = {
+ NSPAIR(_ZN6dd4102C1Ev),
+ NSPAIR(_ZN6dd4102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+static Base_Class bases_dd4102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4102[];
+extern void _ZN6dd41023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4102[];
+static VTBL_ENTRY _tg__ZTV5cc102__6dd4102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__6dd4102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd4102[] = {
+ {&(_ZTV6dd4102[3]), 3,10},
+ {&(_tg__ZTV5cc102__6dd4102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__6dd4102[4]), 4,6},
+ {&(_ZTV6dd4102[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static VTBL_ENTRY alt_thunk_names767[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4102 = { "dd4102", // class name
+ bases_dd4102, 3,
+ &(vtc_dd4102[0]), // expected_vtbl_contents
+ &(vtt_dd4102[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4102),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4102),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names767,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04102 : dd4102 {
+ int e;
+ ~ee04102(); // tgen
+ ee04102(); // tgen
+};
+//SIG(1 ee04102) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee04102 ::~ee04102(){ note_dtor("ee04102", this);} // tgen
+ee04102 ::ee04102(){ note_ctor("ee04102", this);} // tgen
+
+static void Test_ee04102()
+{
+ extern Class_Descriptor cd_ee04102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04102, buf);
+ ee04102 *dp, &lv = *(dp=new (buf) ee04102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee04102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd4102*), ABISELECT(24,16), "ee04102");
+ check_base_class_offset(lv, (cc102*)(dd4102*), 0, "ee04102");
+ check_base_class_offset(lv, (dd4102*), 0, "ee04102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04102.e");
+ test_class_info(&lv, &cd_ee04102);
+ dp->~ee04102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04102(Test_ee04102, "ee04102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04102C1Ev();
+extern void _ZN7ee04102D1Ev();
+Name_Map name_map_ee04102[] = {
+ NSPAIR(_ZN7ee04102C1Ev),
+ NSPAIR(_ZN7ee04102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd4102;
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static Base_Class bases_ee04102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04102[];
+extern void _ZN6dd41023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04102[];
+extern void _ZN6dd41023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4102__7ee04102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd4102__7ee04102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd4102__7ee04102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4102__7ee04102[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+static VTT_ENTRY vtt_ee04102[] = {
+ {&(_ZTV7ee04102[3]), 3,10},
+ {&(_tg__ZTV6dd4102__7ee04102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd4102__7ee04102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd4102__7ee04102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4102__7ee04102[4]), 4,6},
+ {&(_ZTV7ee04102[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04102[];
+extern VTBL_ENTRY _ZTV7ee04102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04102[];
+static VTBL_ENTRY alt_thunk_names768[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04102 = { "ee04102", // class name
+ bases_ee04102, 4,
+ &(vtc_ee04102[0]), // expected_vtbl_contents
+ &(vtt_ee04102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04102),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names768,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14102 : virtual dd4102 {
+ int e;
+ ~ee14102(); // tgen
+ ee14102(); // tgen
+};
+//SIG(1 ee14102) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee14102 ::~ee14102(){ note_dtor("ee14102", this);} // tgen
+ee14102 ::ee14102(){ note_ctor("ee14102", this);} // tgen
+
+static void Test_ee14102()
+{
+ extern Class_Descriptor cd_ee14102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14102, buf);
+ ee14102 *dp, &lv = *(dp=new (buf) ee14102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee14102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd4102*), ABISELECT(32,20), "ee14102");
+ check_base_class_offset(lv, (cc102*)(dd4102*), ABISELECT(16,8), "ee14102");
+ check_base_class_offset(lv, (dd4102*), ABISELECT(16,8), "ee14102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14102.e");
+ test_class_info(&lv, &cd_ee14102);
+ dp->~ee14102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14102(Test_ee14102, "ee14102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14102C1Ev();
+extern void _ZN7ee14102D1Ev();
+Name_Map name_map_ee14102[] = {
+ NSPAIR(_ZN7ee14102C1Ev),
+ NSPAIR(_ZN7ee14102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd4102;
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static Base_Class bases_ee14102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4102, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14102[];
+extern void _ZN6dd41023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14102[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14102[];
+extern void _ZN6dd41023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4102__7ee14102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd4102__7ee14102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd4102__7ee14102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4102__7ee14102[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+static VTT_ENTRY vtt_ee14102[] = {
+ {&(_ZTV7ee14102[4]), 4,15},
+ {&(_ZTV7ee14102[8]), 8,15},
+ {&(_ZTV7ee14102[13]), 13,15},
+ {&(_tg__ZTV6dd4102__7ee14102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd4102__7ee14102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd4102__7ee14102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4102__7ee14102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14102[];
+extern VTBL_ENTRY _ZTV7ee14102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14102[];
+static VTBL_ENTRY alt_thunk_names769[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14102 = { "ee14102", // class name
+ bases_ee14102, 4,
+ &(vtc_ee14102[0]), // expected_vtbl_contents
+ &(vtt_ee14102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names769,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24102 : dd4102 {
+ int e;
+ virtual void foo(); // _ZN7ee241023fooEv
+ ~ee24102(); // tgen
+ ee24102(); // tgen
+};
+//SIG(1 ee24102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24102 ::foo(){vfunc_called(this, "_ZN7ee241023fooEv");}
+ee24102 ::~ee24102(){ note_dtor("ee24102", this);} // tgen
+ee24102 ::ee24102(){ note_ctor("ee24102", this);} // tgen
+
+static void Test_ee24102()
+{
+ extern Class_Descriptor cd_ee24102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24102, buf);
+ ee24102 *dp, &lv = *(dp=new (buf) ee24102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee24102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd4102*), ABISELECT(24,16), "ee24102");
+ check_base_class_offset(lv, (cc102*)(dd4102*), 0, "ee24102");
+ check_base_class_offset(lv, (dd4102*), 0, "ee24102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24102.e");
+ test_class_info(&lv, &cd_ee24102);
+ dp->~ee24102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24102(Test_ee24102, "ee24102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24102C1Ev();
+extern void _ZN7ee24102D1Ev();
+Name_Map name_map_ee24102[] = {
+ NSPAIR(_ZN7ee24102C1Ev),
+ NSPAIR(_ZN7ee24102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd4102;
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static Base_Class bases_ee24102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24102[];
+extern void _ZN6dd41023barEv();
+extern void _ZN7ee241023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee241023fooEv,_ZTv0_n12_N7ee241023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee241023fooEv,_ZThn16_N7ee241023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+ (VTBL_ENTRY)&_ZN7ee241023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241023fooEv,_ZTv0_n12_N7ee241023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24102[];
+extern void _ZN6dd41023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4102__7ee24102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd4102__7ee24102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd4102__7ee24102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4102__7ee24102[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+static VTT_ENTRY vtt_ee24102[] = {
+ {&(_ZTV7ee24102[3]), 3,11},
+ {&(_tg__ZTV6dd4102__7ee24102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd4102__7ee24102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd4102__7ee24102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4102__7ee24102[4]), 4,6},
+ {&(_ZTV7ee24102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24102[];
+extern VTBL_ENTRY _ZTV7ee24102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24102[];
+static VTBL_ENTRY alt_thunk_names770[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241023fooEv,_ZTv0_n12_N7ee241023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee241023fooEv,_ZThn16_N7ee241023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24102 = { "ee24102", // class name
+ bases_ee24102, 4,
+ &(vtc_ee24102[0]), // expected_vtbl_contents
+ &(vtt_ee24102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names770,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34102 : virtual dd4102 {
+ int e;
+ virtual void foo(); // _ZN7ee341023fooEv
+ ~ee34102(); // tgen
+ ee34102(); // tgen
+};
+//SIG(1 ee34102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34102 ::foo(){vfunc_called(this, "_ZN7ee341023fooEv");}
+ee34102 ::~ee34102(){ note_dtor("ee34102", this);} // tgen
+ee34102 ::ee34102(){ note_ctor("ee34102", this);} // tgen
+
+static void Test_ee34102()
+{
+ extern Class_Descriptor cd_ee34102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34102, buf);
+ ee34102 *dp, &lv = *(dp=new (buf) ee34102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee34102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd4102*), ABISELECT(32,20), "ee34102");
+ check_base_class_offset(lv, (cc102*)(dd4102*), ABISELECT(16,8), "ee34102");
+ check_base_class_offset(lv, (dd4102*), ABISELECT(16,8), "ee34102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34102.e");
+ test_class_info(&lv, &cd_ee34102);
+ dp->~ee34102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34102(Test_ee34102, "ee34102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34102C1Ev();
+extern void _ZN7ee34102D1Ev();
+Name_Map name_map_ee34102[] = {
+ NSPAIR(_ZN7ee34102C1Ev),
+ NSPAIR(_ZN7ee34102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd4102;
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static Base_Class bases_ee34102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34102[];
+extern void _ZN7ee341023fooEv();
+extern void _ZN6dd41023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee341023fooEv,_ZTv0_n12_N7ee341023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee341023fooEv,_ZThn20_N7ee341023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34102[0]),
+ (VTBL_ENTRY)&_ZN7ee341023fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341023fooEv,_ZTv0_n12_N7ee341023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34102[];
+extern void _ZN6dd41023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4102__7ee34102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd4102__7ee34102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd4102__7ee34102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4102__7ee34102[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+static VTT_ENTRY vtt_ee34102[] = {
+ {&(_ZTV7ee34102[4]), 4,16},
+ {&(_ZTV7ee34102[9]), 9,16},
+ {&(_ZTV7ee34102[14]), 14,16},
+ {&(_tg__ZTV6dd4102__7ee34102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd4102__7ee34102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd4102__7ee34102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4102__7ee34102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34102[];
+extern VTBL_ENTRY _ZTV7ee34102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34102[];
+static VTBL_ENTRY alt_thunk_names771[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341023fooEv,_ZTv0_n12_N7ee341023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee341023fooEv,_ZThn20_N7ee341023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34102 = { "ee34102", // class name
+ bases_ee34102, 4,
+ &(vtc_ee34102[0]), // expected_vtbl_contents
+ &(vtt_ee34102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34102),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names771,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44102 : dd4102 {
+ int e;
+ virtual void bar(); // _ZN7ee441023barEv
+ ~ee44102(); // tgen
+ ee44102(); // tgen
+};
+//SIG(1 ee44102) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44102 ::bar(){vfunc_called(this, "_ZN7ee441023barEv");}
+ee44102 ::~ee44102(){ note_dtor("ee44102", this);} // tgen
+ee44102 ::ee44102(){ note_ctor("ee44102", this);} // tgen
+
+static void Test_ee44102()
+{
+ extern Class_Descriptor cd_ee44102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44102, buf);
+ ee44102 *dp, &lv = *(dp=new (buf) ee44102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee44102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd4102*), ABISELECT(24,16), "ee44102");
+ check_base_class_offset(lv, (cc102*)(dd4102*), 0, "ee44102");
+ check_base_class_offset(lv, (dd4102*), 0, "ee44102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44102.e");
+ test_class_info(&lv, &cd_ee44102);
+ dp->~ee44102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44102(Test_ee44102, "ee44102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44102C1Ev();
+extern void _ZN7ee44102D1Ev();
+Name_Map name_map_ee44102[] = {
+ NSPAIR(_ZN7ee44102C1Ev),
+ NSPAIR(_ZN7ee44102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd4102;
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static Base_Class bases_ee44102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44102[];
+extern void _ZN7ee441023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee441023barEv,_ZTv0_n16_N7ee441023barEv)();
+extern void ABISELECT(_ZThn24_N7ee441023barEv,_ZThn16_N7ee441023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44102[0]),
+ (VTBL_ENTRY)&_ZN7ee441023barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee441023barEv,_ZTv0_n16_N7ee441023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44102[];
+extern void _ZN6dd41023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4102__7ee44102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd4102__7ee44102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd4102__7ee44102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4102__7ee44102[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+static VTT_ENTRY vtt_ee44102[] = {
+ {&(_ZTV7ee44102[3]), 3,10},
+ {&(_tg__ZTV6dd4102__7ee44102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd4102__7ee44102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd4102__7ee44102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4102__7ee44102[4]), 4,6},
+ {&(_ZTV7ee44102[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44102[];
+extern VTBL_ENTRY _ZTV7ee44102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44102[];
+static VTBL_ENTRY alt_thunk_names772[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee441023barEv,_ZTv0_n16_N7ee441023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee441023barEv,_ZThn16_N7ee441023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44102 = { "ee44102", // class name
+ bases_ee44102, 4,
+ &(vtc_ee44102[0]), // expected_vtbl_contents
+ &(vtt_ee44102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44102),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names772,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54102 : virtual dd4102 {
+ int e;
+ virtual void bar(); // _ZN7ee541023barEv
+ ~ee54102(); // tgen
+ ee54102(); // tgen
+};
+//SIG(1 ee54102) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54102 ::bar(){vfunc_called(this, "_ZN7ee541023barEv");}
+ee54102 ::~ee54102(){ note_dtor("ee54102", this);} // tgen
+ee54102 ::ee54102(){ note_ctor("ee54102", this);} // tgen
+
+static void Test_ee54102()
+{
+ extern Class_Descriptor cd_ee54102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54102, buf);
+ ee54102 *dp, &lv = *(dp=new (buf) ee54102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee54102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd4102*), ABISELECT(32,20), "ee54102");
+ check_base_class_offset(lv, (cc102*)(dd4102*), ABISELECT(16,8), "ee54102");
+ check_base_class_offset(lv, (dd4102*), ABISELECT(16,8), "ee54102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54102.e");
+ test_class_info(&lv, &cd_ee54102);
+ dp->~ee54102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54102(Test_ee54102, "ee54102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54102C1Ev();
+extern void _ZN7ee54102D1Ev();
+Name_Map name_map_ee54102[] = {
+ NSPAIR(_ZN7ee54102C1Ev),
+ NSPAIR(_ZN7ee54102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd4102;
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static Base_Class bases_ee54102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54102[];
+extern void _ZN7ee541023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541023barEv,_ZTv0_n16_N7ee541023barEv)();
+extern void ABISELECT(_ZThn16_N7ee541023barEv,_ZThn8_N7ee541023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541023barEv,_ZTv0_n16_N7ee541023barEv)();
+extern void ABISELECT(_ZThn32_N7ee541023barEv,_ZThn20_N7ee541023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54102[0]),
+ (VTBL_ENTRY)&_ZN7ee541023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541023barEv,_ZTv0_n16_N7ee541023barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541023barEv,_ZTv0_n16_N7ee541023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54102[];
+extern void _ZN6dd41023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4102__7ee54102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd4102__7ee54102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd4102__7ee54102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4102__7ee54102[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+static VTT_ENTRY vtt_ee54102[] = {
+ {&(_ZTV7ee54102[4]), 4,16},
+ {&(_ZTV7ee54102[9]), 9,16},
+ {&(_ZTV7ee54102[14]), 14,16},
+ {&(_tg__ZTV6dd4102__7ee54102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd4102__7ee54102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd4102__7ee54102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4102__7ee54102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54102[];
+extern VTBL_ENTRY _ZTV7ee54102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54102[];
+static VTBL_ENTRY alt_thunk_names773[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541023barEv,_ZTv0_n16_N7ee541023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee541023barEv,_ZThn20_N7ee541023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541023barEv,_ZThn8_N7ee541023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54102 = { "ee54102", // class name
+ bases_ee54102, 4,
+ &(vtc_ee54102[0]), // expected_vtbl_contents
+ &(vtt_ee54102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54102),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names773,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64102 : dd4102 {
+ int e;
+ virtual void foo(); // _ZN7ee641023fooEv
+ virtual void bar(); // _ZN7ee641023barEv
+ ~ee64102(); // tgen
+ ee64102(); // tgen
+};
+//SIG(1 ee64102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64102 ::foo(){vfunc_called(this, "_ZN7ee641023fooEv");}
+void ee64102 ::bar(){vfunc_called(this, "_ZN7ee641023barEv");}
+ee64102 ::~ee64102(){ note_dtor("ee64102", this);} // tgen
+ee64102 ::ee64102(){ note_ctor("ee64102", this);} // tgen
+
+static void Test_ee64102()
+{
+ extern Class_Descriptor cd_ee64102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64102, buf);
+ ee64102 *dp, &lv = *(dp=new (buf) ee64102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee64102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd4102*), ABISELECT(24,16), "ee64102");
+ check_base_class_offset(lv, (cc102*)(dd4102*), 0, "ee64102");
+ check_base_class_offset(lv, (dd4102*), 0, "ee64102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64102.e");
+ test_class_info(&lv, &cd_ee64102);
+ dp->~ee64102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64102(Test_ee64102, "ee64102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64102C1Ev();
+extern void _ZN7ee64102D1Ev();
+Name_Map name_map_ee64102[] = {
+ NSPAIR(_ZN7ee64102C1Ev),
+ NSPAIR(_ZN7ee64102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd4102;
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static Base_Class bases_ee64102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64102[];
+extern void _ZN7ee641023barEv();
+extern void _ZN7ee641023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee641023fooEv,_ZTv0_n12_N7ee641023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee641023fooEv,_ZThn16_N7ee641023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee641023barEv,_ZTv0_n16_N7ee641023barEv)();
+extern void ABISELECT(_ZThn24_N7ee641023barEv,_ZThn16_N7ee641023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64102[0]),
+ (VTBL_ENTRY)&_ZN7ee641023barEv,
+ (VTBL_ENTRY)&_ZN7ee641023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641023fooEv,_ZTv0_n12_N7ee641023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641023barEv,_ZTv0_n16_N7ee641023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64102[];
+extern void _ZN6dd41023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4102__7ee64102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd4102__7ee64102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd4102__7ee64102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4102__7ee64102[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+static VTT_ENTRY vtt_ee64102[] = {
+ {&(_ZTV7ee64102[3]), 3,11},
+ {&(_tg__ZTV6dd4102__7ee64102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd4102__7ee64102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd4102__7ee64102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4102__7ee64102[4]), 4,6},
+ {&(_ZTV7ee64102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64102[];
+extern VTBL_ENTRY _ZTV7ee64102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64102[];
+static VTBL_ENTRY alt_thunk_names774[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41023barEv,_ZThn16_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641023barEv,_ZTv0_n16_N7ee641023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641023barEv,_ZThn16_N7ee641023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641023fooEv,_ZTv0_n12_N7ee641023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641023fooEv,_ZThn16_N7ee641023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64102 = { "ee64102", // class name
+ bases_ee64102, 4,
+ &(vtc_ee64102[0]), // expected_vtbl_contents
+ &(vtt_ee64102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names774,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74102 : virtual dd4102 {
+ int e;
+ virtual void foo(); // _ZN7ee741023fooEv
+ virtual void bar(); // _ZN7ee741023barEv
+ ~ee74102(); // tgen
+ ee74102(); // tgen
+};
+//SIG(1 ee74102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74102 ::foo(){vfunc_called(this, "_ZN7ee741023fooEv");}
+void ee74102 ::bar(){vfunc_called(this, "_ZN7ee741023barEv");}
+ee74102 ::~ee74102(){ note_dtor("ee74102", this);} // tgen
+ee74102 ::ee74102(){ note_ctor("ee74102", this);} // tgen
+
+static void Test_ee74102()
+{
+ extern Class_Descriptor cd_ee74102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74102, buf);
+ ee74102 *dp, &lv = *(dp=new (buf) ee74102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee74102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd4102*), ABISELECT(32,20), "ee74102");
+ check_base_class_offset(lv, (cc102*)(dd4102*), ABISELECT(16,8), "ee74102");
+ check_base_class_offset(lv, (dd4102*), ABISELECT(16,8), "ee74102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74102.e");
+ test_class_info(&lv, &cd_ee74102);
+ dp->~ee74102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74102(Test_ee74102, "ee74102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74102C1Ev();
+extern void _ZN7ee74102D1Ev();
+Name_Map name_map_ee74102[] = {
+ NSPAIR(_ZN7ee74102C1Ev),
+ NSPAIR(_ZN7ee74102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd4102;
+extern VTBL_ENTRY _ZTI6dd4102[];
+extern VTBL_ENTRY _ZTV6dd4102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4102[];
+static Base_Class bases_ee74102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74102[];
+extern void _ZN7ee741023fooEv();
+extern void _ZN7ee741023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee741023barEv,_ZTv0_n16_N7ee741023barEv)();
+extern void ABISELECT(_ZThn16_N7ee741023barEv,_ZThn8_N7ee741023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741023fooEv,_ZTv0_n12_N7ee741023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee741023fooEv,_ZThn20_N7ee741023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741023barEv,_ZTv0_n16_N7ee741023barEv)();
+extern void ABISELECT(_ZThn32_N7ee741023barEv,_ZThn20_N7ee741023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74102[0]),
+ (VTBL_ENTRY)&_ZN7ee741023fooEv,
+ (VTBL_ENTRY)&_ZN7ee741023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741023barEv,_ZTv0_n16_N7ee741023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741023fooEv,_ZTv0_n12_N7ee741023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741023barEv,_ZTv0_n16_N7ee741023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74102[];
+extern void _ZN6dd41023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4102__7ee74102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN6dd41023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd4102__7ee74102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd4102__7ee74102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv)();
+extern void ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4102__7ee74102[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv),
+};
+static VTT_ENTRY vtt_ee74102[] = {
+ {&(_ZTV7ee74102[4]), 4,17},
+ {&(_ZTV7ee74102[10]), 10,17},
+ {&(_ZTV7ee74102[15]), 15,17},
+ {&(_tg__ZTV6dd4102__7ee74102[3]), 3,4},
+ {&(_tg__ZTV5cc1026dd4102__7ee74102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd4102__7ee74102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4102__7ee74102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74102[];
+extern VTBL_ENTRY _ZTV7ee74102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74102[];
+static VTBL_ENTRY alt_thunk_names775[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41023barEv,_ZTv0_n16_N6dd41023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41023barEv,_ZThn12_N6dd41023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741023fooEv,_ZTv0_n12_N7ee741023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741023fooEv,_ZThn20_N7ee741023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741023barEv,_ZTv0_n16_N7ee741023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741023barEv,_ZThn20_N7ee741023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741023barEv,_ZThn8_N7ee741023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74102 = { "ee74102", // class name
+ bases_ee74102, 4,
+ &(vtc_ee74102[0]), // expected_vtbl_contents
+ &(vtt_ee74102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74102),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names775,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5102 : virtual cc102 {
+ int d;
+ virtual void bar(); // _ZN6dd51023barEv
+ ~dd5102(); // tgen
+ dd5102(); // tgen
+};
+//SIG(-1 dd5102) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} Fi} v1 Fi}
+
+
+void dd5102 ::bar(){vfunc_called(this, "_ZN6dd51023barEv");}
+dd5102 ::~dd5102(){ note_dtor("dd5102", this);} // tgen
+dd5102 ::dd5102(){ note_ctor("dd5102", this);} // tgen
+
+static void Test_dd5102()
+{
+ extern Class_Descriptor cd_dd5102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5102, buf);
+ dd5102 *dp, &lv = *(dp=new (buf) dd5102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd5102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,16), "dd5102");
+ check_base_class_offset(lv, (cc102*), ABISELECT(16,8), "dd5102");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5102.d");
+ test_class_info(&lv, &cd_dd5102);
+ dp->~dd5102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5102(Test_dd5102, "dd5102", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5102C1Ev();
+extern void _ZN6dd5102D1Ev();
+Name_Map name_map_dd5102[] = {
+ NSPAIR(_ZN6dd5102C1Ev),
+ NSPAIR(_ZN6dd5102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+static Base_Class bases_dd5102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern void _ZN6dd51023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5102[];
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__6dd5102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd5102[] = {
+ {&(_ZTV6dd5102[4]), 4,14},
+ {&(_ZTV6dd5102[8]), 8,14},
+ {&(_ZTV6dd5102[12]), 12,14},
+ {&(_tg__ZTV5cc102__6dd5102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__6dd5102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static VTBL_ENTRY alt_thunk_names776[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5102 = { "dd5102", // class name
+ bases_dd5102, 3,
+ &(vtc_dd5102[0]), // expected_vtbl_contents
+ &(vtt_dd5102[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5102),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names776,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05102 : dd5102 {
+ int e;
+ ~ee05102(); // tgen
+ ee05102(); // tgen
+};
+//SIG(1 ee05102) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee05102 ::~ee05102(){ note_dtor("ee05102", this);} // tgen
+ee05102 ::ee05102(){ note_ctor("ee05102", this);} // tgen
+
+static void Test_ee05102()
+{
+ extern Class_Descriptor cd_ee05102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05102, buf);
+ ee05102 *dp, &lv = *(dp=new (buf) ee05102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee05102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee05102");
+ check_base_class_offset(lv, (cc102*)(dd5102*), ABISELECT(16,12), "ee05102");
+ check_base_class_offset(lv, (dd5102*), 0, "ee05102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05102.e");
+ test_class_info(&lv, &cd_ee05102);
+ dp->~ee05102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05102(Test_ee05102, "ee05102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05102C1Ev();
+extern void _ZN7ee05102D1Ev();
+Name_Map name_map_ee05102[] = {
+ NSPAIR(_ZN7ee05102C1Ev),
+ NSPAIR(_ZN7ee05102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd5102;
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static Base_Class bases_ee05102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05102[];
+extern void _ZN6dd51023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05102[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05102[];
+extern void _ZN6dd51023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5102__7ee05102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102__7ee05102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5102__7ee05102[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee05102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee05102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee05102[] = {
+ {&(_ZTV7ee05102[4]), 4,14},
+ {&(_tg__ZTV6dd5102__7ee05102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd5102__7ee05102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd5102__7ee05102[4]), 4,6},
+ {&(_ZTV7ee05102[8]), 8,14},
+ {&(_ZTV7ee05102[12]), 12,14},
+ {&(_tg__ZTV5cc102__7ee05102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee05102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05102[];
+extern VTBL_ENTRY _ZTV7ee05102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05102[];
+static VTBL_ENTRY alt_thunk_names777[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05102 = { "ee05102", // class name
+ bases_ee05102, 4,
+ &(vtc_ee05102[0]), // expected_vtbl_contents
+ &(vtt_ee05102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names777,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15102 : virtual dd5102 {
+ int e;
+ ~ee15102(); // tgen
+ ee15102(); // tgen
+};
+//SIG(1 ee15102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} Fi}
+
+
+ee15102 ::~ee15102(){ note_dtor("ee15102", this);} // tgen
+ee15102 ::ee15102(){ note_ctor("ee15102", this);} // tgen
+
+static void Test_ee15102()
+{
+ extern Class_Descriptor cd_ee15102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15102, buf);
+ ee15102 *dp, &lv = *(dp=new (buf) ee15102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee15102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee15102");
+ check_base_class_offset(lv, (cc102*)(dd5102*), ABISELECT(32,16), "ee15102");
+ check_base_class_offset(lv, (dd5102*), ABISELECT(16,8), "ee15102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15102.e");
+ test_class_info(&lv, &cd_ee15102);
+ dp->~ee15102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15102(Test_ee15102, "ee15102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15102C1Ev();
+extern void _ZN7ee15102D1Ev();
+Name_Map name_map_ee15102[] = {
+ NSPAIR(_ZN7ee15102C1Ev),
+ NSPAIR(_ZN7ee15102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd5102;
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static Base_Class bases_ee15102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15102[];
+extern void _ZN6dd51023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15102[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15102[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15102[];
+extern void _ZN6dd51023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5102__7ee15102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102__7ee15102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5102__7ee15102[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee15102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee15102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee15102[] = {
+ {&(_ZTV7ee15102[5]), 5,20},
+ {&(_ZTV7ee15102[10]), 10,20},
+ {&(_ZTV7ee15102[14]), 14,20},
+ {&(_ZTV7ee15102[18]), 18,20},
+ {&(_tg__ZTV6dd5102__7ee15102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd5102__7ee15102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd5102__7ee15102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee15102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee15102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15102[];
+extern VTBL_ENTRY _ZTV7ee15102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15102[];
+static VTBL_ENTRY alt_thunk_names778[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15102 = { "ee15102", // class name
+ bases_ee15102, 4,
+ &(vtc_ee15102[0]), // expected_vtbl_contents
+ &(vtt_ee15102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15102),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names778,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25102 : dd5102 {
+ int e;
+ virtual void foo(); // _ZN7ee251023fooEv
+ ~ee25102(); // tgen
+ ee25102(); // tgen
+};
+//SIG(1 ee25102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25102 ::foo(){vfunc_called(this, "_ZN7ee251023fooEv");}
+ee25102 ::~ee25102(){ note_dtor("ee25102", this);} // tgen
+ee25102 ::ee25102(){ note_ctor("ee25102", this);} // tgen
+
+static void Test_ee25102()
+{
+ extern Class_Descriptor cd_ee25102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25102, buf);
+ ee25102 *dp, &lv = *(dp=new (buf) ee25102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee25102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee25102");
+ check_base_class_offset(lv, (cc102*)(dd5102*), ABISELECT(16,12), "ee25102");
+ check_base_class_offset(lv, (dd5102*), 0, "ee25102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25102.e");
+ test_class_info(&lv, &cd_ee25102);
+ dp->~ee25102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25102(Test_ee25102, "ee25102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25102C1Ev();
+extern void _ZN7ee25102D1Ev();
+Name_Map name_map_ee25102[] = {
+ NSPAIR(_ZN7ee25102C1Ev),
+ NSPAIR(_ZN7ee25102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd5102;
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static Base_Class bases_ee25102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25102[];
+extern void _ZN6dd51023barEv();
+extern void _ZN7ee251023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee251023fooEv,_ZTv0_n12_N7ee251023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee251023fooEv,_ZThn20_N7ee251023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+ (VTBL_ENTRY)&_ZN7ee251023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251023fooEv,_ZTv0_n12_N7ee251023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25102[];
+extern void _ZN6dd51023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5102__7ee25102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102__7ee25102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5102__7ee25102[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee25102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee25102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee25102[] = {
+ {&(_ZTV7ee25102[4]), 4,15},
+ {&(_tg__ZTV6dd5102__7ee25102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd5102__7ee25102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd5102__7ee25102[4]), 4,6},
+ {&(_ZTV7ee25102[9]), 9,15},
+ {&(_ZTV7ee25102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee25102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee25102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25102[];
+extern VTBL_ENTRY _ZTV7ee25102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25102[];
+static VTBL_ENTRY alt_thunk_names779[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251023fooEv,_ZTv0_n12_N7ee251023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee251023fooEv,_ZThn20_N7ee251023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25102 = { "ee25102", // class name
+ bases_ee25102, 4,
+ &(vtc_ee25102[0]), // expected_vtbl_contents
+ &(vtt_ee25102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names779,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35102 : virtual dd5102 {
+ int e;
+ virtual void foo(); // _ZN7ee351023fooEv
+ ~ee35102(); // tgen
+ ee35102(); // tgen
+};
+//SIG(1 ee35102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35102 ::foo(){vfunc_called(this, "_ZN7ee351023fooEv");}
+ee35102 ::~ee35102(){ note_dtor("ee35102", this);} // tgen
+ee35102 ::ee35102(){ note_ctor("ee35102", this);} // tgen
+
+static void Test_ee35102()
+{
+ extern Class_Descriptor cd_ee35102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35102, buf);
+ ee35102 *dp, &lv = *(dp=new (buf) ee35102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee35102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee35102");
+ check_base_class_offset(lv, (cc102*)(dd5102*), ABISELECT(32,16), "ee35102");
+ check_base_class_offset(lv, (dd5102*), ABISELECT(16,8), "ee35102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35102.e");
+ test_class_info(&lv, &cd_ee35102);
+ dp->~ee35102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35102(Test_ee35102, "ee35102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35102C1Ev();
+extern void _ZN7ee35102D1Ev();
+Name_Map name_map_ee35102[] = {
+ NSPAIR(_ZN7ee35102C1Ev),
+ NSPAIR(_ZN7ee35102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd5102;
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static Base_Class bases_ee35102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35102[];
+extern void _ZN7ee351023fooEv();
+extern void _ZN6dd51023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee351023fooEv,_ZTv0_n12_N7ee351023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee351023fooEv,_ZThn24_N7ee351023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35102[0]),
+ (VTBL_ENTRY)&_ZN7ee351023fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35102[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351023fooEv,_ZTv0_n12_N7ee351023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35102[];
+extern void _ZN6dd51023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5102__7ee35102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102__7ee35102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5102__7ee35102[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee35102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee35102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee35102[] = {
+ {&(_ZTV7ee35102[5]), 5,21},
+ {&(_ZTV7ee35102[11]), 11,21},
+ {&(_ZTV7ee35102[15]), 15,21},
+ {&(_ZTV7ee35102[19]), 19,21},
+ {&(_tg__ZTV6dd5102__7ee35102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd5102__7ee35102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd5102__7ee35102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee35102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee35102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35102[];
+extern VTBL_ENTRY _ZTV7ee35102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35102[];
+static VTBL_ENTRY alt_thunk_names780[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351023fooEv,_ZTv0_n12_N7ee351023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee351023fooEv,_ZThn24_N7ee351023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35102 = { "ee35102", // class name
+ bases_ee35102, 4,
+ &(vtc_ee35102[0]), // expected_vtbl_contents
+ &(vtt_ee35102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35102),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names780,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45102 : dd5102 {
+ int e;
+ virtual void bar(); // _ZN7ee451023barEv
+ ~ee45102(); // tgen
+ ee45102(); // tgen
+};
+//SIG(1 ee45102) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45102 ::bar(){vfunc_called(this, "_ZN7ee451023barEv");}
+ee45102 ::~ee45102(){ note_dtor("ee45102", this);} // tgen
+ee45102 ::ee45102(){ note_ctor("ee45102", this);} // tgen
+
+static void Test_ee45102()
+{
+ extern Class_Descriptor cd_ee45102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45102, buf);
+ ee45102 *dp, &lv = *(dp=new (buf) ee45102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee45102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee45102");
+ check_base_class_offset(lv, (cc102*)(dd5102*), ABISELECT(16,12), "ee45102");
+ check_base_class_offset(lv, (dd5102*), 0, "ee45102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45102.e");
+ test_class_info(&lv, &cd_ee45102);
+ dp->~ee45102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45102(Test_ee45102, "ee45102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45102C1Ev();
+extern void _ZN7ee45102D1Ev();
+Name_Map name_map_ee45102[] = {
+ NSPAIR(_ZN7ee45102C1Ev),
+ NSPAIR(_ZN7ee45102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd5102;
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static Base_Class bases_ee45102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45102[];
+extern void _ZN7ee451023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee451023barEv,_ZTv0_n16_N7ee451023barEv)();
+extern void ABISELECT(_ZThn32_N7ee451023barEv,_ZThn20_N7ee451023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45102[0]),
+ (VTBL_ENTRY)&_ZN7ee451023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45102[0]),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee451023barEv,_ZTv0_n16_N7ee451023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45102[];
+extern void _ZN6dd51023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5102__7ee45102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102__7ee45102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5102__7ee45102[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee45102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee45102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee45102[] = {
+ {&(_ZTV7ee45102[4]), 4,14},
+ {&(_tg__ZTV6dd5102__7ee45102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd5102__7ee45102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd5102__7ee45102[4]), 4,6},
+ {&(_ZTV7ee45102[8]), 8,14},
+ {&(_ZTV7ee45102[12]), 12,14},
+ {&(_tg__ZTV5cc102__7ee45102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee45102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45102[];
+extern VTBL_ENTRY _ZTV7ee45102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45102[];
+static VTBL_ENTRY alt_thunk_names781[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee451023barEv,_ZTv0_n16_N7ee451023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee451023barEv,_ZThn20_N7ee451023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45102 = { "ee45102", // class name
+ bases_ee45102, 4,
+ &(vtc_ee45102[0]), // expected_vtbl_contents
+ &(vtt_ee45102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45102),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names781,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55102 : virtual dd5102 {
+ int e;
+ virtual void bar(); // _ZN7ee551023barEv
+ ~ee55102(); // tgen
+ ee55102(); // tgen
+};
+//SIG(1 ee55102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55102 ::bar(){vfunc_called(this, "_ZN7ee551023barEv");}
+ee55102 ::~ee55102(){ note_dtor("ee55102", this);} // tgen
+ee55102 ::ee55102(){ note_ctor("ee55102", this);} // tgen
+
+static void Test_ee55102()
+{
+ extern Class_Descriptor cd_ee55102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55102, buf);
+ ee55102 *dp, &lv = *(dp=new (buf) ee55102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee55102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee55102");
+ check_base_class_offset(lv, (cc102*)(dd5102*), ABISELECT(32,16), "ee55102");
+ check_base_class_offset(lv, (dd5102*), ABISELECT(16,8), "ee55102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55102.e");
+ test_class_info(&lv, &cd_ee55102);
+ dp->~ee55102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55102(Test_ee55102, "ee55102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55102C1Ev();
+extern void _ZN7ee55102D1Ev();
+Name_Map name_map_ee55102[] = {
+ NSPAIR(_ZN7ee55102C1Ev),
+ NSPAIR(_ZN7ee55102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd5102;
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static Base_Class bases_ee55102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55102[];
+extern void _ZN7ee551023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee551023barEv,_ZTv0_n20_N7ee551023barEv)();
+extern void ABISELECT(_ZThn16_N7ee551023barEv,_ZThn8_N7ee551023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee551023barEv,_ZTv0_n16_N7ee551023barEv)();
+extern void ABISELECT(_ZThn48_N7ee551023barEv,_ZThn24_N7ee551023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55102[0]),
+ (VTBL_ENTRY)&_ZN7ee551023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee551023barEv,_ZTv0_n20_N7ee551023barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55102[0]),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee551023barEv,_ZTv0_n16_N7ee551023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55102[];
+extern void _ZN6dd51023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5102__7ee55102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102__7ee55102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5102__7ee55102[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee55102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee55102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee55102[] = {
+ {&(_ZTV7ee55102[5]), 5,21},
+ {&(_ZTV7ee55102[11]), 11,21},
+ {&(_ZTV7ee55102[15]), 15,21},
+ {&(_ZTV7ee55102[19]), 19,21},
+ {&(_tg__ZTV6dd5102__7ee55102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd5102__7ee55102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd5102__7ee55102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee55102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee55102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55102[];
+extern VTBL_ENTRY _ZTV7ee55102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55102[];
+static VTBL_ENTRY alt_thunk_names782[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee551023barEv,_ZTv0_n16_N7ee551023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee551023barEv,_ZThn24_N7ee551023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee551023barEv,_ZTv0_n20_N7ee551023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551023barEv,_ZThn8_N7ee551023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55102 = { "ee55102", // class name
+ bases_ee55102, 4,
+ &(vtc_ee55102[0]), // expected_vtbl_contents
+ &(vtt_ee55102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55102),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names782,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65102 : dd5102 {
+ int e;
+ virtual void foo(); // _ZN7ee651023fooEv
+ virtual void bar(); // _ZN7ee651023barEv
+ ~ee65102(); // tgen
+ ee65102(); // tgen
+};
+//SIG(1 ee65102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65102 ::foo(){vfunc_called(this, "_ZN7ee651023fooEv");}
+void ee65102 ::bar(){vfunc_called(this, "_ZN7ee651023barEv");}
+ee65102 ::~ee65102(){ note_dtor("ee65102", this);} // tgen
+ee65102 ::ee65102(){ note_ctor("ee65102", this);} // tgen
+
+static void Test_ee65102()
+{
+ extern Class_Descriptor cd_ee65102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65102, buf);
+ ee65102 *dp, &lv = *(dp=new (buf) ee65102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee65102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee65102");
+ check_base_class_offset(lv, (cc102*)(dd5102*), ABISELECT(16,12), "ee65102");
+ check_base_class_offset(lv, (dd5102*), 0, "ee65102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65102.e");
+ test_class_info(&lv, &cd_ee65102);
+ dp->~ee65102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65102(Test_ee65102, "ee65102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65102C1Ev();
+extern void _ZN7ee65102D1Ev();
+Name_Map name_map_ee65102[] = {
+ NSPAIR(_ZN7ee65102C1Ev),
+ NSPAIR(_ZN7ee65102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd5102;
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static Base_Class bases_ee65102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65102[];
+extern void _ZN7ee651023barEv();
+extern void _ZN7ee651023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee651023fooEv,_ZTv0_n12_N7ee651023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee651023fooEv,_ZThn20_N7ee651023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee651023barEv,_ZTv0_n16_N7ee651023barEv)();
+extern void ABISELECT(_ZThn32_N7ee651023barEv,_ZThn20_N7ee651023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65102[0]),
+ (VTBL_ENTRY)&_ZN7ee651023barEv,
+ (VTBL_ENTRY)&_ZN7ee651023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651023fooEv,_ZTv0_n12_N7ee651023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651023barEv,_ZTv0_n16_N7ee651023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65102[];
+extern void _ZN6dd51023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5102__7ee65102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102__7ee65102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5102__7ee65102[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee65102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee65102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee65102[] = {
+ {&(_ZTV7ee65102[4]), 4,15},
+ {&(_tg__ZTV6dd5102__7ee65102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd5102__7ee65102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd5102__7ee65102[4]), 4,6},
+ {&(_ZTV7ee65102[9]), 9,15},
+ {&(_ZTV7ee65102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee65102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee65102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65102[];
+extern VTBL_ENTRY _ZTV7ee65102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65102[];
+static VTBL_ENTRY alt_thunk_names783[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn20_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651023barEv,_ZTv0_n16_N7ee651023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651023barEv,_ZThn20_N7ee651023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651023fooEv,_ZTv0_n12_N7ee651023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651023fooEv,_ZThn20_N7ee651023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65102 = { "ee65102", // class name
+ bases_ee65102, 4,
+ &(vtc_ee65102[0]), // expected_vtbl_contents
+ &(vtt_ee65102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names783,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75102 : virtual dd5102 {
+ int e;
+ virtual void foo(); // _ZN7ee751023fooEv
+ virtual void bar(); // _ZN7ee751023barEv
+ ~ee75102(); // tgen
+ ee75102(); // tgen
+};
+//SIG(1 ee75102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75102 ::foo(){vfunc_called(this, "_ZN7ee751023fooEv");}
+void ee75102 ::bar(){vfunc_called(this, "_ZN7ee751023barEv");}
+ee75102 ::~ee75102(){ note_dtor("ee75102", this);} // tgen
+ee75102 ::ee75102(){ note_ctor("ee75102", this);} // tgen
+
+static void Test_ee75102()
+{
+ extern Class_Descriptor cd_ee75102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75102, buf);
+ ee75102 *dp, &lv = *(dp=new (buf) ee75102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee75102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee75102");
+ check_base_class_offset(lv, (cc102*)(dd5102*), ABISELECT(32,16), "ee75102");
+ check_base_class_offset(lv, (dd5102*), ABISELECT(16,8), "ee75102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75102.e");
+ test_class_info(&lv, &cd_ee75102);
+ dp->~ee75102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75102(Test_ee75102, "ee75102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75102C1Ev();
+extern void _ZN7ee75102D1Ev();
+Name_Map name_map_ee75102[] = {
+ NSPAIR(_ZN7ee75102C1Ev),
+ NSPAIR(_ZN7ee75102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd5102;
+extern VTBL_ENTRY _ZTI6dd5102[];
+extern VTBL_ENTRY _ZTV6dd5102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5102[];
+static Base_Class bases_ee75102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5102, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75102[];
+extern void _ZN7ee751023fooEv();
+extern void _ZN7ee751023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee751023barEv,_ZTv0_n20_N7ee751023barEv)();
+extern void ABISELECT(_ZThn16_N7ee751023barEv,_ZThn8_N7ee751023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751023fooEv,_ZTv0_n12_N7ee751023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee751023fooEv,_ZThn24_N7ee751023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751023barEv,_ZTv0_n16_N7ee751023barEv)();
+extern void ABISELECT(_ZThn48_N7ee751023barEv,_ZThn24_N7ee751023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75102[0]),
+ (VTBL_ENTRY)&_ZN7ee751023fooEv,
+ (VTBL_ENTRY)&_ZN7ee751023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee751023barEv,_ZTv0_n20_N7ee751023barEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75102[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751023fooEv,_ZTv0_n12_N7ee751023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751023barEv,_ZTv0_n16_N7ee751023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75102[];
+extern void _ZN6dd51023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5102__7ee75102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN6dd51023barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd5102__7ee75102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv)();
+extern void ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5102__7ee75102[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee75102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee75102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee75102[] = {
+ {&(_ZTV7ee75102[5]), 5,22},
+ {&(_ZTV7ee75102[12]), 12,22},
+ {&(_ZTV7ee75102[16]), 16,22},
+ {&(_ZTV7ee75102[20]), 20,22},
+ {&(_tg__ZTV6dd5102__7ee75102[4]), 4,5},
+ {&(_tg__ZTV5cc102__6dd5102__7ee75102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd5102__7ee75102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee75102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee75102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75102[];
+extern VTBL_ENTRY _ZTV7ee75102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75102[];
+static VTBL_ENTRY alt_thunk_names784[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51023barEv,_ZTv0_n16_N6dd51023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51023barEv,_ZThn16_N6dd51023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751023barEv,_ZTv0_n16_N7ee751023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751023barEv,_ZThn24_N7ee751023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751023fooEv,_ZTv0_n12_N7ee751023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751023fooEv,_ZThn24_N7ee751023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee751023barEv,_ZTv0_n20_N7ee751023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751023barEv,_ZThn8_N7ee751023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75102 = { "ee75102", // class name
+ bases_ee75102, 4,
+ &(vtc_ee75102[0]), // expected_vtbl_contents
+ &(vtt_ee75102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75102),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names784,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6102 : cc102 {
+ int d;
+ virtual void bar(); // _ZN6dd61023barEv
+ virtual void foo(); // _ZN6dd61023fooEv
+ ~dd6102(); // tgen
+ dd6102(); // tgen
+};
+//SIG(-1 dd6102) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd6102 ::bar(){vfunc_called(this, "_ZN6dd61023barEv");}
+void dd6102 ::foo(){vfunc_called(this, "_ZN6dd61023fooEv");}
+dd6102 ::~dd6102(){ note_dtor("dd6102", this);} // tgen
+dd6102 ::dd6102(){ note_ctor("dd6102", this);} // tgen
+
+static void Test_dd6102()
+{
+ extern Class_Descriptor cd_dd6102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6102, buf);
+ dd6102 *dp, &lv = *(dp=new (buf) dd6102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd6102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(16,12), "dd6102");
+ check_base_class_offset(lv, (cc102*), 0, "dd6102");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6102.d");
+ test_class_info(&lv, &cd_dd6102);
+ dp->~dd6102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6102(Test_dd6102, "dd6102", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6102C1Ev();
+extern void _ZN6dd6102D1Ev();
+Name_Map name_map_dd6102[] = {
+ NSPAIR(_ZN6dd6102C1Ev),
+ NSPAIR(_ZN6dd6102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+static Base_Class bases_dd6102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6102[];
+static VTBL_ENTRY _tg__ZTV5cc102__6dd6102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__6dd6102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd6102[] = {
+ {&(_ZTV6dd6102[3]), 3,11},
+ {&(_tg__ZTV5cc102__6dd6102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__6dd6102[4]), 4,6},
+ {&(_ZTV6dd6102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static VTBL_ENTRY alt_thunk_names785[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6102 = { "dd6102", // class name
+ bases_dd6102, 3,
+ &(vtc_dd6102[0]), // expected_vtbl_contents
+ &(vtt_dd6102[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6102),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names785,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06102 : dd6102 {
+ int e;
+ ~ee06102(); // tgen
+ ee06102(); // tgen
+};
+//SIG(1 ee06102) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06102 ::~ee06102(){ note_dtor("ee06102", this);} // tgen
+ee06102 ::ee06102(){ note_ctor("ee06102", this);} // tgen
+
+static void Test_ee06102()
+{
+ extern Class_Descriptor cd_ee06102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06102, buf);
+ ee06102 *dp, &lv = *(dp=new (buf) ee06102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee06102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd6102*), ABISELECT(24,16), "ee06102");
+ check_base_class_offset(lv, (cc102*)(dd6102*), 0, "ee06102");
+ check_base_class_offset(lv, (dd6102*), 0, "ee06102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06102.e");
+ test_class_info(&lv, &cd_ee06102);
+ dp->~ee06102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06102(Test_ee06102, "ee06102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06102C1Ev();
+extern void _ZN7ee06102D1Ev();
+Name_Map name_map_ee06102[] = {
+ NSPAIR(_ZN7ee06102C1Ev),
+ NSPAIR(_ZN7ee06102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd6102;
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static Base_Class bases_ee06102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6102__7ee06102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd6102__7ee06102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd6102__7ee06102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6102__7ee06102[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+static VTT_ENTRY vtt_ee06102[] = {
+ {&(_ZTV7ee06102[3]), 3,11},
+ {&(_tg__ZTV6dd6102__7ee06102[3]), 3,5},
+ {&(_tg__ZTV5cc1026dd6102__7ee06102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd6102__7ee06102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6102__7ee06102[4]), 4,6},
+ {&(_ZTV7ee06102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06102[];
+extern VTBL_ENTRY _ZTV7ee06102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06102[];
+static VTBL_ENTRY alt_thunk_names786[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06102 = { "ee06102", // class name
+ bases_ee06102, 4,
+ &(vtc_ee06102[0]), // expected_vtbl_contents
+ &(vtt_ee06102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names786,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16102 : virtual dd6102 {
+ int e;
+ ~ee16102(); // tgen
+ ee16102(); // tgen
+};
+//SIG(1 ee16102) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16102 ::~ee16102(){ note_dtor("ee16102", this);} // tgen
+ee16102 ::ee16102(){ note_ctor("ee16102", this);} // tgen
+
+static void Test_ee16102()
+{
+ extern Class_Descriptor cd_ee16102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16102, buf);
+ ee16102 *dp, &lv = *(dp=new (buf) ee16102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee16102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd6102*), ABISELECT(32,20), "ee16102");
+ check_base_class_offset(lv, (cc102*)(dd6102*), ABISELECT(16,8), "ee16102");
+ check_base_class_offset(lv, (dd6102*), ABISELECT(16,8), "ee16102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16102.e");
+ test_class_info(&lv, &cd_ee16102);
+ dp->~ee16102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16102(Test_ee16102, "ee16102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16102C1Ev();
+extern void _ZN7ee16102D1Ev();
+Name_Map name_map_ee16102[] = {
+ NSPAIR(_ZN7ee16102C1Ev),
+ NSPAIR(_ZN7ee16102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd6102;
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static Base_Class bases_ee16102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6102, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16102[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6102__7ee16102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd6102__7ee16102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd6102__7ee16102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6102__7ee16102[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+static VTT_ENTRY vtt_ee16102[] = {
+ {&(_ZTV7ee16102[4]), 4,17},
+ {&(_ZTV7ee16102[9]), 9,17},
+ {&(_ZTV7ee16102[15]), 15,17},
+ {&(_tg__ZTV6dd6102__7ee16102[3]), 3,5},
+ {&(_tg__ZTV5cc1026dd6102__7ee16102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd6102__7ee16102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6102__7ee16102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16102[];
+extern VTBL_ENTRY _ZTV7ee16102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16102[];
+static VTBL_ENTRY alt_thunk_names787[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16102 = { "ee16102", // class name
+ bases_ee16102, 4,
+ &(vtc_ee16102[0]), // expected_vtbl_contents
+ &(vtt_ee16102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16102),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names787,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26102 : dd6102 {
+ int e;
+ virtual void foo(); // _ZN7ee261023fooEv
+ ~ee26102(); // tgen
+ ee26102(); // tgen
+};
+//SIG(1 ee26102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26102 ::foo(){vfunc_called(this, "_ZN7ee261023fooEv");}
+ee26102 ::~ee26102(){ note_dtor("ee26102", this);} // tgen
+ee26102 ::ee26102(){ note_ctor("ee26102", this);} // tgen
+
+static void Test_ee26102()
+{
+ extern Class_Descriptor cd_ee26102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26102, buf);
+ ee26102 *dp, &lv = *(dp=new (buf) ee26102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee26102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd6102*), ABISELECT(24,16), "ee26102");
+ check_base_class_offset(lv, (cc102*)(dd6102*), 0, "ee26102");
+ check_base_class_offset(lv, (dd6102*), 0, "ee26102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26102.e");
+ test_class_info(&lv, &cd_ee26102);
+ dp->~ee26102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26102(Test_ee26102, "ee26102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26102C1Ev();
+extern void _ZN7ee26102D1Ev();
+Name_Map name_map_ee26102[] = {
+ NSPAIR(_ZN7ee26102C1Ev),
+ NSPAIR(_ZN7ee26102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd6102;
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static Base_Class bases_ee26102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN7ee261023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee261023fooEv,_ZTv0_n12_N7ee261023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee261023fooEv,_ZThn16_N7ee261023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN7ee261023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261023fooEv,_ZTv0_n12_N7ee261023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6102__7ee26102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd6102__7ee26102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd6102__7ee26102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6102__7ee26102[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+static VTT_ENTRY vtt_ee26102[] = {
+ {&(_ZTV7ee26102[3]), 3,11},
+ {&(_tg__ZTV6dd6102__7ee26102[3]), 3,5},
+ {&(_tg__ZTV5cc1026dd6102__7ee26102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd6102__7ee26102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6102__7ee26102[4]), 4,6},
+ {&(_ZTV7ee26102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26102[];
+extern VTBL_ENTRY _ZTV7ee26102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26102[];
+static VTBL_ENTRY alt_thunk_names788[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261023fooEv,_ZTv0_n12_N7ee261023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee261023fooEv,_ZThn16_N7ee261023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26102 = { "ee26102", // class name
+ bases_ee26102, 4,
+ &(vtc_ee26102[0]), // expected_vtbl_contents
+ &(vtt_ee26102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names788,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36102 : virtual dd6102 {
+ int e;
+ virtual void foo(); // _ZN7ee361023fooEv
+ ~ee36102(); // tgen
+ ee36102(); // tgen
+};
+//SIG(1 ee36102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36102 ::foo(){vfunc_called(this, "_ZN7ee361023fooEv");}
+ee36102 ::~ee36102(){ note_dtor("ee36102", this);} // tgen
+ee36102 ::ee36102(){ note_ctor("ee36102", this);} // tgen
+
+static void Test_ee36102()
+{
+ extern Class_Descriptor cd_ee36102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36102, buf);
+ ee36102 *dp, &lv = *(dp=new (buf) ee36102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee36102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd6102*), ABISELECT(32,20), "ee36102");
+ check_base_class_offset(lv, (cc102*)(dd6102*), ABISELECT(16,8), "ee36102");
+ check_base_class_offset(lv, (dd6102*), ABISELECT(16,8), "ee36102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36102.e");
+ test_class_info(&lv, &cd_ee36102);
+ dp->~ee36102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36102(Test_ee36102, "ee36102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36102C1Ev();
+extern void _ZN7ee36102D1Ev();
+Name_Map name_map_ee36102[] = {
+ NSPAIR(_ZN7ee36102C1Ev),
+ NSPAIR(_ZN7ee36102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd6102;
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static Base_Class bases_ee36102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36102[];
+extern void _ZN7ee361023fooEv();
+extern void _ZN6dd61023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee361023fooEv,_ZTv0_n20_N7ee361023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361023fooEv,_ZThn8_N7ee361023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361023fooEv,_ZTv0_n12_N7ee361023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee361023fooEv,_ZThn20_N7ee361023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36102[0]),
+ (VTBL_ENTRY)&_ZN7ee361023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee361023fooEv,_ZTv0_n20_N7ee361023fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361023fooEv,_ZTv0_n12_N7ee361023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6102__7ee36102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd6102__7ee36102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd6102__7ee36102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6102__7ee36102[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+static VTT_ENTRY vtt_ee36102[] = {
+ {&(_ZTV7ee36102[4]), 4,18},
+ {&(_ZTV7ee36102[10]), 10,18},
+ {&(_ZTV7ee36102[16]), 16,18},
+ {&(_tg__ZTV6dd6102__7ee36102[3]), 3,5},
+ {&(_tg__ZTV5cc1026dd6102__7ee36102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd6102__7ee36102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6102__7ee36102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36102[];
+extern VTBL_ENTRY _ZTV7ee36102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36102[];
+static VTBL_ENTRY alt_thunk_names789[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361023fooEv,_ZTv0_n12_N7ee361023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee361023fooEv,_ZThn20_N7ee361023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee361023fooEv,_ZTv0_n20_N7ee361023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361023fooEv,_ZThn8_N7ee361023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36102 = { "ee36102", // class name
+ bases_ee36102, 4,
+ &(vtc_ee36102[0]), // expected_vtbl_contents
+ &(vtt_ee36102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36102),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names789,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46102 : dd6102 {
+ int e;
+ virtual void bar(); // _ZN7ee461023barEv
+ ~ee46102(); // tgen
+ ee46102(); // tgen
+};
+//SIG(1 ee46102) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46102 ::bar(){vfunc_called(this, "_ZN7ee461023barEv");}
+ee46102 ::~ee46102(){ note_dtor("ee46102", this);} // tgen
+ee46102 ::ee46102(){ note_ctor("ee46102", this);} // tgen
+
+static void Test_ee46102()
+{
+ extern Class_Descriptor cd_ee46102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46102, buf);
+ ee46102 *dp, &lv = *(dp=new (buf) ee46102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee46102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd6102*), ABISELECT(24,16), "ee46102");
+ check_base_class_offset(lv, (cc102*)(dd6102*), 0, "ee46102");
+ check_base_class_offset(lv, (dd6102*), 0, "ee46102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46102.e");
+ test_class_info(&lv, &cd_ee46102);
+ dp->~ee46102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46102(Test_ee46102, "ee46102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46102C1Ev();
+extern void _ZN7ee46102D1Ev();
+Name_Map name_map_ee46102[] = {
+ NSPAIR(_ZN7ee46102C1Ev),
+ NSPAIR(_ZN7ee46102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd6102;
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static Base_Class bases_ee46102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46102[];
+extern void _ZN7ee461023barEv();
+extern void _ZN6dd61023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee461023barEv,_ZTv0_n16_N7ee461023barEv)();
+extern void ABISELECT(_ZThn24_N7ee461023barEv,_ZThn16_N7ee461023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46102[0]),
+ (VTBL_ENTRY)&_ZN7ee461023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee461023barEv,_ZTv0_n16_N7ee461023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6102__7ee46102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd6102__7ee46102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd6102__7ee46102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6102__7ee46102[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+static VTT_ENTRY vtt_ee46102[] = {
+ {&(_ZTV7ee46102[3]), 3,11},
+ {&(_tg__ZTV6dd6102__7ee46102[3]), 3,5},
+ {&(_tg__ZTV5cc1026dd6102__7ee46102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd6102__7ee46102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6102__7ee46102[4]), 4,6},
+ {&(_ZTV7ee46102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46102[];
+extern VTBL_ENTRY _ZTV7ee46102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46102[];
+static VTBL_ENTRY alt_thunk_names790[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee461023barEv,_ZTv0_n16_N7ee461023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee461023barEv,_ZThn16_N7ee461023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46102 = { "ee46102", // class name
+ bases_ee46102, 4,
+ &(vtc_ee46102[0]), // expected_vtbl_contents
+ &(vtt_ee46102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names790,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56102 : virtual dd6102 {
+ int e;
+ virtual void bar(); // _ZN7ee561023barEv
+ ~ee56102(); // tgen
+ ee56102(); // tgen
+};
+//SIG(1 ee56102) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56102 ::bar(){vfunc_called(this, "_ZN7ee561023barEv");}
+ee56102 ::~ee56102(){ note_dtor("ee56102", this);} // tgen
+ee56102 ::ee56102(){ note_ctor("ee56102", this);} // tgen
+
+static void Test_ee56102()
+{
+ extern Class_Descriptor cd_ee56102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56102, buf);
+ ee56102 *dp, &lv = *(dp=new (buf) ee56102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee56102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd6102*), ABISELECT(32,20), "ee56102");
+ check_base_class_offset(lv, (cc102*)(dd6102*), ABISELECT(16,8), "ee56102");
+ check_base_class_offset(lv, (dd6102*), ABISELECT(16,8), "ee56102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56102.e");
+ test_class_info(&lv, &cd_ee56102);
+ dp->~ee56102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56102(Test_ee56102, "ee56102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56102C1Ev();
+extern void _ZN7ee56102D1Ev();
+Name_Map name_map_ee56102[] = {
+ NSPAIR(_ZN7ee56102C1Ev),
+ NSPAIR(_ZN7ee56102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd6102;
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static Base_Class bases_ee56102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56102[];
+extern void _ZN7ee561023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561023barEv,_ZTv0_n16_N7ee561023barEv)();
+extern void ABISELECT(_ZThn16_N7ee561023barEv,_ZThn8_N7ee561023barEv)() __attribute__((weak));
+extern void _ZN6dd61023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee561023barEv,_ZTv0_n16_N7ee561023barEv)();
+extern void ABISELECT(_ZThn32_N7ee561023barEv,_ZThn20_N7ee561023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56102[0]),
+ (VTBL_ENTRY)&_ZN7ee561023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561023barEv,_ZTv0_n16_N7ee561023barEv),
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561023barEv,_ZTv0_n16_N7ee561023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6102__7ee56102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd6102__7ee56102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd6102__7ee56102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6102__7ee56102[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+static VTT_ENTRY vtt_ee56102[] = {
+ {&(_ZTV7ee56102[4]), 4,18},
+ {&(_ZTV7ee56102[10]), 10,18},
+ {&(_ZTV7ee56102[16]), 16,18},
+ {&(_tg__ZTV6dd6102__7ee56102[3]), 3,5},
+ {&(_tg__ZTV5cc1026dd6102__7ee56102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd6102__7ee56102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6102__7ee56102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56102[];
+extern VTBL_ENTRY _ZTV7ee56102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56102[];
+static VTBL_ENTRY alt_thunk_names791[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561023barEv,_ZTv0_n16_N7ee561023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee561023barEv,_ZThn20_N7ee561023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561023barEv,_ZThn8_N7ee561023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56102 = { "ee56102", // class name
+ bases_ee56102, 4,
+ &(vtc_ee56102[0]), // expected_vtbl_contents
+ &(vtt_ee56102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56102),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names791,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66102 : dd6102 {
+ int e;
+ virtual void foo(); // _ZN7ee661023fooEv
+ virtual void bar(); // _ZN7ee661023barEv
+ ~ee66102(); // tgen
+ ee66102(); // tgen
+};
+//SIG(1 ee66102) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66102 ::foo(){vfunc_called(this, "_ZN7ee661023fooEv");}
+void ee66102 ::bar(){vfunc_called(this, "_ZN7ee661023barEv");}
+ee66102 ::~ee66102(){ note_dtor("ee66102", this);} // tgen
+ee66102 ::ee66102(){ note_ctor("ee66102", this);} // tgen
+
+static void Test_ee66102()
+{
+ extern Class_Descriptor cd_ee66102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66102, buf);
+ ee66102 *dp, &lv = *(dp=new (buf) ee66102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee66102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd6102*), ABISELECT(24,16), "ee66102");
+ check_base_class_offset(lv, (cc102*)(dd6102*), 0, "ee66102");
+ check_base_class_offset(lv, (dd6102*), 0, "ee66102");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66102.e");
+ test_class_info(&lv, &cd_ee66102);
+ dp->~ee66102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66102(Test_ee66102, "ee66102", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66102C1Ev();
+extern void _ZN7ee66102D1Ev();
+Name_Map name_map_ee66102[] = {
+ NSPAIR(_ZN7ee66102C1Ev),
+ NSPAIR(_ZN7ee66102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd6102;
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static Base_Class bases_ee66102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66102[];
+extern void _ZN7ee661023barEv();
+extern void _ZN7ee661023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee661023fooEv,_ZTv0_n12_N7ee661023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee661023fooEv,_ZThn16_N7ee661023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee661023barEv,_ZTv0_n16_N7ee661023barEv)();
+extern void ABISELECT(_ZThn24_N7ee661023barEv,_ZThn16_N7ee661023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66102[0]),
+ (VTBL_ENTRY)&_ZN7ee661023barEv,
+ (VTBL_ENTRY)&_ZN7ee661023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661023fooEv,_ZTv0_n12_N7ee661023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661023barEv,_ZTv0_n16_N7ee661023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6102__7ee66102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd6102__7ee66102[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd6102__7ee66102[] = {
+ 0,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6102__7ee66102[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+static VTT_ENTRY vtt_ee66102[] = {
+ {&(_ZTV7ee66102[3]), 3,11},
+ {&(_tg__ZTV6dd6102__7ee66102[3]), 3,5},
+ {&(_tg__ZTV5cc1026dd6102__7ee66102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd6102__7ee66102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6102__7ee66102[4]), 4,6},
+ {&(_ZTV7ee66102[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66102[];
+extern VTBL_ENTRY _ZTV7ee66102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66102[];
+static VTBL_ENTRY alt_thunk_names792[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023barEv,_ZThn16_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61023fooEv,_ZThn16_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661023barEv,_ZTv0_n16_N7ee661023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661023barEv,_ZThn16_N7ee661023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661023fooEv,_ZTv0_n12_N7ee661023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661023fooEv,_ZThn16_N7ee661023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66102 = { "ee66102", // class name
+ bases_ee66102, 4,
+ &(vtc_ee66102[0]), // expected_vtbl_contents
+ &(vtt_ee66102[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66102),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66102),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names792,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76102 : virtual dd6102 {
+ int e;
+ virtual void foo(); // _ZN7ee761023fooEv
+ virtual void bar(); // _ZN7ee761023barEv
+ ~ee76102(); // tgen
+ ee76102(); // tgen
+};
+//SIG(1 ee76102) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76102 ::foo(){vfunc_called(this, "_ZN7ee761023fooEv");}
+void ee76102 ::bar(){vfunc_called(this, "_ZN7ee761023barEv");}
+ee76102 ::~ee76102(){ note_dtor("ee76102", this);} // tgen
+ee76102 ::ee76102(){ note_ctor("ee76102", this);} // tgen
+
+static void Test_ee76102()
+{
+ extern Class_Descriptor cd_ee76102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76102, buf);
+ ee76102 *dp, &lv = *(dp=new (buf) ee76102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee76102");
+ check_base_class_offset(lv, (bb02*)(cc102*)(dd6102*), ABISELECT(32,20), "ee76102");
+ check_base_class_offset(lv, (cc102*)(dd6102*), ABISELECT(16,8), "ee76102");
+ check_base_class_offset(lv, (dd6102*), ABISELECT(16,8), "ee76102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76102.e");
+ test_class_info(&lv, &cd_ee76102);
+ dp->~ee76102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76102(Test_ee76102, "ee76102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76102C1Ev();
+extern void _ZN7ee76102D1Ev();
+Name_Map name_map_ee76102[] = {
+ NSPAIR(_ZN7ee76102C1Ev),
+ NSPAIR(_ZN7ee76102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd6102;
+extern VTBL_ENTRY _ZTI6dd6102[];
+extern VTBL_ENTRY _ZTV6dd6102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6102[];
+static Base_Class bases_ee76102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76102[];
+extern void _ZN7ee761023fooEv();
+extern void _ZN7ee761023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee761023barEv,_ZTv0_n16_N7ee761023barEv)();
+extern void ABISELECT(_ZThn16_N7ee761023barEv,_ZThn8_N7ee761023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee761023fooEv,_ZTv0_n20_N7ee761023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761023fooEv,_ZThn8_N7ee761023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761023fooEv,_ZTv0_n12_N7ee761023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee761023fooEv,_ZThn20_N7ee761023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761023barEv,_ZTv0_n16_N7ee761023barEv)();
+extern void ABISELECT(_ZThn32_N7ee761023barEv,_ZThn20_N7ee761023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76102[0]),
+ (VTBL_ENTRY)&_ZN7ee761023fooEv,
+ (VTBL_ENTRY)&_ZN7ee761023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761023barEv,_ZTv0_n16_N7ee761023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761023fooEv,_ZTv0_n20_N7ee761023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761023fooEv,_ZTv0_n12_N7ee761023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761023barEv,_ZTv0_n16_N7ee761023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76102[];
+extern void _ZN6dd61023barEv();
+extern void _ZN6dd61023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6102__7ee76102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&_ZN6dd61023barEv,
+ (VTBL_ENTRY)&_ZN6dd61023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1026dd6102__7ee76102[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc1026dd6102__7ee76102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv)();
+extern void ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6102__7ee76102[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv),
+};
+static VTT_ENTRY vtt_ee76102[] = {
+ {&(_ZTV7ee76102[4]), 4,19},
+ {&(_ZTV7ee76102[11]), 11,19},
+ {&(_ZTV7ee76102[17]), 17,19},
+ {&(_tg__ZTV6dd6102__7ee76102[3]), 3,5},
+ {&(_tg__ZTV5cc1026dd6102__7ee76102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc1026dd6102__7ee76102[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6102__7ee76102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76102[];
+extern VTBL_ENTRY _ZTV7ee76102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76102[];
+static VTBL_ENTRY alt_thunk_names793[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61023barEv,_ZTv0_n16_N6dd61023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023barEv,_ZThn12_N6dd61023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61023fooEv,_ZTv0_n12_N6dd61023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61023fooEv,_ZThn12_N6dd61023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761023fooEv,_ZTv0_n12_N7ee761023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761023fooEv,_ZThn20_N7ee761023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761023fooEv,_ZTv0_n20_N7ee761023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761023fooEv,_ZThn8_N7ee761023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761023barEv,_ZTv0_n16_N7ee761023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761023barEv,_ZThn20_N7ee761023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761023barEv,_ZThn8_N7ee761023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76102 = { "ee76102", // class name
+ bases_ee76102, 4,
+ &(vtc_ee76102[0]), // expected_vtbl_contents
+ &(vtt_ee76102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76102),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76102),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names793,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7102 : virtual cc102 {
+ int d;
+ virtual void bar(); // _ZN6dd71023barEv
+ virtual void foo(); // _ZN6dd71023fooEv
+ ~dd7102(); // tgen
+ dd7102(); // tgen
+};
+//SIG(-1 dd7102) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void dd7102 ::bar(){vfunc_called(this, "_ZN6dd71023barEv");}
+void dd7102 ::foo(){vfunc_called(this, "_ZN6dd71023fooEv");}
+dd7102 ::~dd7102(){ note_dtor("dd7102", this);} // tgen
+dd7102 ::dd7102(){ note_ctor("dd7102", this);} // tgen
+
+static void Test_dd7102()
+{
+ extern Class_Descriptor cd_dd7102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7102, buf);
+ dd7102 *dp, &lv = *(dp=new (buf) dd7102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd7102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,16), "dd7102");
+ check_base_class_offset(lv, (cc102*), ABISELECT(16,8), "dd7102");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7102.d");
+ test_class_info(&lv, &cd_dd7102);
+ dp->~dd7102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7102(Test_dd7102, "dd7102", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7102C1Ev();
+extern void _ZN6dd7102D1Ev();
+Name_Map name_map_dd7102[] = {
+ NSPAIR(_ZN6dd7102C1Ev),
+ NSPAIR(_ZN6dd7102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+static Base_Class bases_dd7102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7102[];
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__6dd7102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd7102[] = {
+ {&(_ZTV6dd7102[4]), 4,15},
+ {&(_ZTV6dd7102[9]), 9,15},
+ {&(_ZTV6dd7102[13]), 13,15},
+ {&(_tg__ZTV5cc102__6dd7102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__6dd7102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static VTBL_ENTRY alt_thunk_names794[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7102 = { "dd7102", // class name
+ bases_dd7102, 3,
+ &(vtc_dd7102[0]), // expected_vtbl_contents
+ &(vtt_dd7102[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7102),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names794,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07102 : dd7102 {
+ int e;
+ ~ee07102(); // tgen
+ ee07102(); // tgen
+};
+//SIG(1 ee07102) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07102 ::~ee07102(){ note_dtor("ee07102", this);} // tgen
+ee07102 ::ee07102(){ note_ctor("ee07102", this);} // tgen
+
+static void Test_ee07102()
+{
+ extern Class_Descriptor cd_ee07102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07102, buf);
+ ee07102 *dp, &lv = *(dp=new (buf) ee07102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee07102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee07102");
+ check_base_class_offset(lv, (cc102*)(dd7102*), ABISELECT(16,12), "ee07102");
+ check_base_class_offset(lv, (dd7102*), 0, "ee07102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07102.e");
+ test_class_info(&lv, &cd_ee07102);
+ dp->~ee07102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07102(Test_ee07102, "ee07102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07102C1Ev();
+extern void _ZN7ee07102D1Ev();
+Name_Map name_map_ee07102[] = {
+ NSPAIR(_ZN7ee07102C1Ev),
+ NSPAIR(_ZN7ee07102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd7102;
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static Base_Class bases_ee07102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7102__7ee07102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102__7ee07102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7102__7ee07102[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee07102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee07102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee07102[] = {
+ {&(_ZTV7ee07102[4]), 4,15},
+ {&(_tg__ZTV6dd7102__7ee07102[4]), 4,6},
+ {&(_tg__ZTV5cc102__6dd7102__7ee07102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd7102__7ee07102[4]), 4,6},
+ {&(_ZTV7ee07102[9]), 9,15},
+ {&(_ZTV7ee07102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee07102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee07102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07102[];
+extern VTBL_ENTRY _ZTV7ee07102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07102[];
+static VTBL_ENTRY alt_thunk_names795[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07102 = { "ee07102", // class name
+ bases_ee07102, 4,
+ &(vtc_ee07102[0]), // expected_vtbl_contents
+ &(vtt_ee07102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names795,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17102 : virtual dd7102 {
+ int e;
+ ~ee17102(); // tgen
+ ee17102(); // tgen
+};
+//SIG(1 ee17102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17102 ::~ee17102(){ note_dtor("ee17102", this);} // tgen
+ee17102 ::ee17102(){ note_ctor("ee17102", this);} // tgen
+
+static void Test_ee17102()
+{
+ extern Class_Descriptor cd_ee17102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17102, buf);
+ ee17102 *dp, &lv = *(dp=new (buf) ee17102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee17102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee17102");
+ check_base_class_offset(lv, (cc102*)(dd7102*), ABISELECT(32,16), "ee17102");
+ check_base_class_offset(lv, (dd7102*), ABISELECT(16,8), "ee17102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17102.e");
+ test_class_info(&lv, &cd_ee17102);
+ dp->~ee17102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17102(Test_ee17102, "ee17102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17102C1Ev();
+extern void _ZN7ee17102D1Ev();
+Name_Map name_map_ee17102[] = {
+ NSPAIR(_ZN7ee17102C1Ev),
+ NSPAIR(_ZN7ee17102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd7102;
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static Base_Class bases_ee17102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7102, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17102[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17102[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7102__7ee17102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102__7ee17102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7102__7ee17102[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee17102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee17102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee17102[] = {
+ {&(_ZTV7ee17102[5]), 5,22},
+ {&(_ZTV7ee17102[11]), 11,22},
+ {&(_ZTV7ee17102[16]), 16,22},
+ {&(_ZTV7ee17102[20]), 20,22},
+ {&(_tg__ZTV6dd7102__7ee17102[4]), 4,6},
+ {&(_tg__ZTV5cc102__6dd7102__7ee17102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd7102__7ee17102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee17102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee17102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17102[];
+extern VTBL_ENTRY _ZTV7ee17102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17102[];
+static VTBL_ENTRY alt_thunk_names796[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17102 = { "ee17102", // class name
+ bases_ee17102, 4,
+ &(vtc_ee17102[0]), // expected_vtbl_contents
+ &(vtt_ee17102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17102),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names796,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27102 : dd7102 {
+ int e;
+ virtual void foo(); // _ZN7ee271023fooEv
+ ~ee27102(); // tgen
+ ee27102(); // tgen
+};
+//SIG(1 ee27102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27102 ::foo(){vfunc_called(this, "_ZN7ee271023fooEv");}
+ee27102 ::~ee27102(){ note_dtor("ee27102", this);} // tgen
+ee27102 ::ee27102(){ note_ctor("ee27102", this);} // tgen
+
+static void Test_ee27102()
+{
+ extern Class_Descriptor cd_ee27102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27102, buf);
+ ee27102 *dp, &lv = *(dp=new (buf) ee27102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee27102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee27102");
+ check_base_class_offset(lv, (cc102*)(dd7102*), ABISELECT(16,12), "ee27102");
+ check_base_class_offset(lv, (dd7102*), 0, "ee27102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27102.e");
+ test_class_info(&lv, &cd_ee27102);
+ dp->~ee27102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27102(Test_ee27102, "ee27102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27102C1Ev();
+extern void _ZN7ee27102D1Ev();
+Name_Map name_map_ee27102[] = {
+ NSPAIR(_ZN7ee27102C1Ev),
+ NSPAIR(_ZN7ee27102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd7102;
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static Base_Class bases_ee27102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN7ee271023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee271023fooEv,_ZTv0_n12_N7ee271023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee271023fooEv,_ZThn20_N7ee271023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN7ee271023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271023fooEv,_ZTv0_n12_N7ee271023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7102__7ee27102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102__7ee27102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7102__7ee27102[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee27102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee27102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee27102[] = {
+ {&(_ZTV7ee27102[4]), 4,15},
+ {&(_tg__ZTV6dd7102__7ee27102[4]), 4,6},
+ {&(_tg__ZTV5cc102__6dd7102__7ee27102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd7102__7ee27102[4]), 4,6},
+ {&(_ZTV7ee27102[9]), 9,15},
+ {&(_ZTV7ee27102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee27102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee27102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27102[];
+extern VTBL_ENTRY _ZTV7ee27102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27102[];
+static VTBL_ENTRY alt_thunk_names797[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271023fooEv,_ZTv0_n12_N7ee271023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee271023fooEv,_ZThn20_N7ee271023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27102 = { "ee27102", // class name
+ bases_ee27102, 4,
+ &(vtc_ee27102[0]), // expected_vtbl_contents
+ &(vtt_ee27102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names797,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37102 : virtual dd7102 {
+ int e;
+ virtual void foo(); // _ZN7ee371023fooEv
+ ~ee37102(); // tgen
+ ee37102(); // tgen
+};
+//SIG(1 ee37102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37102 ::foo(){vfunc_called(this, "_ZN7ee371023fooEv");}
+ee37102 ::~ee37102(){ note_dtor("ee37102", this);} // tgen
+ee37102 ::ee37102(){ note_ctor("ee37102", this);} // tgen
+
+static void Test_ee37102()
+{
+ extern Class_Descriptor cd_ee37102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37102, buf);
+ ee37102 *dp, &lv = *(dp=new (buf) ee37102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee37102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee37102");
+ check_base_class_offset(lv, (cc102*)(dd7102*), ABISELECT(32,16), "ee37102");
+ check_base_class_offset(lv, (dd7102*), ABISELECT(16,8), "ee37102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37102.e");
+ test_class_info(&lv, &cd_ee37102);
+ dp->~ee37102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37102(Test_ee37102, "ee37102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37102C1Ev();
+extern void _ZN7ee37102D1Ev();
+Name_Map name_map_ee37102[] = {
+ NSPAIR(_ZN7ee37102C1Ev),
+ NSPAIR(_ZN7ee37102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd7102;
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static Base_Class bases_ee37102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37102[];
+extern void _ZN7ee371023fooEv();
+extern void _ZN6dd71023barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee371023fooEv,_ZTv0_n24_N7ee371023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371023fooEv,_ZThn8_N7ee371023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371023fooEv,_ZTv0_n12_N7ee371023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee371023fooEv,_ZThn24_N7ee371023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37102[0]),
+ (VTBL_ENTRY)&_ZN7ee371023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee371023fooEv,_ZTv0_n24_N7ee371023fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37102[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371023fooEv,_ZTv0_n12_N7ee371023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7102__7ee37102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102__7ee37102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7102__7ee37102[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee37102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee37102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee37102[] = {
+ {&(_ZTV7ee37102[5]), 5,23},
+ {&(_ZTV7ee37102[12]), 12,23},
+ {&(_ZTV7ee37102[17]), 17,23},
+ {&(_ZTV7ee37102[21]), 21,23},
+ {&(_tg__ZTV6dd7102__7ee37102[4]), 4,6},
+ {&(_tg__ZTV5cc102__6dd7102__7ee37102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd7102__7ee37102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee37102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee37102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37102[];
+extern VTBL_ENTRY _ZTV7ee37102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37102[];
+static VTBL_ENTRY alt_thunk_names798[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371023fooEv,_ZTv0_n12_N7ee371023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee371023fooEv,_ZThn24_N7ee371023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee371023fooEv,_ZTv0_n24_N7ee371023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371023fooEv,_ZThn8_N7ee371023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37102 = { "ee37102", // class name
+ bases_ee37102, 4,
+ &(vtc_ee37102[0]), // expected_vtbl_contents
+ &(vtt_ee37102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37102),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names798,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47102 : dd7102 {
+ int e;
+ virtual void bar(); // _ZN7ee471023barEv
+ ~ee47102(); // tgen
+ ee47102(); // tgen
+};
+//SIG(1 ee47102) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47102 ::bar(){vfunc_called(this, "_ZN7ee471023barEv");}
+ee47102 ::~ee47102(){ note_dtor("ee47102", this);} // tgen
+ee47102 ::ee47102(){ note_ctor("ee47102", this);} // tgen
+
+static void Test_ee47102()
+{
+ extern Class_Descriptor cd_ee47102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47102, buf);
+ ee47102 *dp, &lv = *(dp=new (buf) ee47102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee47102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee47102");
+ check_base_class_offset(lv, (cc102*)(dd7102*), ABISELECT(16,12), "ee47102");
+ check_base_class_offset(lv, (dd7102*), 0, "ee47102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47102.e");
+ test_class_info(&lv, &cd_ee47102);
+ dp->~ee47102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47102(Test_ee47102, "ee47102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47102C1Ev();
+extern void _ZN7ee47102D1Ev();
+Name_Map name_map_ee47102[] = {
+ NSPAIR(_ZN7ee47102C1Ev),
+ NSPAIR(_ZN7ee47102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd7102;
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static Base_Class bases_ee47102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47102[];
+extern void _ZN7ee471023barEv();
+extern void _ZN6dd71023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee471023barEv,_ZTv0_n16_N7ee471023barEv)();
+extern void ABISELECT(_ZThn32_N7ee471023barEv,_ZThn20_N7ee471023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47102[0]),
+ (VTBL_ENTRY)&_ZN7ee471023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee471023barEv,_ZTv0_n16_N7ee471023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7102__7ee47102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102__7ee47102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7102__7ee47102[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee47102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee47102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee47102[] = {
+ {&(_ZTV7ee47102[4]), 4,15},
+ {&(_tg__ZTV6dd7102__7ee47102[4]), 4,6},
+ {&(_tg__ZTV5cc102__6dd7102__7ee47102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd7102__7ee47102[4]), 4,6},
+ {&(_ZTV7ee47102[9]), 9,15},
+ {&(_ZTV7ee47102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee47102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee47102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47102[];
+extern VTBL_ENTRY _ZTV7ee47102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47102[];
+static VTBL_ENTRY alt_thunk_names799[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee471023barEv,_ZTv0_n16_N7ee471023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee471023barEv,_ZThn20_N7ee471023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47102 = { "ee47102", // class name
+ bases_ee47102, 4,
+ &(vtc_ee47102[0]), // expected_vtbl_contents
+ &(vtt_ee47102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names799,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57102 : virtual dd7102 {
+ int e;
+ virtual void bar(); // _ZN7ee571023barEv
+ ~ee57102(); // tgen
+ ee57102(); // tgen
+};
+//SIG(1 ee57102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57102 ::bar(){vfunc_called(this, "_ZN7ee571023barEv");}
+ee57102 ::~ee57102(){ note_dtor("ee57102", this);} // tgen
+ee57102 ::ee57102(){ note_ctor("ee57102", this);} // tgen
+
+static void Test_ee57102()
+{
+ extern Class_Descriptor cd_ee57102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57102, buf);
+ ee57102 *dp, &lv = *(dp=new (buf) ee57102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee57102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee57102");
+ check_base_class_offset(lv, (cc102*)(dd7102*), ABISELECT(32,16), "ee57102");
+ check_base_class_offset(lv, (dd7102*), ABISELECT(16,8), "ee57102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57102.e");
+ test_class_info(&lv, &cd_ee57102);
+ dp->~ee57102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57102(Test_ee57102, "ee57102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57102C1Ev();
+extern void _ZN7ee57102D1Ev();
+Name_Map name_map_ee57102[] = {
+ NSPAIR(_ZN7ee57102C1Ev),
+ NSPAIR(_ZN7ee57102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd7102;
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static Base_Class bases_ee57102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7102, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57102[];
+extern void _ZN7ee571023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee571023barEv,_ZTv0_n20_N7ee571023barEv)();
+extern void ABISELECT(_ZThn16_N7ee571023barEv,_ZThn8_N7ee571023barEv)() __attribute__((weak));
+extern void _ZN6dd71023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee571023barEv,_ZTv0_n16_N7ee571023barEv)();
+extern void ABISELECT(_ZThn48_N7ee571023barEv,_ZThn24_N7ee571023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57102[0]),
+ (VTBL_ENTRY)&_ZN7ee571023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee571023barEv,_ZTv0_n20_N7ee571023barEv),
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57102[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee571023barEv,_ZTv0_n16_N7ee571023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7102__7ee57102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102__7ee57102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7102__7ee57102[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee57102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee57102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee57102[] = {
+ {&(_ZTV7ee57102[5]), 5,23},
+ {&(_ZTV7ee57102[12]), 12,23},
+ {&(_ZTV7ee57102[17]), 17,23},
+ {&(_ZTV7ee57102[21]), 21,23},
+ {&(_tg__ZTV6dd7102__7ee57102[4]), 4,6},
+ {&(_tg__ZTV5cc102__6dd7102__7ee57102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd7102__7ee57102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee57102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee57102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57102[];
+extern VTBL_ENTRY _ZTV7ee57102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57102[];
+static VTBL_ENTRY alt_thunk_names800[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee571023barEv,_ZTv0_n16_N7ee571023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee571023barEv,_ZThn24_N7ee571023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee571023barEv,_ZTv0_n20_N7ee571023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571023barEv,_ZThn8_N7ee571023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57102 = { "ee57102", // class name
+ bases_ee57102, 4,
+ &(vtc_ee57102[0]), // expected_vtbl_contents
+ &(vtt_ee57102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57102),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names800,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67102 : dd7102 {
+ int e;
+ virtual void foo(); // _ZN7ee671023fooEv
+ virtual void bar(); // _ZN7ee671023barEv
+ ~ee67102(); // tgen
+ ee67102(); // tgen
+};
+//SIG(1 ee67102) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67102 ::foo(){vfunc_called(this, "_ZN7ee671023fooEv");}
+void ee67102 ::bar(){vfunc_called(this, "_ZN7ee671023barEv");}
+ee67102 ::~ee67102(){ note_dtor("ee67102", this);} // tgen
+ee67102 ::ee67102(){ note_ctor("ee67102", this);} // tgen
+
+static void Test_ee67102()
+{
+ extern Class_Descriptor cd_ee67102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67102, buf);
+ ee67102 *dp, &lv = *(dp=new (buf) ee67102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee67102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(32,20), "ee67102");
+ check_base_class_offset(lv, (cc102*)(dd7102*), ABISELECT(16,12), "ee67102");
+ check_base_class_offset(lv, (dd7102*), 0, "ee67102");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67102.e");
+ test_class_info(&lv, &cd_ee67102);
+ dp->~ee67102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67102(Test_ee67102, "ee67102", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67102C1Ev();
+extern void _ZN7ee67102D1Ev();
+Name_Map name_map_ee67102[] = {
+ NSPAIR(_ZN7ee67102C1Ev),
+ NSPAIR(_ZN7ee67102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd7102;
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static Base_Class bases_ee67102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7102, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67102[];
+extern void _ZN7ee671023barEv();
+extern void _ZN7ee671023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee671023fooEv,_ZTv0_n12_N7ee671023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee671023fooEv,_ZThn20_N7ee671023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee671023barEv,_ZTv0_n16_N7ee671023barEv)();
+extern void ABISELECT(_ZThn32_N7ee671023barEv,_ZThn20_N7ee671023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67102[0]),
+ (VTBL_ENTRY)&_ZN7ee671023barEv,
+ (VTBL_ENTRY)&_ZN7ee671023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67102[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671023fooEv,_ZTv0_n12_N7ee671023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671023barEv,_ZTv0_n16_N7ee671023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7102__7ee67102[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102__7ee67102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7102__7ee67102[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee67102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee67102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee67102[] = {
+ {&(_ZTV7ee67102[4]), 4,15},
+ {&(_tg__ZTV6dd7102__7ee67102[4]), 4,6},
+ {&(_tg__ZTV5cc102__6dd7102__7ee67102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd7102__7ee67102[4]), 4,6},
+ {&(_ZTV7ee67102[9]), 9,15},
+ {&(_ZTV7ee67102[13]), 13,15},
+ {&(_tg__ZTV5cc102__7ee67102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee67102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67102[];
+extern VTBL_ENTRY _ZTV7ee67102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67102[];
+static VTBL_ENTRY alt_thunk_names801[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn20_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn20_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671023barEv,_ZTv0_n16_N7ee671023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671023barEv,_ZThn20_N7ee671023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671023fooEv,_ZTv0_n12_N7ee671023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671023fooEv,_ZThn20_N7ee671023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67102 = { "ee67102", // class name
+ bases_ee67102, 4,
+ &(vtc_ee67102[0]), // expected_vtbl_contents
+ &(vtt_ee67102[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67102),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67102),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67102),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names801,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77102 : virtual dd7102 {
+ int e;
+ virtual void foo(); // _ZN7ee771023fooEv
+ virtual void bar(); // _ZN7ee771023barEv
+ ~ee77102(); // tgen
+ ee77102(); // tgen
+};
+//SIG(1 ee77102) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77102 ::foo(){vfunc_called(this, "_ZN7ee771023fooEv");}
+void ee77102 ::bar(){vfunc_called(this, "_ZN7ee771023barEv");}
+ee77102 ::~ee77102(){ note_dtor("ee77102", this);} // tgen
+ee77102 ::ee77102(){ note_ctor("ee77102", this);} // tgen
+
+static void Test_ee77102()
+{
+ extern Class_Descriptor cd_ee77102;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77102, buf);
+ ee77102 *dp, &lv = *(dp=new (buf) ee77102());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77102)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77102)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee77102");
+ check_base_class_offset(lv, (bb02*)(cc102*), ABISELECT(48,24), "ee77102");
+ check_base_class_offset(lv, (cc102*)(dd7102*), ABISELECT(32,16), "ee77102");
+ check_base_class_offset(lv, (dd7102*), ABISELECT(16,8), "ee77102");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77102.e");
+ test_class_info(&lv, &cd_ee77102);
+ dp->~ee77102();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77102(Test_ee77102, "ee77102", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77102C1Ev();
+extern void _ZN7ee77102D1Ev();
+Name_Map name_map_ee77102[] = {
+ NSPAIR(_ZN7ee77102C1Ev),
+ NSPAIR(_ZN7ee77102D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc102;
+extern VTBL_ENTRY _ZTI5cc102[];
+extern VTBL_ENTRY _ZTV5cc102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc102[];
+extern Class_Descriptor cd_dd7102;
+extern VTBL_ENTRY _ZTI6dd7102[];
+extern VTBL_ENTRY _ZTV6dd7102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7102[];
+static Base_Class bases_ee77102[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc102, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7102, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77102[];
+extern void _ZN7ee771023fooEv();
+extern void _ZN7ee771023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee771023barEv,_ZTv0_n20_N7ee771023barEv)();
+extern void ABISELECT(_ZThn16_N7ee771023barEv,_ZThn8_N7ee771023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee771023fooEv,_ZTv0_n24_N7ee771023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771023fooEv,_ZThn8_N7ee771023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771023fooEv,_ZTv0_n12_N7ee771023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee771023fooEv,_ZThn24_N7ee771023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771023barEv,_ZTv0_n16_N7ee771023barEv)();
+extern void ABISELECT(_ZThn48_N7ee771023barEv,_ZThn24_N7ee771023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77102[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77102[0]),
+ (VTBL_ENTRY)&_ZN7ee771023fooEv,
+ (VTBL_ENTRY)&_ZN7ee771023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee771023barEv,_ZTv0_n20_N7ee771023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771023fooEv,_ZTv0_n24_N7ee771023fooEv),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77102[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771023fooEv,_ZTv0_n12_N7ee771023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771023barEv,_ZTv0_n16_N7ee771023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77102[];
+extern void _ZN6dd71023barEv();
+extern void _ZN6dd71023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7102__7ee77102[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&_ZN6dd71023barEv,
+ (VTBL_ENTRY)&_ZN6dd71023fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc102__6dd7102__7ee77102[] = {
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv)();
+extern void ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7102__7ee77102[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7102[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc102__7ee77102[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc102__7ee77102[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc102[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee77102[] = {
+ {&(_ZTV7ee77102[5]), 5,24},
+ {&(_ZTV7ee77102[13]), 13,24},
+ {&(_ZTV7ee77102[18]), 18,24},
+ {&(_ZTV7ee77102[22]), 22,24},
+ {&(_tg__ZTV6dd7102__7ee77102[4]), 4,6},
+ {&(_tg__ZTV5cc102__6dd7102__7ee77102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__6dd7102__7ee77102[4]), 4,6},
+ {&(_tg__ZTV5cc102__7ee77102[3]), 3,3},
+ {&(_tg__ZTV3aa24bb02__5cc102__7ee77102[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77102[];
+extern VTBL_ENTRY _ZTV7ee77102[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77102[];
+static VTBL_ENTRY alt_thunk_names802[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71023barEv,_ZTv0_n16_N6dd71023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023barEv,_ZThn16_N6dd71023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71023fooEv,_ZTv0_n12_N6dd71023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71023fooEv,_ZThn16_N6dd71023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771023barEv,_ZTv0_n16_N7ee771023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771023barEv,_ZThn24_N7ee771023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771023fooEv,_ZTv0_n12_N7ee771023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771023fooEv,_ZThn24_N7ee771023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771023fooEv,_ZTv0_n24_N7ee771023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771023fooEv,_ZThn8_N7ee771023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee771023barEv,_ZTv0_n20_N7ee771023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771023barEv,_ZThn8_N7ee771023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77102 = { "ee77102", // class name
+ bases_ee77102, 4,
+ &(vtc_ee77102[0]), // expected_vtbl_contents
+ &(vtt_ee77102[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77102),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77102),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77102),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names802,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc202 : bb02 {
+ int c;
+ virtual void foo(); // _ZN5cc2023fooEv
+ ~cc202(); // tgen
+ cc202(); // tgen
+};
+//SIG(-1 cc202) C1{ BC2{ BC3{ v1 v2 Fi} Fi} v1 Fi}
+
+
+void cc202 ::foo(){vfunc_called(this, "_ZN5cc2023fooEv");}
+cc202 ::~cc202(){ note_dtor("cc202", this);} // tgen
+cc202 ::cc202(){ note_ctor("cc202", this);} // tgen
+
+static void Test_cc202()
+{
+ extern Class_Descriptor cd_cc202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc202, buf);
+ cc202 *dp, &lv = *(dp=new (buf) cc202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc202)");
+ check_base_class_offset(lv, (aa2*)(bb02*), 0, "cc202");
+ check_base_class_offset(lv, (bb02*), 0, "cc202");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc202.c");
+ test_class_info(&lv, &cd_cc202);
+ dp->~cc202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc202(Test_cc202, "cc202", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc202C1Ev();
+extern void _ZN5cc202D1Ev();
+Name_Map name_map_cc202[] = {
+ NSPAIR(_ZN5cc202C1Ev),
+ NSPAIR(_ZN5cc202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+static Base_Class bases_cc202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_cc202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+Class_Descriptor cd_cc202 = { "cc202", // class name
+ bases_cc202, 2,
+ &(vtc_cc202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0202 : cc202 {
+ int d;
+ ~dd0202(); // tgen
+ dd0202(); // tgen
+};
+//SIG(-1 dd0202) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+dd0202 ::~dd0202(){ note_dtor("dd0202", this);} // tgen
+dd0202 ::dd0202(){ note_ctor("dd0202", this);} // tgen
+
+static void Test_dd0202()
+{
+ extern Class_Descriptor cd_dd0202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0202, buf);
+ dd0202 *dp, &lv = *(dp=new (buf) dd0202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), 0, "dd0202");
+ check_base_class_offset(lv, (bb02*)(cc202*), 0, "dd0202");
+ check_base_class_offset(lv, (cc202*), 0, "dd0202");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0202.d");
+ test_class_info(&lv, &cd_dd0202);
+ dp->~dd0202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0202(Test_dd0202, "dd0202", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0202C1Ev();
+extern void _ZN6dd0202D1Ev();
+Name_Map name_map_dd0202[] = {
+ NSPAIR(_ZN6dd0202C1Ev),
+ NSPAIR(_ZN6dd0202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+static Base_Class bases_dd0202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd0202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+Class_Descriptor cd_dd0202 = { "dd0202", // class name
+ bases_dd0202, 3,
+ &(vtc_dd0202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00202 : dd0202 {
+ int e;
+ ~ee00202(); // tgen
+ ee00202(); // tgen
+};
+//SIG(1 ee00202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00202 ::~ee00202(){ note_dtor("ee00202", this);} // tgen
+ee00202 ::ee00202(){ note_ctor("ee00202", this);} // tgen
+
+static void Test_ee00202()
+{
+ extern Class_Descriptor cd_ee00202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00202, buf);
+ ee00202 *dp, &lv = *(dp=new (buf) ee00202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd0202*), 0, "ee00202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd0202*), 0, "ee00202");
+ check_base_class_offset(lv, (cc202*)(dd0202*), 0, "ee00202");
+ check_base_class_offset(lv, (dd0202*), 0, "ee00202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00202.e");
+ test_class_info(&lv, &cd_ee00202);
+ dp->~ee00202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00202(Test_ee00202, "ee00202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00202C1Ev();
+extern void _ZN7ee00202D1Ev();
+Name_Map name_map_ee00202[] = {
+ NSPAIR(_ZN7ee00202C1Ev),
+ NSPAIR(_ZN7ee00202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd0202;
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+static Base_Class bases_ee00202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee00202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00202[];
+extern VTBL_ENTRY _ZTV7ee00202[];
+Class_Descriptor cd_ee00202 = { "ee00202", // class name
+ bases_ee00202, 4,
+ &(vtc_ee00202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10202 : virtual dd0202 {
+ int e;
+ ~ee10202(); // tgen
+ ee10202(); // tgen
+};
+//SIG(1 ee10202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10202 ::~ee10202(){ note_dtor("ee10202", this);} // tgen
+ee10202 ::ee10202(){ note_ctor("ee10202", this);} // tgen
+
+static void Test_ee10202()
+{
+ extern Class_Descriptor cd_ee10202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10202, buf);
+ ee10202 *dp, &lv = *(dp=new (buf) ee10202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd0202*), ABISELECT(16,8), "ee10202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd0202*), ABISELECT(16,8), "ee10202");
+ check_base_class_offset(lv, (cc202*)(dd0202*), ABISELECT(16,8), "ee10202");
+ check_base_class_offset(lv, (dd0202*), ABISELECT(16,8), "ee10202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10202.e");
+ test_class_info(&lv, &cd_ee10202);
+ dp->~ee10202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10202(Test_ee10202, "ee10202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10202C1Ev();
+extern void _ZN7ee10202D1Ev();
+Name_Map name_map_ee10202[] = {
+ NSPAIR(_ZN7ee10202C1Ev),
+ NSPAIR(_ZN7ee10202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd0202;
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+static Base_Class bases_ee10202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee10202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10202[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10202[];
+static VTT_ENTRY vtt_ee10202[] = {
+ {&(_ZTV7ee10202[3]), 3,9},
+ {&(_ZTV7ee10202[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10202[];
+extern VTBL_ENTRY _ZTV7ee10202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10202[];
+Class_Descriptor cd_ee10202 = { "ee10202", // class name
+ bases_ee10202, 4,
+ &(vtc_ee10202[0]), // expected_vtbl_contents
+ &(vtt_ee10202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10202),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20202 : dd0202 {
+ int e;
+ virtual void foo(); // _ZN7ee202023fooEv
+ ~ee20202(); // tgen
+ ee20202(); // tgen
+};
+//SIG(1 ee20202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20202 ::foo(){vfunc_called(this, "_ZN7ee202023fooEv");}
+ee20202 ::~ee20202(){ note_dtor("ee20202", this);} // tgen
+ee20202 ::ee20202(){ note_ctor("ee20202", this);} // tgen
+
+static void Test_ee20202()
+{
+ extern Class_Descriptor cd_ee20202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20202, buf);
+ ee20202 *dp, &lv = *(dp=new (buf) ee20202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd0202*), 0, "ee20202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd0202*), 0, "ee20202");
+ check_base_class_offset(lv, (cc202*)(dd0202*), 0, "ee20202");
+ check_base_class_offset(lv, (dd0202*), 0, "ee20202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20202.e");
+ test_class_info(&lv, &cd_ee20202);
+ dp->~ee20202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20202(Test_ee20202, "ee20202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20202C1Ev();
+extern void _ZN7ee20202D1Ev();
+Name_Map name_map_ee20202[] = {
+ NSPAIR(_ZN7ee20202C1Ev),
+ NSPAIR(_ZN7ee20202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd0202;
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+static Base_Class bases_ee20202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20202[];
+extern void _ZN7ee202023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee20202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20202[0]),
+ (VTBL_ENTRY)&_ZN7ee202023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20202[];
+extern VTBL_ENTRY _ZTV7ee20202[];
+Class_Descriptor cd_ee20202 = { "ee20202", // class name
+ bases_ee20202, 4,
+ &(vtc_ee20202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30202 : virtual dd0202 {
+ int e;
+ virtual void foo(); // _ZN7ee302023fooEv
+ ~ee30202(); // tgen
+ ee30202(); // tgen
+};
+//SIG(1 ee30202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30202 ::foo(){vfunc_called(this, "_ZN7ee302023fooEv");}
+ee30202 ::~ee30202(){ note_dtor("ee30202", this);} // tgen
+ee30202 ::ee30202(){ note_ctor("ee30202", this);} // tgen
+
+static void Test_ee30202()
+{
+ extern Class_Descriptor cd_ee30202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30202, buf);
+ ee30202 *dp, &lv = *(dp=new (buf) ee30202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd0202*), ABISELECT(16,8), "ee30202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd0202*), ABISELECT(16,8), "ee30202");
+ check_base_class_offset(lv, (cc202*)(dd0202*), ABISELECT(16,8), "ee30202");
+ check_base_class_offset(lv, (dd0202*), ABISELECT(16,8), "ee30202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30202.e");
+ test_class_info(&lv, &cd_ee30202);
+ dp->~ee30202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30202(Test_ee30202, "ee30202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30202C1Ev();
+extern void _ZN7ee30202D1Ev();
+Name_Map name_map_ee30202[] = {
+ NSPAIR(_ZN7ee30202C1Ev),
+ NSPAIR(_ZN7ee30202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd0202;
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+static Base_Class bases_ee30202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30202[];
+extern void _ZN7ee302023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee302023fooEv,_ZTv0_n12_N7ee302023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302023fooEv,_ZThn8_N7ee302023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee30202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30202[0]),
+ (VTBL_ENTRY)&_ZN7ee302023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302023fooEv,_ZTv0_n12_N7ee302023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30202[];
+static VTT_ENTRY vtt_ee30202[] = {
+ {&(_ZTV7ee30202[3]), 3,10},
+ {&(_ZTV7ee30202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30202[];
+extern VTBL_ENTRY _ZTV7ee30202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30202[];
+static VTBL_ENTRY alt_thunk_names803[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302023fooEv,_ZTv0_n12_N7ee302023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302023fooEv,_ZThn8_N7ee302023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30202 = { "ee30202", // class name
+ bases_ee30202, 4,
+ &(vtc_ee30202[0]), // expected_vtbl_contents
+ &(vtt_ee30202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names803,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40202 : dd0202 {
+ int e;
+ virtual void bar(); // _ZN7ee402023barEv
+ ~ee40202(); // tgen
+ ee40202(); // tgen
+};
+//SIG(1 ee40202) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40202 ::bar(){vfunc_called(this, "_ZN7ee402023barEv");}
+ee40202 ::~ee40202(){ note_dtor("ee40202", this);} // tgen
+ee40202 ::ee40202(){ note_ctor("ee40202", this);} // tgen
+
+static void Test_ee40202()
+{
+ extern Class_Descriptor cd_ee40202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40202, buf);
+ ee40202 *dp, &lv = *(dp=new (buf) ee40202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd0202*), 0, "ee40202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd0202*), 0, "ee40202");
+ check_base_class_offset(lv, (cc202*)(dd0202*), 0, "ee40202");
+ check_base_class_offset(lv, (dd0202*), 0, "ee40202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40202.e");
+ test_class_info(&lv, &cd_ee40202);
+ dp->~ee40202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40202(Test_ee40202, "ee40202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40202C1Ev();
+extern void _ZN7ee40202D1Ev();
+Name_Map name_map_ee40202[] = {
+ NSPAIR(_ZN7ee40202C1Ev),
+ NSPAIR(_ZN7ee40202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd0202;
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+static Base_Class bases_ee40202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN7ee402023barEv();
+static VTBL_ENTRY vtc_ee40202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN7ee402023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40202[];
+extern VTBL_ENTRY _ZTV7ee40202[];
+Class_Descriptor cd_ee40202 = { "ee40202", // class name
+ bases_ee40202, 4,
+ &(vtc_ee40202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50202 : virtual dd0202 {
+ int e;
+ virtual void bar(); // _ZN7ee502023barEv
+ ~ee50202(); // tgen
+ ee50202(); // tgen
+};
+//SIG(1 ee50202) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50202 ::bar(){vfunc_called(this, "_ZN7ee502023barEv");}
+ee50202 ::~ee50202(){ note_dtor("ee50202", this);} // tgen
+ee50202 ::ee50202(){ note_ctor("ee50202", this);} // tgen
+
+static void Test_ee50202()
+{
+ extern Class_Descriptor cd_ee50202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50202, buf);
+ ee50202 *dp, &lv = *(dp=new (buf) ee50202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd0202*), ABISELECT(16,8), "ee50202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd0202*), ABISELECT(16,8), "ee50202");
+ check_base_class_offset(lv, (cc202*)(dd0202*), ABISELECT(16,8), "ee50202");
+ check_base_class_offset(lv, (dd0202*), ABISELECT(16,8), "ee50202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50202.e");
+ test_class_info(&lv, &cd_ee50202);
+ dp->~ee50202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50202(Test_ee50202, "ee50202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50202C1Ev();
+extern void _ZN7ee50202D1Ev();
+Name_Map name_map_ee50202[] = {
+ NSPAIR(_ZN7ee50202C1Ev),
+ NSPAIR(_ZN7ee50202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd0202;
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+static Base_Class bases_ee50202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50202[];
+extern void _ZN7ee502023barEv();
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee502023barEv,_ZTv0_n16_N7ee502023barEv)();
+extern void ABISELECT(_ZThn16_N7ee502023barEv,_ZThn8_N7ee502023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50202[0]),
+ (VTBL_ENTRY)&_ZN7ee502023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee502023barEv,_ZTv0_n16_N7ee502023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50202[];
+static VTT_ENTRY vtt_ee50202[] = {
+ {&(_ZTV7ee50202[3]), 3,10},
+ {&(_ZTV7ee50202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50202[];
+extern VTBL_ENTRY _ZTV7ee50202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50202[];
+static VTBL_ENTRY alt_thunk_names804[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee502023barEv,_ZTv0_n16_N7ee502023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee502023barEv,_ZThn8_N7ee502023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50202 = { "ee50202", // class name
+ bases_ee50202, 4,
+ &(vtc_ee50202[0]), // expected_vtbl_contents
+ &(vtt_ee50202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names804,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60202 : dd0202 {
+ int e;
+ virtual void foo(); // _ZN7ee602023fooEv
+ virtual void bar(); // _ZN7ee602023barEv
+ ~ee60202(); // tgen
+ ee60202(); // tgen
+};
+//SIG(1 ee60202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60202 ::foo(){vfunc_called(this, "_ZN7ee602023fooEv");}
+void ee60202 ::bar(){vfunc_called(this, "_ZN7ee602023barEv");}
+ee60202 ::~ee60202(){ note_dtor("ee60202", this);} // tgen
+ee60202 ::ee60202(){ note_ctor("ee60202", this);} // tgen
+
+static void Test_ee60202()
+{
+ extern Class_Descriptor cd_ee60202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60202, buf);
+ ee60202 *dp, &lv = *(dp=new (buf) ee60202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd0202*), 0, "ee60202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd0202*), 0, "ee60202");
+ check_base_class_offset(lv, (cc202*)(dd0202*), 0, "ee60202");
+ check_base_class_offset(lv, (dd0202*), 0, "ee60202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60202.e");
+ test_class_info(&lv, &cd_ee60202);
+ dp->~ee60202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60202(Test_ee60202, "ee60202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60202C1Ev();
+extern void _ZN7ee60202D1Ev();
+Name_Map name_map_ee60202[] = {
+ NSPAIR(_ZN7ee60202C1Ev),
+ NSPAIR(_ZN7ee60202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd0202;
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+static Base_Class bases_ee60202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60202[];
+extern void _ZN7ee602023fooEv();
+extern void _ZN7ee602023barEv();
+static VTBL_ENTRY vtc_ee60202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60202[0]),
+ (VTBL_ENTRY)&_ZN7ee602023fooEv,
+ (VTBL_ENTRY)&_ZN7ee602023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60202[];
+extern VTBL_ENTRY _ZTV7ee60202[];
+Class_Descriptor cd_ee60202 = { "ee60202", // class name
+ bases_ee60202, 4,
+ &(vtc_ee60202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70202 : virtual dd0202 {
+ int e;
+ virtual void foo(); // _ZN7ee702023fooEv
+ virtual void bar(); // _ZN7ee702023barEv
+ ~ee70202(); // tgen
+ ee70202(); // tgen
+};
+//SIG(1 ee70202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70202 ::foo(){vfunc_called(this, "_ZN7ee702023fooEv");}
+void ee70202 ::bar(){vfunc_called(this, "_ZN7ee702023barEv");}
+ee70202 ::~ee70202(){ note_dtor("ee70202", this);} // tgen
+ee70202 ::ee70202(){ note_ctor("ee70202", this);} // tgen
+
+static void Test_ee70202()
+{
+ extern Class_Descriptor cd_ee70202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70202, buf);
+ ee70202 *dp, &lv = *(dp=new (buf) ee70202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd0202*), ABISELECT(16,8), "ee70202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd0202*), ABISELECT(16,8), "ee70202");
+ check_base_class_offset(lv, (cc202*)(dd0202*), ABISELECT(16,8), "ee70202");
+ check_base_class_offset(lv, (dd0202*), ABISELECT(16,8), "ee70202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70202.e");
+ test_class_info(&lv, &cd_ee70202);
+ dp->~ee70202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70202(Test_ee70202, "ee70202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70202C1Ev();
+extern void _ZN7ee70202D1Ev();
+Name_Map name_map_ee70202[] = {
+ NSPAIR(_ZN7ee70202C1Ev),
+ NSPAIR(_ZN7ee70202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd0202;
+extern VTBL_ENTRY _ZTI6dd0202[];
+extern VTBL_ENTRY _ZTV6dd0202[];
+static Base_Class bases_ee70202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70202[];
+extern void _ZN7ee702023fooEv();
+extern void _ZN7ee702023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee702023fooEv,_ZTv0_n12_N7ee702023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702023fooEv,_ZThn8_N7ee702023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee702023barEv,_ZTv0_n16_N7ee702023barEv)();
+extern void ABISELECT(_ZThn16_N7ee702023barEv,_ZThn8_N7ee702023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70202[0]),
+ (VTBL_ENTRY)&_ZN7ee702023fooEv,
+ (VTBL_ENTRY)&_ZN7ee702023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702023fooEv,_ZTv0_n12_N7ee702023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702023barEv,_ZTv0_n16_N7ee702023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70202[];
+static VTT_ENTRY vtt_ee70202[] = {
+ {&(_ZTV7ee70202[3]), 3,11},
+ {&(_ZTV7ee70202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70202[];
+extern VTBL_ENTRY _ZTV7ee70202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70202[];
+static VTBL_ENTRY alt_thunk_names805[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702023barEv,_ZTv0_n16_N7ee702023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702023barEv,_ZThn8_N7ee702023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702023fooEv,_ZTv0_n12_N7ee702023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702023fooEv,_ZThn8_N7ee702023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70202 = { "ee70202", // class name
+ bases_ee70202, 4,
+ &(vtc_ee70202[0]), // expected_vtbl_contents
+ &(vtt_ee70202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names805,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1202 : virtual cc202 {
+ int d;
+ ~dd1202(); // tgen
+ dd1202(); // tgen
+};
+//SIG(-1 dd1202) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+dd1202 ::~dd1202(){ note_dtor("dd1202", this);} // tgen
+dd1202 ::dd1202(){ note_ctor("dd1202", this);} // tgen
+
+static void Test_dd1202()
+{
+ extern Class_Descriptor cd_dd1202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1202, buf);
+ dd1202 *dp, &lv = *(dp=new (buf) dd1202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,8), "dd1202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,8), "dd1202");
+ check_base_class_offset(lv, (cc202*), ABISELECT(16,8), "dd1202");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1202.d");
+ test_class_info(&lv, &cd_dd1202);
+ dp->~dd1202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1202(Test_dd1202, "dd1202", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1202C1Ev();
+extern void _ZN6dd1202D1Ev();
+Name_Map name_map_dd1202[] = {
+ NSPAIR(_ZN6dd1202C1Ev),
+ NSPAIR(_ZN6dd1202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+static Base_Class bases_dd1202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd1202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1202[];
+static VTT_ENTRY vtt_dd1202[] = {
+ {&(_ZTV6dd1202[3]), 3,9},
+ {&(_ZTV6dd1202[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+Class_Descriptor cd_dd1202 = { "dd1202", // class name
+ bases_dd1202, 3,
+ &(vtc_dd1202[0]), // expected_vtbl_contents
+ &(vtt_dd1202[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1202),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1202),2, //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 ee01202 : dd1202 {
+ int e;
+ ~ee01202(); // tgen
+ ee01202(); // tgen
+};
+//SIG(1 ee01202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01202 ::~ee01202(){ note_dtor("ee01202", this);} // tgen
+ee01202 ::ee01202(){ note_ctor("ee01202", this);} // tgen
+
+static void Test_ee01202()
+{
+ extern Class_Descriptor cd_ee01202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01202, buf);
+ ee01202 *dp, &lv = *(dp=new (buf) ee01202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee01202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee01202");
+ check_base_class_offset(lv, (cc202*)(dd1202*), ABISELECT(16,12), "ee01202");
+ check_base_class_offset(lv, (dd1202*), 0, "ee01202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01202.e");
+ test_class_info(&lv, &cd_ee01202);
+ dp->~ee01202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01202(Test_ee01202, "ee01202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01202C1Ev();
+extern void _ZN7ee01202D1Ev();
+Name_Map name_map_ee01202[] = {
+ NSPAIR(_ZN7ee01202C1Ev),
+ NSPAIR(_ZN7ee01202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd1202;
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+static Base_Class bases_ee01202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee01202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01202[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01202[];
+static VTBL_ENTRY _tg__ZTV6dd1202__7ee01202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+};
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd1202__7ee01202[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee01202[] = {
+ {&(_ZTV7ee01202[3]), 3,9},
+ {&(_tg__ZTV6dd1202__7ee01202[3]), 3,3},
+ {&(_tg__ZTV5cc202__6dd1202__7ee01202[4]), 4,6},
+ {&(_ZTV7ee01202[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01202[];
+extern VTBL_ENTRY _ZTV7ee01202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01202[];
+Class_Descriptor cd_ee01202 = { "ee01202", // class name
+ bases_ee01202, 4,
+ &(vtc_ee01202[0]), // expected_vtbl_contents
+ &(vtt_ee01202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01202),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11202 : virtual dd1202 {
+ int e;
+ ~ee11202(); // tgen
+ ee11202(); // tgen
+};
+//SIG(1 ee11202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11202 ::~ee11202(){ note_dtor("ee11202", this);} // tgen
+ee11202 ::ee11202(){ note_ctor("ee11202", this);} // tgen
+
+static void Test_ee11202()
+{
+ extern Class_Descriptor cd_ee11202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11202, buf);
+ ee11202 *dp, &lv = *(dp=new (buf) ee11202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee11202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee11202");
+ check_base_class_offset(lv, (cc202*)(dd1202*), ABISELECT(32,16), "ee11202");
+ check_base_class_offset(lv, (dd1202*), ABISELECT(16,8), "ee11202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11202.e");
+ test_class_info(&lv, &cd_ee11202);
+ dp->~ee11202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11202(Test_ee11202, "ee11202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11202C1Ev();
+extern void _ZN7ee11202D1Ev();
+Name_Map name_map_ee11202[] = {
+ NSPAIR(_ZN7ee11202C1Ev),
+ NSPAIR(_ZN7ee11202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd1202;
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+static Base_Class bases_ee11202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee11202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11202[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11202[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11202[];
+static VTBL_ENTRY _tg__ZTV6dd1202__7ee11202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+};
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd1202__7ee11202[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee11202[] = {
+ {&(_ZTV7ee11202[4]), 4,13},
+ {&(_ZTV7ee11202[7]), 7,13},
+ {&(_ZTV7ee11202[11]), 11,13},
+ {&(_tg__ZTV6dd1202__7ee11202[3]), 3,3},
+ {&(_tg__ZTV5cc202__6dd1202__7ee11202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11202[];
+extern VTBL_ENTRY _ZTV7ee11202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11202[];
+Class_Descriptor cd_ee11202 = { "ee11202", // class name
+ bases_ee11202, 4,
+ &(vtc_ee11202[0]), // expected_vtbl_contents
+ &(vtt_ee11202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11202),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21202 : dd1202 {
+ int e;
+ virtual void foo(); // _ZN7ee212023fooEv
+ ~ee21202(); // tgen
+ ee21202(); // tgen
+};
+//SIG(1 ee21202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21202 ::foo(){vfunc_called(this, "_ZN7ee212023fooEv");}
+ee21202 ::~ee21202(){ note_dtor("ee21202", this);} // tgen
+ee21202 ::ee21202(){ note_ctor("ee21202", this);} // tgen
+
+static void Test_ee21202()
+{
+ extern Class_Descriptor cd_ee21202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21202, buf);
+ ee21202 *dp, &lv = *(dp=new (buf) ee21202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee21202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee21202");
+ check_base_class_offset(lv, (cc202*)(dd1202*), ABISELECT(16,12), "ee21202");
+ check_base_class_offset(lv, (dd1202*), 0, "ee21202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21202.e");
+ test_class_info(&lv, &cd_ee21202);
+ dp->~ee21202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21202(Test_ee21202, "ee21202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21202C1Ev();
+extern void _ZN7ee21202D1Ev();
+Name_Map name_map_ee21202[] = {
+ NSPAIR(_ZN7ee21202C1Ev),
+ NSPAIR(_ZN7ee21202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd1202;
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+static Base_Class bases_ee21202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21202[];
+extern void _ZN7ee212023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee212023fooEv,_ZTv0_n12_N7ee212023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212023fooEv,_ZThn12_N7ee212023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee21202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21202[0]),
+ (VTBL_ENTRY)&_ZN7ee212023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212023fooEv,_ZTv0_n12_N7ee212023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21202[];
+static VTBL_ENTRY _tg__ZTV6dd1202__7ee21202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+};
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd1202__7ee21202[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee21202[] = {
+ {&(_ZTV7ee21202[3]), 3,10},
+ {&(_tg__ZTV6dd1202__7ee21202[3]), 3,3},
+ {&(_tg__ZTV5cc202__6dd1202__7ee21202[4]), 4,6},
+ {&(_ZTV7ee21202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21202[];
+extern VTBL_ENTRY _ZTV7ee21202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21202[];
+static VTBL_ENTRY alt_thunk_names806[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212023fooEv,_ZTv0_n12_N7ee212023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212023fooEv,_ZThn12_N7ee212023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21202 = { "ee21202", // class name
+ bases_ee21202, 4,
+ &(vtc_ee21202[0]), // expected_vtbl_contents
+ &(vtt_ee21202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names806,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31202 : virtual dd1202 {
+ int e;
+ virtual void foo(); // _ZN7ee312023fooEv
+ ~ee31202(); // tgen
+ ee31202(); // tgen
+};
+//SIG(1 ee31202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31202 ::foo(){vfunc_called(this, "_ZN7ee312023fooEv");}
+ee31202 ::~ee31202(){ note_dtor("ee31202", this);} // tgen
+ee31202 ::ee31202(){ note_ctor("ee31202", this);} // tgen
+
+static void Test_ee31202()
+{
+ extern Class_Descriptor cd_ee31202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31202, buf);
+ ee31202 *dp, &lv = *(dp=new (buf) ee31202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee31202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee31202");
+ check_base_class_offset(lv, (cc202*)(dd1202*), ABISELECT(32,16), "ee31202");
+ check_base_class_offset(lv, (dd1202*), ABISELECT(16,8), "ee31202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31202.e");
+ test_class_info(&lv, &cd_ee31202);
+ dp->~ee31202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31202(Test_ee31202, "ee31202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31202C1Ev();
+extern void _ZN7ee31202D1Ev();
+Name_Map name_map_ee31202[] = {
+ NSPAIR(_ZN7ee31202C1Ev),
+ NSPAIR(_ZN7ee31202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd1202;
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+static Base_Class bases_ee31202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31202[];
+extern void _ZN7ee312023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee312023fooEv,_ZTv0_n12_N7ee312023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312023fooEv,_ZThn16_N7ee312023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee31202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31202[0]),
+ (VTBL_ENTRY)&_ZN7ee312023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31202[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312023fooEv,_ZTv0_n12_N7ee312023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31202[];
+static VTBL_ENTRY _tg__ZTV6dd1202__7ee31202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+};
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd1202__7ee31202[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee31202[] = {
+ {&(_ZTV7ee31202[4]), 4,14},
+ {&(_ZTV7ee31202[8]), 8,14},
+ {&(_ZTV7ee31202[12]), 12,14},
+ {&(_tg__ZTV6dd1202__7ee31202[3]), 3,3},
+ {&(_tg__ZTV5cc202__6dd1202__7ee31202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31202[];
+extern VTBL_ENTRY _ZTV7ee31202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31202[];
+static VTBL_ENTRY alt_thunk_names807[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312023fooEv,_ZTv0_n12_N7ee312023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312023fooEv,_ZThn16_N7ee312023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31202 = { "ee31202", // class name
+ bases_ee31202, 4,
+ &(vtc_ee31202[0]), // expected_vtbl_contents
+ &(vtt_ee31202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31202),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names807,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41202 : dd1202 {
+ int e;
+ virtual void bar(); // _ZN7ee412023barEv
+ ~ee41202(); // tgen
+ ee41202(); // tgen
+};
+//SIG(1 ee41202) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41202 ::bar(){vfunc_called(this, "_ZN7ee412023barEv");}
+ee41202 ::~ee41202(){ note_dtor("ee41202", this);} // tgen
+ee41202 ::ee41202(){ note_ctor("ee41202", this);} // tgen
+
+static void Test_ee41202()
+{
+ extern Class_Descriptor cd_ee41202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41202, buf);
+ ee41202 *dp, &lv = *(dp=new (buf) ee41202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee41202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee41202");
+ check_base_class_offset(lv, (cc202*)(dd1202*), ABISELECT(16,12), "ee41202");
+ check_base_class_offset(lv, (dd1202*), 0, "ee41202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41202.e");
+ test_class_info(&lv, &cd_ee41202);
+ dp->~ee41202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41202(Test_ee41202, "ee41202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41202C1Ev();
+extern void _ZN7ee41202D1Ev();
+Name_Map name_map_ee41202[] = {
+ NSPAIR(_ZN7ee41202C1Ev),
+ NSPAIR(_ZN7ee41202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd1202;
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+static Base_Class bases_ee41202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41202[];
+extern void _ZN7ee412023barEv();
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee412023barEv,_ZTv0_n16_N7ee412023barEv)();
+extern void ABISELECT(_ZThn16_N7ee412023barEv,_ZThn12_N7ee412023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41202[0]),
+ (VTBL_ENTRY)&_ZN7ee412023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee412023barEv,_ZTv0_n16_N7ee412023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41202[];
+static VTBL_ENTRY _tg__ZTV6dd1202__7ee41202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+};
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd1202__7ee41202[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee41202[] = {
+ {&(_ZTV7ee41202[3]), 3,10},
+ {&(_tg__ZTV6dd1202__7ee41202[3]), 3,3},
+ {&(_tg__ZTV5cc202__6dd1202__7ee41202[4]), 4,6},
+ {&(_ZTV7ee41202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41202[];
+extern VTBL_ENTRY _ZTV7ee41202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41202[];
+static VTBL_ENTRY alt_thunk_names808[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee412023barEv,_ZTv0_n16_N7ee412023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee412023barEv,_ZThn12_N7ee412023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41202 = { "ee41202", // class name
+ bases_ee41202, 4,
+ &(vtc_ee41202[0]), // expected_vtbl_contents
+ &(vtt_ee41202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names808,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51202 : virtual dd1202 {
+ int e;
+ virtual void bar(); // _ZN7ee512023barEv
+ ~ee51202(); // tgen
+ ee51202(); // tgen
+};
+//SIG(1 ee51202) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51202 ::bar(){vfunc_called(this, "_ZN7ee512023barEv");}
+ee51202 ::~ee51202(){ note_dtor("ee51202", this);} // tgen
+ee51202 ::ee51202(){ note_ctor("ee51202", this);} // tgen
+
+static void Test_ee51202()
+{
+ extern Class_Descriptor cd_ee51202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51202, buf);
+ ee51202 *dp, &lv = *(dp=new (buf) ee51202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee51202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee51202");
+ check_base_class_offset(lv, (cc202*)(dd1202*), ABISELECT(32,16), "ee51202");
+ check_base_class_offset(lv, (dd1202*), ABISELECT(16,8), "ee51202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51202.e");
+ test_class_info(&lv, &cd_ee51202);
+ dp->~ee51202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51202(Test_ee51202, "ee51202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51202C1Ev();
+extern void _ZN7ee51202D1Ev();
+Name_Map name_map_ee51202[] = {
+ NSPAIR(_ZN7ee51202C1Ev),
+ NSPAIR(_ZN7ee51202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd1202;
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+static Base_Class bases_ee51202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51202[];
+extern void _ZN7ee512023barEv();
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee512023barEv,_ZTv0_n16_N7ee512023barEv)();
+extern void ABISELECT(_ZThn32_N7ee512023barEv,_ZThn16_N7ee512023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51202[0]),
+ (VTBL_ENTRY)&_ZN7ee512023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51202[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee512023barEv,_ZTv0_n16_N7ee512023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51202[];
+static VTBL_ENTRY _tg__ZTV6dd1202__7ee51202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+};
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd1202__7ee51202[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee51202[] = {
+ {&(_ZTV7ee51202[4]), 4,14},
+ {&(_ZTV7ee51202[8]), 8,14},
+ {&(_ZTV7ee51202[12]), 12,14},
+ {&(_tg__ZTV6dd1202__7ee51202[3]), 3,3},
+ {&(_tg__ZTV5cc202__6dd1202__7ee51202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51202[];
+extern VTBL_ENTRY _ZTV7ee51202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51202[];
+static VTBL_ENTRY alt_thunk_names809[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee512023barEv,_ZTv0_n16_N7ee512023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee512023barEv,_ZThn16_N7ee512023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51202 = { "ee51202", // class name
+ bases_ee51202, 4,
+ &(vtc_ee51202[0]), // expected_vtbl_contents
+ &(vtt_ee51202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51202),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names809,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61202 : dd1202 {
+ int e;
+ virtual void foo(); // _ZN7ee612023fooEv
+ virtual void bar(); // _ZN7ee612023barEv
+ ~ee61202(); // tgen
+ ee61202(); // tgen
+};
+//SIG(1 ee61202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61202 ::foo(){vfunc_called(this, "_ZN7ee612023fooEv");}
+void ee61202 ::bar(){vfunc_called(this, "_ZN7ee612023barEv");}
+ee61202 ::~ee61202(){ note_dtor("ee61202", this);} // tgen
+ee61202 ::ee61202(){ note_ctor("ee61202", this);} // tgen
+
+static void Test_ee61202()
+{
+ extern Class_Descriptor cd_ee61202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61202, buf);
+ ee61202 *dp, &lv = *(dp=new (buf) ee61202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee61202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee61202");
+ check_base_class_offset(lv, (cc202*)(dd1202*), ABISELECT(16,12), "ee61202");
+ check_base_class_offset(lv, (dd1202*), 0, "ee61202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61202.e");
+ test_class_info(&lv, &cd_ee61202);
+ dp->~ee61202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61202(Test_ee61202, "ee61202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61202C1Ev();
+extern void _ZN7ee61202D1Ev();
+Name_Map name_map_ee61202[] = {
+ NSPAIR(_ZN7ee61202C1Ev),
+ NSPAIR(_ZN7ee61202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd1202;
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+static Base_Class bases_ee61202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61202[];
+extern void _ZN7ee612023fooEv();
+extern void _ZN7ee612023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee612023fooEv,_ZTv0_n12_N7ee612023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612023fooEv,_ZThn12_N7ee612023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee612023barEv,_ZTv0_n16_N7ee612023barEv)();
+extern void ABISELECT(_ZThn16_N7ee612023barEv,_ZThn12_N7ee612023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61202[0]),
+ (VTBL_ENTRY)&_ZN7ee612023fooEv,
+ (VTBL_ENTRY)&_ZN7ee612023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612023fooEv,_ZTv0_n12_N7ee612023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612023barEv,_ZTv0_n16_N7ee612023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61202[];
+static VTBL_ENTRY _tg__ZTV6dd1202__7ee61202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+};
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd1202__7ee61202[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee61202[] = {
+ {&(_ZTV7ee61202[3]), 3,11},
+ {&(_tg__ZTV6dd1202__7ee61202[3]), 3,3},
+ {&(_tg__ZTV5cc202__6dd1202__7ee61202[4]), 4,6},
+ {&(_ZTV7ee61202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61202[];
+extern VTBL_ENTRY _ZTV7ee61202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61202[];
+static VTBL_ENTRY alt_thunk_names810[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee612023barEv,_ZTv0_n16_N7ee612023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612023barEv,_ZThn12_N7ee612023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612023fooEv,_ZTv0_n12_N7ee612023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612023fooEv,_ZThn12_N7ee612023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61202 = { "ee61202", // class name
+ bases_ee61202, 4,
+ &(vtc_ee61202[0]), // expected_vtbl_contents
+ &(vtt_ee61202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names810,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71202 : virtual dd1202 {
+ int e;
+ virtual void foo(); // _ZN7ee712023fooEv
+ virtual void bar(); // _ZN7ee712023barEv
+ ~ee71202(); // tgen
+ ee71202(); // tgen
+};
+//SIG(1 ee71202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71202 ::foo(){vfunc_called(this, "_ZN7ee712023fooEv");}
+void ee71202 ::bar(){vfunc_called(this, "_ZN7ee712023barEv");}
+ee71202 ::~ee71202(){ note_dtor("ee71202", this);} // tgen
+ee71202 ::ee71202(){ note_ctor("ee71202", this);} // tgen
+
+static void Test_ee71202()
+{
+ extern Class_Descriptor cd_ee71202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71202, buf);
+ ee71202 *dp, &lv = *(dp=new (buf) ee71202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee71202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee71202");
+ check_base_class_offset(lv, (cc202*)(dd1202*), ABISELECT(32,16), "ee71202");
+ check_base_class_offset(lv, (dd1202*), ABISELECT(16,8), "ee71202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71202.e");
+ test_class_info(&lv, &cd_ee71202);
+ dp->~ee71202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71202(Test_ee71202, "ee71202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71202C1Ev();
+extern void _ZN7ee71202D1Ev();
+Name_Map name_map_ee71202[] = {
+ NSPAIR(_ZN7ee71202C1Ev),
+ NSPAIR(_ZN7ee71202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd1202;
+extern VTBL_ENTRY _ZTI6dd1202[];
+extern VTBL_ENTRY _ZTV6dd1202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1202[];
+static Base_Class bases_ee71202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1202, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71202[];
+extern void _ZN7ee712023fooEv();
+extern void _ZN7ee712023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee712023fooEv,_ZTv0_n12_N7ee712023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712023fooEv,_ZThn16_N7ee712023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee712023barEv,_ZTv0_n16_N7ee712023barEv)();
+extern void ABISELECT(_ZThn32_N7ee712023barEv,_ZThn16_N7ee712023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71202[0]),
+ (VTBL_ENTRY)&_ZN7ee712023fooEv,
+ (VTBL_ENTRY)&_ZN7ee712023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71202[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712023fooEv,_ZTv0_n12_N7ee712023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712023barEv,_ZTv0_n16_N7ee712023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71202[];
+static VTBL_ENTRY _tg__ZTV6dd1202__7ee71202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+};
+extern void _ZN5cc2023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd1202__7ee71202[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee71202[] = {
+ {&(_ZTV7ee71202[4]), 4,15},
+ {&(_ZTV7ee71202[9]), 9,15},
+ {&(_ZTV7ee71202[13]), 13,15},
+ {&(_tg__ZTV6dd1202__7ee71202[3]), 3,3},
+ {&(_tg__ZTV5cc202__6dd1202__7ee71202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71202[];
+extern VTBL_ENTRY _ZTV7ee71202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71202[];
+static VTBL_ENTRY alt_thunk_names811[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee712023barEv,_ZTv0_n16_N7ee712023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712023barEv,_ZThn16_N7ee712023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712023fooEv,_ZTv0_n12_N7ee712023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712023fooEv,_ZThn16_N7ee712023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71202 = { "ee71202", // class name
+ bases_ee71202, 4,
+ &(vtc_ee71202[0]), // expected_vtbl_contents
+ &(vtt_ee71202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71202),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names811,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2202 : cc202 {
+ int d;
+ virtual void foo(); // _ZN6dd22023fooEv
+ ~dd2202(); // tgen
+ dd2202(); // tgen
+};
+//SIG(-1 dd2202) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd2202 ::foo(){vfunc_called(this, "_ZN6dd22023fooEv");}
+dd2202 ::~dd2202(){ note_dtor("dd2202", this);} // tgen
+dd2202 ::dd2202(){ note_ctor("dd2202", this);} // tgen
+
+static void Test_dd2202()
+{
+ extern Class_Descriptor cd_dd2202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2202, buf);
+ dd2202 *dp, &lv = *(dp=new (buf) dd2202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), 0, "dd2202");
+ check_base_class_offset(lv, (bb02*)(cc202*), 0, "dd2202");
+ check_base_class_offset(lv, (cc202*), 0, "dd2202");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2202.d");
+ test_class_info(&lv, &cd_dd2202);
+ dp->~dd2202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2202(Test_dd2202, "dd2202", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2202C1Ev();
+extern void _ZN6dd2202D1Ev();
+Name_Map name_map_dd2202[] = {
+ NSPAIR(_ZN6dd2202C1Ev),
+ NSPAIR(_ZN6dd2202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+static Base_Class bases_dd2202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern void _ZN6dd22023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd2202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2202[0]),
+ (VTBL_ENTRY)&_ZN6dd22023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+Class_Descriptor cd_dd2202 = { "dd2202", // class name
+ bases_dd2202, 3,
+ &(vtc_dd2202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02202 : dd2202 {
+ int e;
+ ~ee02202(); // tgen
+ ee02202(); // tgen
+};
+//SIG(1 ee02202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02202 ::~ee02202(){ note_dtor("ee02202", this);} // tgen
+ee02202 ::ee02202(){ note_ctor("ee02202", this);} // tgen
+
+static void Test_ee02202()
+{
+ extern Class_Descriptor cd_ee02202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02202, buf);
+ ee02202 *dp, &lv = *(dp=new (buf) ee02202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd2202*), 0, "ee02202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd2202*), 0, "ee02202");
+ check_base_class_offset(lv, (cc202*)(dd2202*), 0, "ee02202");
+ check_base_class_offset(lv, (dd2202*), 0, "ee02202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02202.e");
+ test_class_info(&lv, &cd_ee02202);
+ dp->~ee02202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02202(Test_ee02202, "ee02202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02202C1Ev();
+extern void _ZN7ee02202D1Ev();
+Name_Map name_map_ee02202[] = {
+ NSPAIR(_ZN7ee02202C1Ev),
+ NSPAIR(_ZN7ee02202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd2202;
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+static Base_Class bases_ee02202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2202, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02202[];
+extern void _ZN6dd22023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee02202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02202[0]),
+ (VTBL_ENTRY)&_ZN6dd22023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02202[];
+extern VTBL_ENTRY _ZTV7ee02202[];
+Class_Descriptor cd_ee02202 = { "ee02202", // class name
+ bases_ee02202, 4,
+ &(vtc_ee02202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12202 : virtual dd2202 {
+ int e;
+ ~ee12202(); // tgen
+ ee12202(); // tgen
+};
+//SIG(1 ee12202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12202 ::~ee12202(){ note_dtor("ee12202", this);} // tgen
+ee12202 ::ee12202(){ note_ctor("ee12202", this);} // tgen
+
+static void Test_ee12202()
+{
+ extern Class_Descriptor cd_ee12202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12202, buf);
+ ee12202 *dp, &lv = *(dp=new (buf) ee12202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd2202*), ABISELECT(16,8), "ee12202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd2202*), ABISELECT(16,8), "ee12202");
+ check_base_class_offset(lv, (cc202*)(dd2202*), ABISELECT(16,8), "ee12202");
+ check_base_class_offset(lv, (dd2202*), ABISELECT(16,8), "ee12202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12202.e");
+ test_class_info(&lv, &cd_ee12202);
+ dp->~ee12202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12202(Test_ee12202, "ee12202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12202C1Ev();
+extern void _ZN7ee12202D1Ev();
+Name_Map name_map_ee12202[] = {
+ NSPAIR(_ZN7ee12202C1Ev),
+ NSPAIR(_ZN7ee12202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd2202;
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+static Base_Class bases_ee12202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2202, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12202[];
+extern void _ZN6dd22023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee12202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12202[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12202[0]),
+ (VTBL_ENTRY)&_ZN6dd22023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12202[];
+static VTT_ENTRY vtt_ee12202[] = {
+ {&(_ZTV7ee12202[3]), 3,9},
+ {&(_ZTV7ee12202[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12202[];
+extern VTBL_ENTRY _ZTV7ee12202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12202[];
+Class_Descriptor cd_ee12202 = { "ee12202", // class name
+ bases_ee12202, 4,
+ &(vtc_ee12202[0]), // expected_vtbl_contents
+ &(vtt_ee12202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12202),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22202 : dd2202 {
+ int e;
+ virtual void foo(); // _ZN7ee222023fooEv
+ ~ee22202(); // tgen
+ ee22202(); // tgen
+};
+//SIG(1 ee22202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22202 ::foo(){vfunc_called(this, "_ZN7ee222023fooEv");}
+ee22202 ::~ee22202(){ note_dtor("ee22202", this);} // tgen
+ee22202 ::ee22202(){ note_ctor("ee22202", this);} // tgen
+
+static void Test_ee22202()
+{
+ extern Class_Descriptor cd_ee22202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22202, buf);
+ ee22202 *dp, &lv = *(dp=new (buf) ee22202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd2202*), 0, "ee22202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd2202*), 0, "ee22202");
+ check_base_class_offset(lv, (cc202*)(dd2202*), 0, "ee22202");
+ check_base_class_offset(lv, (dd2202*), 0, "ee22202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22202.e");
+ test_class_info(&lv, &cd_ee22202);
+ dp->~ee22202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22202(Test_ee22202, "ee22202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22202C1Ev();
+extern void _ZN7ee22202D1Ev();
+Name_Map name_map_ee22202[] = {
+ NSPAIR(_ZN7ee22202C1Ev),
+ NSPAIR(_ZN7ee22202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd2202;
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+static Base_Class bases_ee22202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22202[];
+extern void _ZN7ee222023fooEv();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee22202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22202[0]),
+ (VTBL_ENTRY)&_ZN7ee222023fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22202[];
+extern VTBL_ENTRY _ZTV7ee22202[];
+Class_Descriptor cd_ee22202 = { "ee22202", // class name
+ bases_ee22202, 4,
+ &(vtc_ee22202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32202 : virtual dd2202 {
+ int e;
+ virtual void foo(); // _ZN7ee322023fooEv
+ ~ee32202(); // tgen
+ ee32202(); // tgen
+};
+//SIG(1 ee32202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32202 ::foo(){vfunc_called(this, "_ZN7ee322023fooEv");}
+ee32202 ::~ee32202(){ note_dtor("ee32202", this);} // tgen
+ee32202 ::ee32202(){ note_ctor("ee32202", this);} // tgen
+
+static void Test_ee32202()
+{
+ extern Class_Descriptor cd_ee32202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32202, buf);
+ ee32202 *dp, &lv = *(dp=new (buf) ee32202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd2202*), ABISELECT(16,8), "ee32202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd2202*), ABISELECT(16,8), "ee32202");
+ check_base_class_offset(lv, (cc202*)(dd2202*), ABISELECT(16,8), "ee32202");
+ check_base_class_offset(lv, (dd2202*), ABISELECT(16,8), "ee32202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32202.e");
+ test_class_info(&lv, &cd_ee32202);
+ dp->~ee32202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32202(Test_ee32202, "ee32202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32202C1Ev();
+extern void _ZN7ee32202D1Ev();
+Name_Map name_map_ee32202[] = {
+ NSPAIR(_ZN7ee32202C1Ev),
+ NSPAIR(_ZN7ee32202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd2202;
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+static Base_Class bases_ee32202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32202[];
+extern void _ZN7ee322023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee322023fooEv,_ZTv0_n12_N7ee322023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322023fooEv,_ZThn8_N7ee322023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee32202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32202[0]),
+ (VTBL_ENTRY)&_ZN7ee322023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322023fooEv,_ZTv0_n12_N7ee322023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32202[];
+static VTT_ENTRY vtt_ee32202[] = {
+ {&(_ZTV7ee32202[3]), 3,10},
+ {&(_ZTV7ee32202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32202[];
+extern VTBL_ENTRY _ZTV7ee32202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32202[];
+static VTBL_ENTRY alt_thunk_names812[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322023fooEv,_ZTv0_n12_N7ee322023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322023fooEv,_ZThn8_N7ee322023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32202 = { "ee32202", // class name
+ bases_ee32202, 4,
+ &(vtc_ee32202[0]), // expected_vtbl_contents
+ &(vtt_ee32202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names812,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42202 : dd2202 {
+ int e;
+ virtual void bar(); // _ZN7ee422023barEv
+ ~ee42202(); // tgen
+ ee42202(); // tgen
+};
+//SIG(1 ee42202) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42202 ::bar(){vfunc_called(this, "_ZN7ee422023barEv");}
+ee42202 ::~ee42202(){ note_dtor("ee42202", this);} // tgen
+ee42202 ::ee42202(){ note_ctor("ee42202", this);} // tgen
+
+static void Test_ee42202()
+{
+ extern Class_Descriptor cd_ee42202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42202, buf);
+ ee42202 *dp, &lv = *(dp=new (buf) ee42202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd2202*), 0, "ee42202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd2202*), 0, "ee42202");
+ check_base_class_offset(lv, (cc202*)(dd2202*), 0, "ee42202");
+ check_base_class_offset(lv, (dd2202*), 0, "ee42202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42202.e");
+ test_class_info(&lv, &cd_ee42202);
+ dp->~ee42202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42202(Test_ee42202, "ee42202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42202C1Ev();
+extern void _ZN7ee42202D1Ev();
+Name_Map name_map_ee42202[] = {
+ NSPAIR(_ZN7ee42202C1Ev),
+ NSPAIR(_ZN7ee42202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd2202;
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+static Base_Class bases_ee42202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42202[];
+extern void _ZN6dd22023fooEv();
+extern void _ZN7ee422023barEv();
+static VTBL_ENTRY vtc_ee42202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42202[0]),
+ (VTBL_ENTRY)&_ZN6dd22023fooEv,
+ (VTBL_ENTRY)&_ZN7ee422023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42202[];
+extern VTBL_ENTRY _ZTV7ee42202[];
+Class_Descriptor cd_ee42202 = { "ee42202", // class name
+ bases_ee42202, 4,
+ &(vtc_ee42202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52202 : virtual dd2202 {
+ int e;
+ virtual void bar(); // _ZN7ee522023barEv
+ ~ee52202(); // tgen
+ ee52202(); // tgen
+};
+//SIG(1 ee52202) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52202 ::bar(){vfunc_called(this, "_ZN7ee522023barEv");}
+ee52202 ::~ee52202(){ note_dtor("ee52202", this);} // tgen
+ee52202 ::ee52202(){ note_ctor("ee52202", this);} // tgen
+
+static void Test_ee52202()
+{
+ extern Class_Descriptor cd_ee52202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52202, buf);
+ ee52202 *dp, &lv = *(dp=new (buf) ee52202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd2202*), ABISELECT(16,8), "ee52202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd2202*), ABISELECT(16,8), "ee52202");
+ check_base_class_offset(lv, (cc202*)(dd2202*), ABISELECT(16,8), "ee52202");
+ check_base_class_offset(lv, (dd2202*), ABISELECT(16,8), "ee52202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52202.e");
+ test_class_info(&lv, &cd_ee52202);
+ dp->~ee52202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52202(Test_ee52202, "ee52202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52202C1Ev();
+extern void _ZN7ee52202D1Ev();
+Name_Map name_map_ee52202[] = {
+ NSPAIR(_ZN7ee52202C1Ev),
+ NSPAIR(_ZN7ee52202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd2202;
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+static Base_Class bases_ee52202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52202[];
+extern void _ZN7ee522023barEv();
+extern void _ZN6dd22023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee522023barEv,_ZTv0_n16_N7ee522023barEv)();
+extern void ABISELECT(_ZThn16_N7ee522023barEv,_ZThn8_N7ee522023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52202[0]),
+ (VTBL_ENTRY)&_ZN7ee522023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52202[0]),
+ (VTBL_ENTRY)&_ZN6dd22023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee522023barEv,_ZTv0_n16_N7ee522023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52202[];
+static VTT_ENTRY vtt_ee52202[] = {
+ {&(_ZTV7ee52202[3]), 3,10},
+ {&(_ZTV7ee52202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52202[];
+extern VTBL_ENTRY _ZTV7ee52202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52202[];
+static VTBL_ENTRY alt_thunk_names813[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee522023barEv,_ZTv0_n16_N7ee522023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee522023barEv,_ZThn8_N7ee522023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52202 = { "ee52202", // class name
+ bases_ee52202, 4,
+ &(vtc_ee52202[0]), // expected_vtbl_contents
+ &(vtt_ee52202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names813,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62202 : dd2202 {
+ int e;
+ virtual void foo(); // _ZN7ee622023fooEv
+ virtual void bar(); // _ZN7ee622023barEv
+ ~ee62202(); // tgen
+ ee62202(); // tgen
+};
+//SIG(1 ee62202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62202 ::foo(){vfunc_called(this, "_ZN7ee622023fooEv");}
+void ee62202 ::bar(){vfunc_called(this, "_ZN7ee622023barEv");}
+ee62202 ::~ee62202(){ note_dtor("ee62202", this);} // tgen
+ee62202 ::ee62202(){ note_ctor("ee62202", this);} // tgen
+
+static void Test_ee62202()
+{
+ extern Class_Descriptor cd_ee62202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62202, buf);
+ ee62202 *dp, &lv = *(dp=new (buf) ee62202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd2202*), 0, "ee62202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd2202*), 0, "ee62202");
+ check_base_class_offset(lv, (cc202*)(dd2202*), 0, "ee62202");
+ check_base_class_offset(lv, (dd2202*), 0, "ee62202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62202.e");
+ test_class_info(&lv, &cd_ee62202);
+ dp->~ee62202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62202(Test_ee62202, "ee62202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62202C1Ev();
+extern void _ZN7ee62202D1Ev();
+Name_Map name_map_ee62202[] = {
+ NSPAIR(_ZN7ee62202C1Ev),
+ NSPAIR(_ZN7ee62202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd2202;
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+static Base_Class bases_ee62202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62202[];
+extern void _ZN7ee622023fooEv();
+extern void _ZN7ee622023barEv();
+static VTBL_ENTRY vtc_ee62202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62202[0]),
+ (VTBL_ENTRY)&_ZN7ee622023fooEv,
+ (VTBL_ENTRY)&_ZN7ee622023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62202[];
+extern VTBL_ENTRY _ZTV7ee62202[];
+Class_Descriptor cd_ee62202 = { "ee62202", // class name
+ bases_ee62202, 4,
+ &(vtc_ee62202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72202 : virtual dd2202 {
+ int e;
+ virtual void foo(); // _ZN7ee722023fooEv
+ virtual void bar(); // _ZN7ee722023barEv
+ ~ee72202(); // tgen
+ ee72202(); // tgen
+};
+//SIG(1 ee72202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72202 ::foo(){vfunc_called(this, "_ZN7ee722023fooEv");}
+void ee72202 ::bar(){vfunc_called(this, "_ZN7ee722023barEv");}
+ee72202 ::~ee72202(){ note_dtor("ee72202", this);} // tgen
+ee72202 ::ee72202(){ note_ctor("ee72202", this);} // tgen
+
+static void Test_ee72202()
+{
+ extern Class_Descriptor cd_ee72202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72202, buf);
+ ee72202 *dp, &lv = *(dp=new (buf) ee72202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd2202*), ABISELECT(16,8), "ee72202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd2202*), ABISELECT(16,8), "ee72202");
+ check_base_class_offset(lv, (cc202*)(dd2202*), ABISELECT(16,8), "ee72202");
+ check_base_class_offset(lv, (dd2202*), ABISELECT(16,8), "ee72202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72202.e");
+ test_class_info(&lv, &cd_ee72202);
+ dp->~ee72202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72202(Test_ee72202, "ee72202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72202C1Ev();
+extern void _ZN7ee72202D1Ev();
+Name_Map name_map_ee72202[] = {
+ NSPAIR(_ZN7ee72202C1Ev),
+ NSPAIR(_ZN7ee72202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd2202;
+extern VTBL_ENTRY _ZTI6dd2202[];
+extern VTBL_ENTRY _ZTV6dd2202[];
+static Base_Class bases_ee72202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72202[];
+extern void _ZN7ee722023fooEv();
+extern void _ZN7ee722023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee722023fooEv,_ZTv0_n12_N7ee722023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722023fooEv,_ZThn8_N7ee722023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee722023barEv,_ZTv0_n16_N7ee722023barEv)();
+extern void ABISELECT(_ZThn16_N7ee722023barEv,_ZThn8_N7ee722023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72202[0]),
+ (VTBL_ENTRY)&_ZN7ee722023fooEv,
+ (VTBL_ENTRY)&_ZN7ee722023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722023fooEv,_ZTv0_n12_N7ee722023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722023barEv,_ZTv0_n16_N7ee722023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72202[];
+static VTT_ENTRY vtt_ee72202[] = {
+ {&(_ZTV7ee72202[3]), 3,11},
+ {&(_ZTV7ee72202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72202[];
+extern VTBL_ENTRY _ZTV7ee72202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72202[];
+static VTBL_ENTRY alt_thunk_names814[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee722023barEv,_ZTv0_n16_N7ee722023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722023barEv,_ZThn8_N7ee722023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722023fooEv,_ZTv0_n12_N7ee722023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722023fooEv,_ZThn8_N7ee722023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72202 = { "ee72202", // class name
+ bases_ee72202, 4,
+ &(vtc_ee72202[0]), // expected_vtbl_contents
+ &(vtt_ee72202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names814,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3202 : virtual cc202 {
+ int d;
+ virtual void foo(); // _ZN6dd32023fooEv
+ ~dd3202(); // tgen
+ dd3202(); // tgen
+};
+//SIG(-1 dd3202) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd3202 ::foo(){vfunc_called(this, "_ZN6dd32023fooEv");}
+dd3202 ::~dd3202(){ note_dtor("dd3202", this);} // tgen
+dd3202 ::dd3202(){ note_ctor("dd3202", this);} // tgen
+
+static void Test_dd3202()
+{
+ extern Class_Descriptor cd_dd3202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3202, buf);
+ dd3202 *dp, &lv = *(dp=new (buf) dd3202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,8), "dd3202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,8), "dd3202");
+ check_base_class_offset(lv, (cc202*), ABISELECT(16,8), "dd3202");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3202.d");
+ test_class_info(&lv, &cd_dd3202);
+ dp->~dd3202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3202(Test_dd3202, "dd3202", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3202C1Ev();
+extern void _ZN6dd3202D1Ev();
+Name_Map name_map_dd3202[] = {
+ NSPAIR(_ZN6dd3202C1Ev),
+ NSPAIR(_ZN6dd3202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+static Base_Class bases_dd3202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern void _ZN6dd32023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd3202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3202[];
+static VTT_ENTRY vtt_dd3202[] = {
+ {&(_ZTV6dd3202[3]), 3,10},
+ {&(_ZTV6dd3202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static VTBL_ENTRY alt_thunk_names815[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3202 = { "dd3202", // class name
+ bases_dd3202, 3,
+ &(vtc_dd3202[0]), // expected_vtbl_contents
+ &(vtt_dd3202[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3202),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names815,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03202 : dd3202 {
+ int e;
+ ~ee03202(); // tgen
+ ee03202(); // tgen
+};
+//SIG(1 ee03202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03202 ::~ee03202(){ note_dtor("ee03202", this);} // tgen
+ee03202 ::ee03202(){ note_ctor("ee03202", this);} // tgen
+
+static void Test_ee03202()
+{
+ extern Class_Descriptor cd_ee03202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03202, buf);
+ ee03202 *dp, &lv = *(dp=new (buf) ee03202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee03202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee03202");
+ check_base_class_offset(lv, (cc202*)(dd3202*), ABISELECT(16,12), "ee03202");
+ check_base_class_offset(lv, (dd3202*), 0, "ee03202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03202.e");
+ test_class_info(&lv, &cd_ee03202);
+ dp->~ee03202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03202(Test_ee03202, "ee03202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03202C1Ev();
+extern void _ZN7ee03202D1Ev();
+Name_Map name_map_ee03202[] = {
+ NSPAIR(_ZN7ee03202C1Ev),
+ NSPAIR(_ZN7ee03202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd3202;
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static Base_Class bases_ee03202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03202[];
+extern void _ZN6dd32023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee03202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03202[];
+extern void _ZN6dd32023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3202__7ee03202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd3202__7ee03202[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee03202[] = {
+ {&(_ZTV7ee03202[3]), 3,10},
+ {&(_tg__ZTV6dd3202__7ee03202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd3202__7ee03202[4]), 4,6},
+ {&(_ZTV7ee03202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03202[];
+extern VTBL_ENTRY _ZTV7ee03202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03202[];
+static VTBL_ENTRY alt_thunk_names816[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03202 = { "ee03202", // class name
+ bases_ee03202, 4,
+ &(vtc_ee03202[0]), // expected_vtbl_contents
+ &(vtt_ee03202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names816,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13202 : virtual dd3202 {
+ int e;
+ ~ee13202(); // tgen
+ ee13202(); // tgen
+};
+//SIG(1 ee13202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13202 ::~ee13202(){ note_dtor("ee13202", this);} // tgen
+ee13202 ::ee13202(){ note_ctor("ee13202", this);} // tgen
+
+static void Test_ee13202()
+{
+ extern Class_Descriptor cd_ee13202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13202, buf);
+ ee13202 *dp, &lv = *(dp=new (buf) ee13202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee13202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee13202");
+ check_base_class_offset(lv, (cc202*)(dd3202*), ABISELECT(32,16), "ee13202");
+ check_base_class_offset(lv, (dd3202*), ABISELECT(16,8), "ee13202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13202.e");
+ test_class_info(&lv, &cd_ee13202);
+ dp->~ee13202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13202(Test_ee13202, "ee13202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13202C1Ev();
+extern void _ZN7ee13202D1Ev();
+Name_Map name_map_ee13202[] = {
+ NSPAIR(_ZN7ee13202C1Ev),
+ NSPAIR(_ZN7ee13202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd3202;
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static Base_Class bases_ee13202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13202[];
+extern void _ZN6dd32023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee13202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13202[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13202[];
+extern void _ZN6dd32023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3202__7ee13202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd3202__7ee13202[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee13202[] = {
+ {&(_ZTV7ee13202[4]), 4,15},
+ {&(_ZTV7ee13202[8]), 8,15},
+ {&(_ZTV7ee13202[13]), 13,15},
+ {&(_tg__ZTV6dd3202__7ee13202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd3202__7ee13202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13202[];
+extern VTBL_ENTRY _ZTV7ee13202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13202[];
+static VTBL_ENTRY alt_thunk_names817[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13202 = { "ee13202", // class name
+ bases_ee13202, 4,
+ &(vtc_ee13202[0]), // expected_vtbl_contents
+ &(vtt_ee13202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13202),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names817,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23202 : dd3202 {
+ int e;
+ virtual void foo(); // _ZN7ee232023fooEv
+ ~ee23202(); // tgen
+ ee23202(); // tgen
+};
+//SIG(1 ee23202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23202 ::foo(){vfunc_called(this, "_ZN7ee232023fooEv");}
+ee23202 ::~ee23202(){ note_dtor("ee23202", this);} // tgen
+ee23202 ::ee23202(){ note_ctor("ee23202", this);} // tgen
+
+static void Test_ee23202()
+{
+ extern Class_Descriptor cd_ee23202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23202, buf);
+ ee23202 *dp, &lv = *(dp=new (buf) ee23202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee23202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee23202");
+ check_base_class_offset(lv, (cc202*)(dd3202*), ABISELECT(16,12), "ee23202");
+ check_base_class_offset(lv, (dd3202*), 0, "ee23202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23202.e");
+ test_class_info(&lv, &cd_ee23202);
+ dp->~ee23202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23202(Test_ee23202, "ee23202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23202C1Ev();
+extern void _ZN7ee23202D1Ev();
+Name_Map name_map_ee23202[] = {
+ NSPAIR(_ZN7ee23202C1Ev),
+ NSPAIR(_ZN7ee23202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd3202;
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static Base_Class bases_ee23202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23202[];
+extern void _ZN7ee232023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee232023fooEv,_ZTv0_n12_N7ee232023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232023fooEv,_ZThn12_N7ee232023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee23202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23202[0]),
+ (VTBL_ENTRY)&_ZN7ee232023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232023fooEv,_ZTv0_n12_N7ee232023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23202[];
+extern void _ZN6dd32023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3202__7ee23202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd3202__7ee23202[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee23202[] = {
+ {&(_ZTV7ee23202[3]), 3,10},
+ {&(_tg__ZTV6dd3202__7ee23202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd3202__7ee23202[4]), 4,6},
+ {&(_ZTV7ee23202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23202[];
+extern VTBL_ENTRY _ZTV7ee23202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23202[];
+static VTBL_ENTRY alt_thunk_names818[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232023fooEv,_ZTv0_n12_N7ee232023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232023fooEv,_ZThn12_N7ee232023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23202 = { "ee23202", // class name
+ bases_ee23202, 4,
+ &(vtc_ee23202[0]), // expected_vtbl_contents
+ &(vtt_ee23202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names818,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33202 : virtual dd3202 {
+ int e;
+ virtual void foo(); // _ZN7ee332023fooEv
+ ~ee33202(); // tgen
+ ee33202(); // tgen
+};
+//SIG(1 ee33202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33202 ::foo(){vfunc_called(this, "_ZN7ee332023fooEv");}
+ee33202 ::~ee33202(){ note_dtor("ee33202", this);} // tgen
+ee33202 ::ee33202(){ note_ctor("ee33202", this);} // tgen
+
+static void Test_ee33202()
+{
+ extern Class_Descriptor cd_ee33202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33202, buf);
+ ee33202 *dp, &lv = *(dp=new (buf) ee33202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee33202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee33202");
+ check_base_class_offset(lv, (cc202*)(dd3202*), ABISELECT(32,16), "ee33202");
+ check_base_class_offset(lv, (dd3202*), ABISELECT(16,8), "ee33202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33202.e");
+ test_class_info(&lv, &cd_ee33202);
+ dp->~ee33202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33202(Test_ee33202, "ee33202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33202C1Ev();
+extern void _ZN7ee33202D1Ev();
+Name_Map name_map_ee33202[] = {
+ NSPAIR(_ZN7ee33202C1Ev),
+ NSPAIR(_ZN7ee33202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd3202;
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static Base_Class bases_ee33202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33202[];
+extern void _ZN7ee332023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee332023fooEv,_ZTv0_n16_N7ee332023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332023fooEv,_ZThn8_N7ee332023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332023fooEv,_ZTv0_n12_N7ee332023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332023fooEv,_ZThn16_N7ee332023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee33202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33202[0]),
+ (VTBL_ENTRY)&_ZN7ee332023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee332023fooEv,_ZTv0_n16_N7ee332023fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332023fooEv,_ZTv0_n12_N7ee332023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33202[];
+extern void _ZN6dd32023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3202__7ee33202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd3202__7ee33202[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee33202[] = {
+ {&(_ZTV7ee33202[4]), 4,16},
+ {&(_ZTV7ee33202[9]), 9,16},
+ {&(_ZTV7ee33202[14]), 14,16},
+ {&(_tg__ZTV6dd3202__7ee33202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd3202__7ee33202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33202[];
+extern VTBL_ENTRY _ZTV7ee33202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33202[];
+static VTBL_ENTRY alt_thunk_names819[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332023fooEv,_ZTv0_n12_N7ee332023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332023fooEv,_ZThn16_N7ee332023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee332023fooEv,_ZTv0_n16_N7ee332023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332023fooEv,_ZThn8_N7ee332023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33202 = { "ee33202", // class name
+ bases_ee33202, 4,
+ &(vtc_ee33202[0]), // expected_vtbl_contents
+ &(vtt_ee33202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33202),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names819,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43202 : dd3202 {
+ int e;
+ virtual void bar(); // _ZN7ee432023barEv
+ ~ee43202(); // tgen
+ ee43202(); // tgen
+};
+//SIG(1 ee43202) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43202 ::bar(){vfunc_called(this, "_ZN7ee432023barEv");}
+ee43202 ::~ee43202(){ note_dtor("ee43202", this);} // tgen
+ee43202 ::ee43202(){ note_ctor("ee43202", this);} // tgen
+
+static void Test_ee43202()
+{
+ extern Class_Descriptor cd_ee43202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43202, buf);
+ ee43202 *dp, &lv = *(dp=new (buf) ee43202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee43202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee43202");
+ check_base_class_offset(lv, (cc202*)(dd3202*), ABISELECT(16,12), "ee43202");
+ check_base_class_offset(lv, (dd3202*), 0, "ee43202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43202.e");
+ test_class_info(&lv, &cd_ee43202);
+ dp->~ee43202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43202(Test_ee43202, "ee43202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43202C1Ev();
+extern void _ZN7ee43202D1Ev();
+Name_Map name_map_ee43202[] = {
+ NSPAIR(_ZN7ee43202C1Ev),
+ NSPAIR(_ZN7ee43202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd3202;
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static Base_Class bases_ee43202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43202[];
+extern void _ZN6dd32023fooEv();
+extern void _ZN7ee432023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee432023barEv,_ZTv0_n16_N7ee432023barEv)();
+extern void ABISELECT(_ZThn16_N7ee432023barEv,_ZThn12_N7ee432023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+ (VTBL_ENTRY)&_ZN7ee432023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee432023barEv,_ZTv0_n16_N7ee432023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43202[];
+extern void _ZN6dd32023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3202__7ee43202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd3202__7ee43202[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee43202[] = {
+ {&(_ZTV7ee43202[3]), 3,11},
+ {&(_tg__ZTV6dd3202__7ee43202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd3202__7ee43202[4]), 4,6},
+ {&(_ZTV7ee43202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43202[];
+extern VTBL_ENTRY _ZTV7ee43202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43202[];
+static VTBL_ENTRY alt_thunk_names820[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee432023barEv,_ZTv0_n16_N7ee432023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee432023barEv,_ZThn12_N7ee432023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43202 = { "ee43202", // class name
+ bases_ee43202, 4,
+ &(vtc_ee43202[0]), // expected_vtbl_contents
+ &(vtt_ee43202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names820,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53202 : virtual dd3202 {
+ int e;
+ virtual void bar(); // _ZN7ee532023barEv
+ ~ee53202(); // tgen
+ ee53202(); // tgen
+};
+//SIG(1 ee53202) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53202 ::bar(){vfunc_called(this, "_ZN7ee532023barEv");}
+ee53202 ::~ee53202(){ note_dtor("ee53202", this);} // tgen
+ee53202 ::ee53202(){ note_ctor("ee53202", this);} // tgen
+
+static void Test_ee53202()
+{
+ extern Class_Descriptor cd_ee53202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53202, buf);
+ ee53202 *dp, &lv = *(dp=new (buf) ee53202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee53202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee53202");
+ check_base_class_offset(lv, (cc202*)(dd3202*), ABISELECT(32,16), "ee53202");
+ check_base_class_offset(lv, (dd3202*), ABISELECT(16,8), "ee53202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53202.e");
+ test_class_info(&lv, &cd_ee53202);
+ dp->~ee53202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53202(Test_ee53202, "ee53202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53202C1Ev();
+extern void _ZN7ee53202D1Ev();
+Name_Map name_map_ee53202[] = {
+ NSPAIR(_ZN7ee53202C1Ev),
+ NSPAIR(_ZN7ee53202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd3202;
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static Base_Class bases_ee53202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53202[];
+extern void _ZN7ee532023barEv();
+extern void _ZN6dd32023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee532023barEv,_ZTv0_n16_N7ee532023barEv)();
+extern void ABISELECT(_ZThn32_N7ee532023barEv,_ZThn16_N7ee532023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53202[0]),
+ (VTBL_ENTRY)&_ZN7ee532023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee532023barEv,_ZTv0_n16_N7ee532023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53202[];
+extern void _ZN6dd32023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3202__7ee53202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd3202__7ee53202[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee53202[] = {
+ {&(_ZTV7ee53202[4]), 4,16},
+ {&(_ZTV7ee53202[9]), 9,16},
+ {&(_ZTV7ee53202[14]), 14,16},
+ {&(_tg__ZTV6dd3202__7ee53202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd3202__7ee53202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53202[];
+extern VTBL_ENTRY _ZTV7ee53202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53202[];
+static VTBL_ENTRY alt_thunk_names821[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee532023barEv,_ZTv0_n16_N7ee532023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee532023barEv,_ZThn16_N7ee532023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53202 = { "ee53202", // class name
+ bases_ee53202, 4,
+ &(vtc_ee53202[0]), // expected_vtbl_contents
+ &(vtt_ee53202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53202),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names821,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63202 : dd3202 {
+ int e;
+ virtual void foo(); // _ZN7ee632023fooEv
+ virtual void bar(); // _ZN7ee632023barEv
+ ~ee63202(); // tgen
+ ee63202(); // tgen
+};
+//SIG(1 ee63202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63202 ::foo(){vfunc_called(this, "_ZN7ee632023fooEv");}
+void ee63202 ::bar(){vfunc_called(this, "_ZN7ee632023barEv");}
+ee63202 ::~ee63202(){ note_dtor("ee63202", this);} // tgen
+ee63202 ::ee63202(){ note_ctor("ee63202", this);} // tgen
+
+static void Test_ee63202()
+{
+ extern Class_Descriptor cd_ee63202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63202, buf);
+ ee63202 *dp, &lv = *(dp=new (buf) ee63202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee63202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee63202");
+ check_base_class_offset(lv, (cc202*)(dd3202*), ABISELECT(16,12), "ee63202");
+ check_base_class_offset(lv, (dd3202*), 0, "ee63202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63202.e");
+ test_class_info(&lv, &cd_ee63202);
+ dp->~ee63202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63202(Test_ee63202, "ee63202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63202C1Ev();
+extern void _ZN7ee63202D1Ev();
+Name_Map name_map_ee63202[] = {
+ NSPAIR(_ZN7ee63202C1Ev),
+ NSPAIR(_ZN7ee63202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd3202;
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static Base_Class bases_ee63202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63202[];
+extern void _ZN7ee632023fooEv();
+extern void _ZN7ee632023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee632023fooEv,_ZTv0_n12_N7ee632023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632023fooEv,_ZThn12_N7ee632023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee632023barEv,_ZTv0_n16_N7ee632023barEv)();
+extern void ABISELECT(_ZThn16_N7ee632023barEv,_ZThn12_N7ee632023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63202[0]),
+ (VTBL_ENTRY)&_ZN7ee632023fooEv,
+ (VTBL_ENTRY)&_ZN7ee632023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632023fooEv,_ZTv0_n12_N7ee632023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632023barEv,_ZTv0_n16_N7ee632023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63202[];
+extern void _ZN6dd32023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3202__7ee63202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd3202__7ee63202[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee63202[] = {
+ {&(_ZTV7ee63202[3]), 3,11},
+ {&(_tg__ZTV6dd3202__7ee63202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd3202__7ee63202[4]), 4,6},
+ {&(_ZTV7ee63202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63202[];
+extern VTBL_ENTRY _ZTV7ee63202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63202[];
+static VTBL_ENTRY alt_thunk_names822[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn12_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee632023barEv,_ZTv0_n16_N7ee632023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632023barEv,_ZThn12_N7ee632023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632023fooEv,_ZTv0_n12_N7ee632023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632023fooEv,_ZThn12_N7ee632023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63202 = { "ee63202", // class name
+ bases_ee63202, 4,
+ &(vtc_ee63202[0]), // expected_vtbl_contents
+ &(vtt_ee63202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names822,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73202 : virtual dd3202 {
+ int e;
+ virtual void foo(); // _ZN7ee732023fooEv
+ virtual void bar(); // _ZN7ee732023barEv
+ ~ee73202(); // tgen
+ ee73202(); // tgen
+};
+//SIG(1 ee73202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73202 ::foo(){vfunc_called(this, "_ZN7ee732023fooEv");}
+void ee73202 ::bar(){vfunc_called(this, "_ZN7ee732023barEv");}
+ee73202 ::~ee73202(){ note_dtor("ee73202", this);} // tgen
+ee73202 ::ee73202(){ note_ctor("ee73202", this);} // tgen
+
+static void Test_ee73202()
+{
+ extern Class_Descriptor cd_ee73202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73202, buf);
+ ee73202 *dp, &lv = *(dp=new (buf) ee73202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee73202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee73202");
+ check_base_class_offset(lv, (cc202*)(dd3202*), ABISELECT(32,16), "ee73202");
+ check_base_class_offset(lv, (dd3202*), ABISELECT(16,8), "ee73202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73202.e");
+ test_class_info(&lv, &cd_ee73202);
+ dp->~ee73202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73202(Test_ee73202, "ee73202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73202C1Ev();
+extern void _ZN7ee73202D1Ev();
+Name_Map name_map_ee73202[] = {
+ NSPAIR(_ZN7ee73202C1Ev),
+ NSPAIR(_ZN7ee73202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd3202;
+extern VTBL_ENTRY _ZTI6dd3202[];
+extern VTBL_ENTRY _ZTV6dd3202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3202[];
+static Base_Class bases_ee73202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3202, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73202[];
+extern void _ZN7ee732023fooEv();
+extern void _ZN7ee732023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee732023fooEv,_ZTv0_n16_N7ee732023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732023fooEv,_ZThn8_N7ee732023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732023fooEv,_ZTv0_n12_N7ee732023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732023fooEv,_ZThn16_N7ee732023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732023barEv,_ZTv0_n16_N7ee732023barEv)();
+extern void ABISELECT(_ZThn32_N7ee732023barEv,_ZThn16_N7ee732023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73202[0]),
+ (VTBL_ENTRY)&_ZN7ee732023fooEv,
+ (VTBL_ENTRY)&_ZN7ee732023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732023fooEv,_ZTv0_n16_N7ee732023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732023fooEv,_ZTv0_n12_N7ee732023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732023barEv,_ZTv0_n16_N7ee732023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73202[];
+extern void _ZN6dd32023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3202__7ee73202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&_ZN6dd32023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV5cc202__6dd3202__7ee73202[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee73202[] = {
+ {&(_ZTV7ee73202[4]), 4,17},
+ {&(_ZTV7ee73202[10]), 10,17},
+ {&(_ZTV7ee73202[15]), 15,17},
+ {&(_tg__ZTV6dd3202__7ee73202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd3202__7ee73202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73202[];
+extern VTBL_ENTRY _ZTV7ee73202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73202[];
+static VTBL_ENTRY alt_thunk_names823[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32023fooEv,_ZTv0_n12_N6dd32023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32023fooEv,_ZThn8_N6dd32023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732023barEv,_ZTv0_n16_N7ee732023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732023barEv,_ZThn16_N7ee732023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732023fooEv,_ZTv0_n12_N7ee732023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732023fooEv,_ZThn16_N7ee732023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732023fooEv,_ZTv0_n16_N7ee732023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732023fooEv,_ZThn8_N7ee732023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73202 = { "ee73202", // class name
+ bases_ee73202, 4,
+ &(vtc_ee73202[0]), // expected_vtbl_contents
+ &(vtt_ee73202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73202),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names823,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4202 : cc202 {
+ int d;
+ virtual void bar(); // _ZN6dd42023barEv
+ ~dd4202(); // tgen
+ dd4202(); // tgen
+};
+//SIG(-1 dd4202) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd4202 ::bar(){vfunc_called(this, "_ZN6dd42023barEv");}
+dd4202 ::~dd4202(){ note_dtor("dd4202", this);} // tgen
+dd4202 ::dd4202(){ note_ctor("dd4202", this);} // tgen
+
+static void Test_dd4202()
+{
+ extern Class_Descriptor cd_dd4202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4202, buf);
+ dd4202 *dp, &lv = *(dp=new (buf) dd4202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), 0, "dd4202");
+ check_base_class_offset(lv, (bb02*)(cc202*), 0, "dd4202");
+ check_base_class_offset(lv, (cc202*), 0, "dd4202");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4202.d");
+ test_class_info(&lv, &cd_dd4202);
+ dp->~dd4202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4202(Test_dd4202, "dd4202", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4202C1Ev();
+extern void _ZN6dd4202D1Ev();
+Name_Map name_map_dd4202[] = {
+ NSPAIR(_ZN6dd4202C1Ev),
+ NSPAIR(_ZN6dd4202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+static Base_Class bases_dd4202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN6dd42023barEv();
+static VTBL_ENTRY vtc_dd4202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN6dd42023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+Class_Descriptor cd_dd4202 = { "dd4202", // class name
+ bases_dd4202, 3,
+ &(vtc_dd4202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04202 : dd4202 {
+ int e;
+ ~ee04202(); // tgen
+ ee04202(); // tgen
+};
+//SIG(1 ee04202) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04202 ::~ee04202(){ note_dtor("ee04202", this);} // tgen
+ee04202 ::ee04202(){ note_ctor("ee04202", this);} // tgen
+
+static void Test_ee04202()
+{
+ extern Class_Descriptor cd_ee04202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04202, buf);
+ ee04202 *dp, &lv = *(dp=new (buf) ee04202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd4202*), 0, "ee04202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd4202*), 0, "ee04202");
+ check_base_class_offset(lv, (cc202*)(dd4202*), 0, "ee04202");
+ check_base_class_offset(lv, (dd4202*), 0, "ee04202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04202.e");
+ test_class_info(&lv, &cd_ee04202);
+ dp->~ee04202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04202(Test_ee04202, "ee04202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04202C1Ev();
+extern void _ZN7ee04202D1Ev();
+Name_Map name_map_ee04202[] = {
+ NSPAIR(_ZN7ee04202C1Ev),
+ NSPAIR(_ZN7ee04202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd4202;
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+static Base_Class bases_ee04202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4202, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN6dd42023barEv();
+static VTBL_ENTRY vtc_ee04202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN6dd42023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04202[];
+extern VTBL_ENTRY _ZTV7ee04202[];
+Class_Descriptor cd_ee04202 = { "ee04202", // class name
+ bases_ee04202, 4,
+ &(vtc_ee04202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14202 : virtual dd4202 {
+ int e;
+ ~ee14202(); // tgen
+ ee14202(); // tgen
+};
+//SIG(1 ee14202) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14202 ::~ee14202(){ note_dtor("ee14202", this);} // tgen
+ee14202 ::ee14202(){ note_ctor("ee14202", this);} // tgen
+
+static void Test_ee14202()
+{
+ extern Class_Descriptor cd_ee14202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14202, buf);
+ ee14202 *dp, &lv = *(dp=new (buf) ee14202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd4202*), ABISELECT(16,8), "ee14202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd4202*), ABISELECT(16,8), "ee14202");
+ check_base_class_offset(lv, (cc202*)(dd4202*), ABISELECT(16,8), "ee14202");
+ check_base_class_offset(lv, (dd4202*), ABISELECT(16,8), "ee14202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14202.e");
+ test_class_info(&lv, &cd_ee14202);
+ dp->~ee14202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14202(Test_ee14202, "ee14202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14202C1Ev();
+extern void _ZN7ee14202D1Ev();
+Name_Map name_map_ee14202[] = {
+ NSPAIR(_ZN7ee14202C1Ev),
+ NSPAIR(_ZN7ee14202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd4202;
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+static Base_Class bases_ee14202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4202, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN6dd42023barEv();
+static VTBL_ENTRY vtc_ee14202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14202[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN6dd42023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14202[];
+static VTT_ENTRY vtt_ee14202[] = {
+ {&(_ZTV7ee14202[3]), 3,9},
+ {&(_ZTV7ee14202[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14202[];
+extern VTBL_ENTRY _ZTV7ee14202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14202[];
+Class_Descriptor cd_ee14202 = { "ee14202", // class name
+ bases_ee14202, 4,
+ &(vtc_ee14202[0]), // expected_vtbl_contents
+ &(vtt_ee14202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14202),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24202 : dd4202 {
+ int e;
+ virtual void foo(); // _ZN7ee242023fooEv
+ ~ee24202(); // tgen
+ ee24202(); // tgen
+};
+//SIG(1 ee24202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24202 ::foo(){vfunc_called(this, "_ZN7ee242023fooEv");}
+ee24202 ::~ee24202(){ note_dtor("ee24202", this);} // tgen
+ee24202 ::ee24202(){ note_ctor("ee24202", this);} // tgen
+
+static void Test_ee24202()
+{
+ extern Class_Descriptor cd_ee24202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24202, buf);
+ ee24202 *dp, &lv = *(dp=new (buf) ee24202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd4202*), 0, "ee24202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd4202*), 0, "ee24202");
+ check_base_class_offset(lv, (cc202*)(dd4202*), 0, "ee24202");
+ check_base_class_offset(lv, (dd4202*), 0, "ee24202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24202.e");
+ test_class_info(&lv, &cd_ee24202);
+ dp->~ee24202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24202(Test_ee24202, "ee24202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24202C1Ev();
+extern void _ZN7ee24202D1Ev();
+Name_Map name_map_ee24202[] = {
+ NSPAIR(_ZN7ee24202C1Ev),
+ NSPAIR(_ZN7ee24202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd4202;
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+static Base_Class bases_ee24202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24202[];
+extern void _ZN7ee242023fooEv();
+extern void _ZN6dd42023barEv();
+static VTBL_ENTRY vtc_ee24202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24202[0]),
+ (VTBL_ENTRY)&_ZN7ee242023fooEv,
+ (VTBL_ENTRY)&_ZN6dd42023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24202[];
+extern VTBL_ENTRY _ZTV7ee24202[];
+Class_Descriptor cd_ee24202 = { "ee24202", // class name
+ bases_ee24202, 4,
+ &(vtc_ee24202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34202 : virtual dd4202 {
+ int e;
+ virtual void foo(); // _ZN7ee342023fooEv
+ ~ee34202(); // tgen
+ ee34202(); // tgen
+};
+//SIG(1 ee34202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34202 ::foo(){vfunc_called(this, "_ZN7ee342023fooEv");}
+ee34202 ::~ee34202(){ note_dtor("ee34202", this);} // tgen
+ee34202 ::ee34202(){ note_ctor("ee34202", this);} // tgen
+
+static void Test_ee34202()
+{
+ extern Class_Descriptor cd_ee34202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34202, buf);
+ ee34202 *dp, &lv = *(dp=new (buf) ee34202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd4202*), ABISELECT(16,8), "ee34202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd4202*), ABISELECT(16,8), "ee34202");
+ check_base_class_offset(lv, (cc202*)(dd4202*), ABISELECT(16,8), "ee34202");
+ check_base_class_offset(lv, (dd4202*), ABISELECT(16,8), "ee34202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34202.e");
+ test_class_info(&lv, &cd_ee34202);
+ dp->~ee34202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34202(Test_ee34202, "ee34202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34202C1Ev();
+extern void _ZN7ee34202D1Ev();
+Name_Map name_map_ee34202[] = {
+ NSPAIR(_ZN7ee34202C1Ev),
+ NSPAIR(_ZN7ee34202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd4202;
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+static Base_Class bases_ee34202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34202[];
+extern void _ZN7ee342023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee342023fooEv,_ZTv0_n12_N7ee342023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342023fooEv,_ZThn8_N7ee342023fooEv)() __attribute__((weak));
+extern void _ZN6dd42023barEv();
+static VTBL_ENTRY vtc_ee34202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34202[0]),
+ (VTBL_ENTRY)&_ZN7ee342023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342023fooEv,_ZTv0_n12_N7ee342023fooEv),
+ (VTBL_ENTRY)&_ZN6dd42023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34202[];
+static VTT_ENTRY vtt_ee34202[] = {
+ {&(_ZTV7ee34202[3]), 3,10},
+ {&(_ZTV7ee34202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34202[];
+extern VTBL_ENTRY _ZTV7ee34202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34202[];
+static VTBL_ENTRY alt_thunk_names824[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342023fooEv,_ZTv0_n12_N7ee342023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342023fooEv,_ZThn8_N7ee342023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34202 = { "ee34202", // class name
+ bases_ee34202, 4,
+ &(vtc_ee34202[0]), // expected_vtbl_contents
+ &(vtt_ee34202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names824,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44202 : dd4202 {
+ int e;
+ virtual void bar(); // _ZN7ee442023barEv
+ ~ee44202(); // tgen
+ ee44202(); // tgen
+};
+//SIG(1 ee44202) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44202 ::bar(){vfunc_called(this, "_ZN7ee442023barEv");}
+ee44202 ::~ee44202(){ note_dtor("ee44202", this);} // tgen
+ee44202 ::ee44202(){ note_ctor("ee44202", this);} // tgen
+
+static void Test_ee44202()
+{
+ extern Class_Descriptor cd_ee44202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44202, buf);
+ ee44202 *dp, &lv = *(dp=new (buf) ee44202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd4202*), 0, "ee44202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd4202*), 0, "ee44202");
+ check_base_class_offset(lv, (cc202*)(dd4202*), 0, "ee44202");
+ check_base_class_offset(lv, (dd4202*), 0, "ee44202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44202.e");
+ test_class_info(&lv, &cd_ee44202);
+ dp->~ee44202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44202(Test_ee44202, "ee44202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44202C1Ev();
+extern void _ZN7ee44202D1Ev();
+Name_Map name_map_ee44202[] = {
+ NSPAIR(_ZN7ee44202C1Ev),
+ NSPAIR(_ZN7ee44202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd4202;
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+static Base_Class bases_ee44202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44202[];
+extern void _ZN5cc2023fooEv();
+extern void _ZN7ee442023barEv();
+static VTBL_ENTRY vtc_ee44202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&_ZN7ee442023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44202[];
+extern VTBL_ENTRY _ZTV7ee44202[];
+Class_Descriptor cd_ee44202 = { "ee44202", // class name
+ bases_ee44202, 4,
+ &(vtc_ee44202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54202 : virtual dd4202 {
+ int e;
+ virtual void bar(); // _ZN7ee542023barEv
+ ~ee54202(); // tgen
+ ee54202(); // tgen
+};
+//SIG(1 ee54202) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54202 ::bar(){vfunc_called(this, "_ZN7ee542023barEv");}
+ee54202 ::~ee54202(){ note_dtor("ee54202", this);} // tgen
+ee54202 ::ee54202(){ note_ctor("ee54202", this);} // tgen
+
+static void Test_ee54202()
+{
+ extern Class_Descriptor cd_ee54202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54202, buf);
+ ee54202 *dp, &lv = *(dp=new (buf) ee54202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd4202*), ABISELECT(16,8), "ee54202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd4202*), ABISELECT(16,8), "ee54202");
+ check_base_class_offset(lv, (cc202*)(dd4202*), ABISELECT(16,8), "ee54202");
+ check_base_class_offset(lv, (dd4202*), ABISELECT(16,8), "ee54202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54202.e");
+ test_class_info(&lv, &cd_ee54202);
+ dp->~ee54202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54202(Test_ee54202, "ee54202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54202C1Ev();
+extern void _ZN7ee54202D1Ev();
+Name_Map name_map_ee54202[] = {
+ NSPAIR(_ZN7ee54202C1Ev),
+ NSPAIR(_ZN7ee54202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd4202;
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+static Base_Class bases_ee54202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54202[];
+extern void _ZN7ee542023barEv();
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542023barEv,_ZTv0_n16_N7ee542023barEv)();
+extern void ABISELECT(_ZThn16_N7ee542023barEv,_ZThn8_N7ee542023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54202[0]),
+ (VTBL_ENTRY)&_ZN7ee542023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542023barEv,_ZTv0_n16_N7ee542023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54202[];
+static VTT_ENTRY vtt_ee54202[] = {
+ {&(_ZTV7ee54202[3]), 3,10},
+ {&(_ZTV7ee54202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54202[];
+extern VTBL_ENTRY _ZTV7ee54202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54202[];
+static VTBL_ENTRY alt_thunk_names825[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542023barEv,_ZTv0_n16_N7ee542023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542023barEv,_ZThn8_N7ee542023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54202 = { "ee54202", // class name
+ bases_ee54202, 4,
+ &(vtc_ee54202[0]), // expected_vtbl_contents
+ &(vtt_ee54202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names825,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64202 : dd4202 {
+ int e;
+ virtual void foo(); // _ZN7ee642023fooEv
+ virtual void bar(); // _ZN7ee642023barEv
+ ~ee64202(); // tgen
+ ee64202(); // tgen
+};
+//SIG(1 ee64202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64202 ::foo(){vfunc_called(this, "_ZN7ee642023fooEv");}
+void ee64202 ::bar(){vfunc_called(this, "_ZN7ee642023barEv");}
+ee64202 ::~ee64202(){ note_dtor("ee64202", this);} // tgen
+ee64202 ::ee64202(){ note_ctor("ee64202", this);} // tgen
+
+static void Test_ee64202()
+{
+ extern Class_Descriptor cd_ee64202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64202, buf);
+ ee64202 *dp, &lv = *(dp=new (buf) ee64202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd4202*), 0, "ee64202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd4202*), 0, "ee64202");
+ check_base_class_offset(lv, (cc202*)(dd4202*), 0, "ee64202");
+ check_base_class_offset(lv, (dd4202*), 0, "ee64202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64202.e");
+ test_class_info(&lv, &cd_ee64202);
+ dp->~ee64202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64202(Test_ee64202, "ee64202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64202C1Ev();
+extern void _ZN7ee64202D1Ev();
+Name_Map name_map_ee64202[] = {
+ NSPAIR(_ZN7ee64202C1Ev),
+ NSPAIR(_ZN7ee64202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd4202;
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+static Base_Class bases_ee64202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64202[];
+extern void _ZN7ee642023fooEv();
+extern void _ZN7ee642023barEv();
+static VTBL_ENTRY vtc_ee64202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64202[0]),
+ (VTBL_ENTRY)&_ZN7ee642023fooEv,
+ (VTBL_ENTRY)&_ZN7ee642023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64202[];
+extern VTBL_ENTRY _ZTV7ee64202[];
+Class_Descriptor cd_ee64202 = { "ee64202", // class name
+ bases_ee64202, 4,
+ &(vtc_ee64202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74202 : virtual dd4202 {
+ int e;
+ virtual void foo(); // _ZN7ee742023fooEv
+ virtual void bar(); // _ZN7ee742023barEv
+ ~ee74202(); // tgen
+ ee74202(); // tgen
+};
+//SIG(1 ee74202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74202 ::foo(){vfunc_called(this, "_ZN7ee742023fooEv");}
+void ee74202 ::bar(){vfunc_called(this, "_ZN7ee742023barEv");}
+ee74202 ::~ee74202(){ note_dtor("ee74202", this);} // tgen
+ee74202 ::ee74202(){ note_ctor("ee74202", this);} // tgen
+
+static void Test_ee74202()
+{
+ extern Class_Descriptor cd_ee74202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74202, buf);
+ ee74202 *dp, &lv = *(dp=new (buf) ee74202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd4202*), ABISELECT(16,8), "ee74202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd4202*), ABISELECT(16,8), "ee74202");
+ check_base_class_offset(lv, (cc202*)(dd4202*), ABISELECT(16,8), "ee74202");
+ check_base_class_offset(lv, (dd4202*), ABISELECT(16,8), "ee74202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74202.e");
+ test_class_info(&lv, &cd_ee74202);
+ dp->~ee74202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74202(Test_ee74202, "ee74202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74202C1Ev();
+extern void _ZN7ee74202D1Ev();
+Name_Map name_map_ee74202[] = {
+ NSPAIR(_ZN7ee74202C1Ev),
+ NSPAIR(_ZN7ee74202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd4202;
+extern VTBL_ENTRY _ZTI6dd4202[];
+extern VTBL_ENTRY _ZTV6dd4202[];
+static Base_Class bases_ee74202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74202[];
+extern void _ZN7ee742023fooEv();
+extern void _ZN7ee742023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee742023fooEv,_ZTv0_n12_N7ee742023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742023fooEv,_ZThn8_N7ee742023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742023barEv,_ZTv0_n16_N7ee742023barEv)();
+extern void ABISELECT(_ZThn16_N7ee742023barEv,_ZThn8_N7ee742023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74202[0]),
+ (VTBL_ENTRY)&_ZN7ee742023fooEv,
+ (VTBL_ENTRY)&_ZN7ee742023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742023fooEv,_ZTv0_n12_N7ee742023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742023barEv,_ZTv0_n16_N7ee742023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74202[];
+static VTT_ENTRY vtt_ee74202[] = {
+ {&(_ZTV7ee74202[3]), 3,11},
+ {&(_ZTV7ee74202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74202[];
+extern VTBL_ENTRY _ZTV7ee74202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74202[];
+static VTBL_ENTRY alt_thunk_names826[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742023barEv,_ZTv0_n16_N7ee742023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742023barEv,_ZThn8_N7ee742023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742023fooEv,_ZTv0_n12_N7ee742023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742023fooEv,_ZThn8_N7ee742023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74202 = { "ee74202", // class name
+ bases_ee74202, 4,
+ &(vtc_ee74202[0]), // expected_vtbl_contents
+ &(vtt_ee74202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names826,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5202 : virtual cc202 {
+ int d;
+ virtual void bar(); // _ZN6dd52023barEv
+ ~dd5202(); // tgen
+ dd5202(); // tgen
+};
+//SIG(-1 dd5202) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd5202 ::bar(){vfunc_called(this, "_ZN6dd52023barEv");}
+dd5202 ::~dd5202(){ note_dtor("dd5202", this);} // tgen
+dd5202 ::dd5202(){ note_ctor("dd5202", this);} // tgen
+
+static void Test_dd5202()
+{
+ extern Class_Descriptor cd_dd5202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5202, buf);
+ dd5202 *dp, &lv = *(dp=new (buf) dd5202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,8), "dd5202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,8), "dd5202");
+ check_base_class_offset(lv, (cc202*), ABISELECT(16,8), "dd5202");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5202.d");
+ test_class_info(&lv, &cd_dd5202);
+ dp->~dd5202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5202(Test_dd5202, "dd5202", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5202C1Ev();
+extern void _ZN6dd5202D1Ev();
+Name_Map name_map_dd5202[] = {
+ NSPAIR(_ZN6dd5202C1Ev),
+ NSPAIR(_ZN6dd5202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+static Base_Class bases_dd5202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern void _ZN6dd52023barEv();
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5202[];
+static VTT_ENTRY vtt_dd5202[] = {
+ {&(_ZTV6dd5202[3]), 3,10},
+ {&(_ZTV6dd5202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static VTBL_ENTRY alt_thunk_names827[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5202 = { "dd5202", // class name
+ bases_dd5202, 3,
+ &(vtc_dd5202[0]), // expected_vtbl_contents
+ &(vtt_dd5202[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5202),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names827,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05202 : dd5202 {
+ int e;
+ ~ee05202(); // tgen
+ ee05202(); // tgen
+};
+//SIG(1 ee05202) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05202 ::~ee05202(){ note_dtor("ee05202", this);} // tgen
+ee05202 ::ee05202(){ note_ctor("ee05202", this);} // tgen
+
+static void Test_ee05202()
+{
+ extern Class_Descriptor cd_ee05202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05202, buf);
+ ee05202 *dp, &lv = *(dp=new (buf) ee05202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee05202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee05202");
+ check_base_class_offset(lv, (cc202*)(dd5202*), ABISELECT(16,12), "ee05202");
+ check_base_class_offset(lv, (dd5202*), 0, "ee05202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05202.e");
+ test_class_info(&lv, &cd_ee05202);
+ dp->~ee05202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05202(Test_ee05202, "ee05202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05202C1Ev();
+extern void _ZN7ee05202D1Ev();
+Name_Map name_map_ee05202[] = {
+ NSPAIR(_ZN7ee05202C1Ev),
+ NSPAIR(_ZN7ee05202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd5202;
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static Base_Class bases_ee05202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05202[];
+extern void _ZN6dd52023barEv();
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05202[];
+extern void _ZN6dd52023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5202__7ee05202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+};
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd5202__7ee05202[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+static VTT_ENTRY vtt_ee05202[] = {
+ {&(_ZTV7ee05202[3]), 3,10},
+ {&(_tg__ZTV6dd5202__7ee05202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd5202__7ee05202[4]), 4,6},
+ {&(_ZTV7ee05202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05202[];
+extern VTBL_ENTRY _ZTV7ee05202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05202[];
+static VTBL_ENTRY alt_thunk_names828[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05202 = { "ee05202", // class name
+ bases_ee05202, 4,
+ &(vtc_ee05202[0]), // expected_vtbl_contents
+ &(vtt_ee05202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names828,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15202 : virtual dd5202 {
+ int e;
+ ~ee15202(); // tgen
+ ee15202(); // tgen
+};
+//SIG(1 ee15202) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15202 ::~ee15202(){ note_dtor("ee15202", this);} // tgen
+ee15202 ::ee15202(){ note_ctor("ee15202", this);} // tgen
+
+static void Test_ee15202()
+{
+ extern Class_Descriptor cd_ee15202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15202, buf);
+ ee15202 *dp, &lv = *(dp=new (buf) ee15202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee15202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee15202");
+ check_base_class_offset(lv, (cc202*)(dd5202*), ABISELECT(32,16), "ee15202");
+ check_base_class_offset(lv, (dd5202*), ABISELECT(16,8), "ee15202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15202.e");
+ test_class_info(&lv, &cd_ee15202);
+ dp->~ee15202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15202(Test_ee15202, "ee15202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15202C1Ev();
+extern void _ZN7ee15202D1Ev();
+Name_Map name_map_ee15202[] = {
+ NSPAIR(_ZN7ee15202C1Ev),
+ NSPAIR(_ZN7ee15202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd5202;
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static Base_Class bases_ee15202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15202[];
+extern void _ZN6dd52023barEv();
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15202[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15202[];
+extern void _ZN6dd52023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5202__7ee15202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+};
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd5202__7ee15202[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+static VTT_ENTRY vtt_ee15202[] = {
+ {&(_ZTV7ee15202[4]), 4,15},
+ {&(_ZTV7ee15202[8]), 8,15},
+ {&(_ZTV7ee15202[13]), 13,15},
+ {&(_tg__ZTV6dd5202__7ee15202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd5202__7ee15202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15202[];
+extern VTBL_ENTRY _ZTV7ee15202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15202[];
+static VTBL_ENTRY alt_thunk_names829[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15202 = { "ee15202", // class name
+ bases_ee15202, 4,
+ &(vtc_ee15202[0]), // expected_vtbl_contents
+ &(vtt_ee15202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15202),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names829,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25202 : dd5202 {
+ int e;
+ virtual void foo(); // _ZN7ee252023fooEv
+ ~ee25202(); // tgen
+ ee25202(); // tgen
+};
+//SIG(1 ee25202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25202 ::foo(){vfunc_called(this, "_ZN7ee252023fooEv");}
+ee25202 ::~ee25202(){ note_dtor("ee25202", this);} // tgen
+ee25202 ::ee25202(){ note_ctor("ee25202", this);} // tgen
+
+static void Test_ee25202()
+{
+ extern Class_Descriptor cd_ee25202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25202, buf);
+ ee25202 *dp, &lv = *(dp=new (buf) ee25202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee25202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee25202");
+ check_base_class_offset(lv, (cc202*)(dd5202*), ABISELECT(16,12), "ee25202");
+ check_base_class_offset(lv, (dd5202*), 0, "ee25202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25202.e");
+ test_class_info(&lv, &cd_ee25202);
+ dp->~ee25202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25202(Test_ee25202, "ee25202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25202C1Ev();
+extern void _ZN7ee25202D1Ev();
+Name_Map name_map_ee25202[] = {
+ NSPAIR(_ZN7ee25202C1Ev),
+ NSPAIR(_ZN7ee25202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd5202;
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static Base_Class bases_ee25202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25202[];
+extern void _ZN6dd52023barEv();
+extern void _ZN7ee252023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee252023fooEv,_ZTv0_n12_N7ee252023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252023fooEv,_ZThn12_N7ee252023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+ (VTBL_ENTRY)&_ZN7ee252023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252023fooEv,_ZTv0_n12_N7ee252023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25202[];
+extern void _ZN6dd52023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5202__7ee25202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+};
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd5202__7ee25202[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+static VTT_ENTRY vtt_ee25202[] = {
+ {&(_ZTV7ee25202[3]), 3,11},
+ {&(_tg__ZTV6dd5202__7ee25202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd5202__7ee25202[4]), 4,6},
+ {&(_ZTV7ee25202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25202[];
+extern VTBL_ENTRY _ZTV7ee25202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25202[];
+static VTBL_ENTRY alt_thunk_names830[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252023fooEv,_ZTv0_n12_N7ee252023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252023fooEv,_ZThn12_N7ee252023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25202 = { "ee25202", // class name
+ bases_ee25202, 4,
+ &(vtc_ee25202[0]), // expected_vtbl_contents
+ &(vtt_ee25202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names830,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35202 : virtual dd5202 {
+ int e;
+ virtual void foo(); // _ZN7ee352023fooEv
+ ~ee35202(); // tgen
+ ee35202(); // tgen
+};
+//SIG(1 ee35202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35202 ::foo(){vfunc_called(this, "_ZN7ee352023fooEv");}
+ee35202 ::~ee35202(){ note_dtor("ee35202", this);} // tgen
+ee35202 ::ee35202(){ note_ctor("ee35202", this);} // tgen
+
+static void Test_ee35202()
+{
+ extern Class_Descriptor cd_ee35202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35202, buf);
+ ee35202 *dp, &lv = *(dp=new (buf) ee35202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee35202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee35202");
+ check_base_class_offset(lv, (cc202*)(dd5202*), ABISELECT(32,16), "ee35202");
+ check_base_class_offset(lv, (dd5202*), ABISELECT(16,8), "ee35202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35202.e");
+ test_class_info(&lv, &cd_ee35202);
+ dp->~ee35202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35202(Test_ee35202, "ee35202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35202C1Ev();
+extern void _ZN7ee35202D1Ev();
+Name_Map name_map_ee35202[] = {
+ NSPAIR(_ZN7ee35202C1Ev),
+ NSPAIR(_ZN7ee35202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd5202;
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static Base_Class bases_ee35202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35202[];
+extern void _ZN7ee352023fooEv();
+extern void _ZN6dd52023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee352023fooEv,_ZTv0_n12_N7ee352023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352023fooEv,_ZThn16_N7ee352023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35202[0]),
+ (VTBL_ENTRY)&_ZN7ee352023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352023fooEv,_ZTv0_n12_N7ee352023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35202[];
+extern void _ZN6dd52023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5202__7ee35202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+};
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd5202__7ee35202[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+static VTT_ENTRY vtt_ee35202[] = {
+ {&(_ZTV7ee35202[4]), 4,16},
+ {&(_ZTV7ee35202[9]), 9,16},
+ {&(_ZTV7ee35202[14]), 14,16},
+ {&(_tg__ZTV6dd5202__7ee35202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd5202__7ee35202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35202[];
+extern VTBL_ENTRY _ZTV7ee35202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35202[];
+static VTBL_ENTRY alt_thunk_names831[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352023fooEv,_ZTv0_n12_N7ee352023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352023fooEv,_ZThn16_N7ee352023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35202 = { "ee35202", // class name
+ bases_ee35202, 4,
+ &(vtc_ee35202[0]), // expected_vtbl_contents
+ &(vtt_ee35202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35202),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names831,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45202 : dd5202 {
+ int e;
+ virtual void bar(); // _ZN7ee452023barEv
+ ~ee45202(); // tgen
+ ee45202(); // tgen
+};
+//SIG(1 ee45202) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45202 ::bar(){vfunc_called(this, "_ZN7ee452023barEv");}
+ee45202 ::~ee45202(){ note_dtor("ee45202", this);} // tgen
+ee45202 ::ee45202(){ note_ctor("ee45202", this);} // tgen
+
+static void Test_ee45202()
+{
+ extern Class_Descriptor cd_ee45202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45202, buf);
+ ee45202 *dp, &lv = *(dp=new (buf) ee45202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee45202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee45202");
+ check_base_class_offset(lv, (cc202*)(dd5202*), ABISELECT(16,12), "ee45202");
+ check_base_class_offset(lv, (dd5202*), 0, "ee45202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45202.e");
+ test_class_info(&lv, &cd_ee45202);
+ dp->~ee45202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45202(Test_ee45202, "ee45202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45202C1Ev();
+extern void _ZN7ee45202D1Ev();
+Name_Map name_map_ee45202[] = {
+ NSPAIR(_ZN7ee45202C1Ev),
+ NSPAIR(_ZN7ee45202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd5202;
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static Base_Class bases_ee45202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45202[];
+extern void _ZN7ee452023barEv();
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee452023barEv,_ZTv0_n16_N7ee452023barEv)();
+extern void ABISELECT(_ZThn16_N7ee452023barEv,_ZThn12_N7ee452023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45202[0]),
+ (VTBL_ENTRY)&_ZN7ee452023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee452023barEv,_ZTv0_n16_N7ee452023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45202[];
+extern void _ZN6dd52023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5202__7ee45202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+};
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd5202__7ee45202[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+static VTT_ENTRY vtt_ee45202[] = {
+ {&(_ZTV7ee45202[3]), 3,10},
+ {&(_tg__ZTV6dd5202__7ee45202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd5202__7ee45202[4]), 4,6},
+ {&(_ZTV7ee45202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45202[];
+extern VTBL_ENTRY _ZTV7ee45202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45202[];
+static VTBL_ENTRY alt_thunk_names832[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee452023barEv,_ZTv0_n16_N7ee452023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee452023barEv,_ZThn12_N7ee452023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45202 = { "ee45202", // class name
+ bases_ee45202, 4,
+ &(vtc_ee45202[0]), // expected_vtbl_contents
+ &(vtt_ee45202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names832,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55202 : virtual dd5202 {
+ int e;
+ virtual void bar(); // _ZN7ee552023barEv
+ ~ee55202(); // tgen
+ ee55202(); // tgen
+};
+//SIG(1 ee55202) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55202 ::bar(){vfunc_called(this, "_ZN7ee552023barEv");}
+ee55202 ::~ee55202(){ note_dtor("ee55202", this);} // tgen
+ee55202 ::ee55202(){ note_ctor("ee55202", this);} // tgen
+
+static void Test_ee55202()
+{
+ extern Class_Descriptor cd_ee55202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55202, buf);
+ ee55202 *dp, &lv = *(dp=new (buf) ee55202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee55202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee55202");
+ check_base_class_offset(lv, (cc202*)(dd5202*), ABISELECT(32,16), "ee55202");
+ check_base_class_offset(lv, (dd5202*), ABISELECT(16,8), "ee55202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55202.e");
+ test_class_info(&lv, &cd_ee55202);
+ dp->~ee55202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55202(Test_ee55202, "ee55202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55202C1Ev();
+extern void _ZN7ee55202D1Ev();
+Name_Map name_map_ee55202[] = {
+ NSPAIR(_ZN7ee55202C1Ev),
+ NSPAIR(_ZN7ee55202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd5202;
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static Base_Class bases_ee55202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55202[];
+extern void _ZN7ee552023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552023barEv,_ZTv0_n16_N7ee552023barEv)();
+extern void ABISELECT(_ZThn16_N7ee552023barEv,_ZThn8_N7ee552023barEv)() __attribute__((weak));
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee552023barEv,_ZTv0_n16_N7ee552023barEv)();
+extern void ABISELECT(_ZThn32_N7ee552023barEv,_ZThn16_N7ee552023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55202[0]),
+ (VTBL_ENTRY)&_ZN7ee552023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552023barEv,_ZTv0_n16_N7ee552023barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552023barEv,_ZTv0_n16_N7ee552023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55202[];
+extern void _ZN6dd52023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5202__7ee55202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+};
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd5202__7ee55202[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+static VTT_ENTRY vtt_ee55202[] = {
+ {&(_ZTV7ee55202[4]), 4,16},
+ {&(_ZTV7ee55202[9]), 9,16},
+ {&(_ZTV7ee55202[14]), 14,16},
+ {&(_tg__ZTV6dd5202__7ee55202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd5202__7ee55202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55202[];
+extern VTBL_ENTRY _ZTV7ee55202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55202[];
+static VTBL_ENTRY alt_thunk_names833[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552023barEv,_ZTv0_n16_N7ee552023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee552023barEv,_ZThn16_N7ee552023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552023barEv,_ZThn8_N7ee552023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55202 = { "ee55202", // class name
+ bases_ee55202, 4,
+ &(vtc_ee55202[0]), // expected_vtbl_contents
+ &(vtt_ee55202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55202),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names833,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65202 : dd5202 {
+ int e;
+ virtual void foo(); // _ZN7ee652023fooEv
+ virtual void bar(); // _ZN7ee652023barEv
+ ~ee65202(); // tgen
+ ee65202(); // tgen
+};
+//SIG(1 ee65202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65202 ::foo(){vfunc_called(this, "_ZN7ee652023fooEv");}
+void ee65202 ::bar(){vfunc_called(this, "_ZN7ee652023barEv");}
+ee65202 ::~ee65202(){ note_dtor("ee65202", this);} // tgen
+ee65202 ::ee65202(){ note_ctor("ee65202", this);} // tgen
+
+static void Test_ee65202()
+{
+ extern Class_Descriptor cd_ee65202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65202, buf);
+ ee65202 *dp, &lv = *(dp=new (buf) ee65202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee65202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee65202");
+ check_base_class_offset(lv, (cc202*)(dd5202*), ABISELECT(16,12), "ee65202");
+ check_base_class_offset(lv, (dd5202*), 0, "ee65202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65202.e");
+ test_class_info(&lv, &cd_ee65202);
+ dp->~ee65202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65202(Test_ee65202, "ee65202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65202C1Ev();
+extern void _ZN7ee65202D1Ev();
+Name_Map name_map_ee65202[] = {
+ NSPAIR(_ZN7ee65202C1Ev),
+ NSPAIR(_ZN7ee65202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd5202;
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static Base_Class bases_ee65202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65202[];
+extern void _ZN7ee652023barEv();
+extern void _ZN7ee652023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee652023fooEv,_ZTv0_n12_N7ee652023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652023fooEv,_ZThn12_N7ee652023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee652023barEv,_ZTv0_n16_N7ee652023barEv)();
+extern void ABISELECT(_ZThn16_N7ee652023barEv,_ZThn12_N7ee652023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65202[0]),
+ (VTBL_ENTRY)&_ZN7ee652023barEv,
+ (VTBL_ENTRY)&_ZN7ee652023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652023fooEv,_ZTv0_n12_N7ee652023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652023barEv,_ZTv0_n16_N7ee652023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65202[];
+extern void _ZN6dd52023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5202__7ee65202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+};
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd5202__7ee65202[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+static VTT_ENTRY vtt_ee65202[] = {
+ {&(_ZTV7ee65202[3]), 3,11},
+ {&(_tg__ZTV6dd5202__7ee65202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd5202__7ee65202[4]), 4,6},
+ {&(_ZTV7ee65202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65202[];
+extern VTBL_ENTRY _ZTV7ee65202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65202[];
+static VTBL_ENTRY alt_thunk_names834[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn12_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee652023barEv,_ZTv0_n16_N7ee652023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652023barEv,_ZThn12_N7ee652023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652023fooEv,_ZTv0_n12_N7ee652023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652023fooEv,_ZThn12_N7ee652023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65202 = { "ee65202", // class name
+ bases_ee65202, 4,
+ &(vtc_ee65202[0]), // expected_vtbl_contents
+ &(vtt_ee65202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names834,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75202 : virtual dd5202 {
+ int e;
+ virtual void foo(); // _ZN7ee752023fooEv
+ virtual void bar(); // _ZN7ee752023barEv
+ ~ee75202(); // tgen
+ ee75202(); // tgen
+};
+//SIG(1 ee75202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75202 ::foo(){vfunc_called(this, "_ZN7ee752023fooEv");}
+void ee75202 ::bar(){vfunc_called(this, "_ZN7ee752023barEv");}
+ee75202 ::~ee75202(){ note_dtor("ee75202", this);} // tgen
+ee75202 ::ee75202(){ note_ctor("ee75202", this);} // tgen
+
+static void Test_ee75202()
+{
+ extern Class_Descriptor cd_ee75202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75202, buf);
+ ee75202 *dp, &lv = *(dp=new (buf) ee75202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee75202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee75202");
+ check_base_class_offset(lv, (cc202*)(dd5202*), ABISELECT(32,16), "ee75202");
+ check_base_class_offset(lv, (dd5202*), ABISELECT(16,8), "ee75202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75202.e");
+ test_class_info(&lv, &cd_ee75202);
+ dp->~ee75202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75202(Test_ee75202, "ee75202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75202C1Ev();
+extern void _ZN7ee75202D1Ev();
+Name_Map name_map_ee75202[] = {
+ NSPAIR(_ZN7ee75202C1Ev),
+ NSPAIR(_ZN7ee75202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd5202;
+extern VTBL_ENTRY _ZTI6dd5202[];
+extern VTBL_ENTRY _ZTV6dd5202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5202[];
+static Base_Class bases_ee75202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5202, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75202[];
+extern void _ZN7ee752023fooEv();
+extern void _ZN7ee752023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee752023barEv,_ZTv0_n16_N7ee752023barEv)();
+extern void ABISELECT(_ZThn16_N7ee752023barEv,_ZThn8_N7ee752023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752023fooEv,_ZTv0_n12_N7ee752023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752023fooEv,_ZThn16_N7ee752023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752023barEv,_ZTv0_n16_N7ee752023barEv)();
+extern void ABISELECT(_ZThn32_N7ee752023barEv,_ZThn16_N7ee752023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75202[0]),
+ (VTBL_ENTRY)&_ZN7ee752023fooEv,
+ (VTBL_ENTRY)&_ZN7ee752023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752023barEv,_ZTv0_n16_N7ee752023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752023fooEv,_ZTv0_n12_N7ee752023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752023barEv,_ZTv0_n16_N7ee752023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75202[];
+extern void _ZN6dd52023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5202__7ee75202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN6dd52023barEv,
+};
+extern void _ZN5cc2023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv)();
+extern void ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd5202__7ee75202[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5202[0]),
+ (VTBL_ENTRY)&_ZN5cc2023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv),
+};
+static VTT_ENTRY vtt_ee75202[] = {
+ {&(_ZTV7ee75202[4]), 4,17},
+ {&(_ZTV7ee75202[10]), 10,17},
+ {&(_ZTV7ee75202[15]), 15,17},
+ {&(_tg__ZTV6dd5202__7ee75202[3]), 3,4},
+ {&(_tg__ZTV5cc202__6dd5202__7ee75202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75202[];
+extern VTBL_ENTRY _ZTV7ee75202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75202[];
+static VTBL_ENTRY alt_thunk_names835[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52023barEv,_ZTv0_n16_N6dd52023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52023barEv,_ZThn8_N6dd52023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752023fooEv,_ZTv0_n12_N7ee752023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752023fooEv,_ZThn16_N7ee752023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752023barEv,_ZTv0_n16_N7ee752023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752023barEv,_ZThn16_N7ee752023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752023barEv,_ZThn8_N7ee752023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75202 = { "ee75202", // class name
+ bases_ee75202, 4,
+ &(vtc_ee75202[0]), // expected_vtbl_contents
+ &(vtt_ee75202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75202),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names835,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6202 : cc202 {
+ int d;
+ virtual void bar(); // _ZN6dd62023barEv
+ virtual void foo(); // _ZN6dd62023fooEv
+ ~dd6202(); // tgen
+ dd6202(); // tgen
+};
+//SIG(-1 dd6202) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6202 ::bar(){vfunc_called(this, "_ZN6dd62023barEv");}
+void dd6202 ::foo(){vfunc_called(this, "_ZN6dd62023fooEv");}
+dd6202 ::~dd6202(){ note_dtor("dd6202", this);} // tgen
+dd6202 ::dd6202(){ note_ctor("dd6202", this);} // tgen
+
+static void Test_dd6202()
+{
+ extern Class_Descriptor cd_dd6202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6202, buf);
+ dd6202 *dp, &lv = *(dp=new (buf) dd6202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), 0, "dd6202");
+ check_base_class_offset(lv, (bb02*)(cc202*), 0, "dd6202");
+ check_base_class_offset(lv, (cc202*), 0, "dd6202");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6202.d");
+ test_class_info(&lv, &cd_dd6202);
+ dp->~dd6202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6202(Test_dd6202, "dd6202", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6202C1Ev();
+extern void _ZN6dd6202D1Ev();
+Name_Map name_map_dd6202[] = {
+ NSPAIR(_ZN6dd6202C1Ev),
+ NSPAIR(_ZN6dd6202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+static Base_Class bases_dd6202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern void _ZN6dd62023fooEv();
+extern void _ZN6dd62023barEv();
+static VTBL_ENTRY vtc_dd6202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6202[0]),
+ (VTBL_ENTRY)&_ZN6dd62023fooEv,
+ (VTBL_ENTRY)&_ZN6dd62023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+Class_Descriptor cd_dd6202 = { "dd6202", // class name
+ bases_dd6202, 3,
+ &(vtc_dd6202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06202 : dd6202 {
+ int e;
+ ~ee06202(); // tgen
+ ee06202(); // tgen
+};
+//SIG(1 ee06202) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06202 ::~ee06202(){ note_dtor("ee06202", this);} // tgen
+ee06202 ::ee06202(){ note_ctor("ee06202", this);} // tgen
+
+static void Test_ee06202()
+{
+ extern Class_Descriptor cd_ee06202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06202, buf);
+ ee06202 *dp, &lv = *(dp=new (buf) ee06202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd6202*), 0, "ee06202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd6202*), 0, "ee06202");
+ check_base_class_offset(lv, (cc202*)(dd6202*), 0, "ee06202");
+ check_base_class_offset(lv, (dd6202*), 0, "ee06202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06202.e");
+ test_class_info(&lv, &cd_ee06202);
+ dp->~ee06202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06202(Test_ee06202, "ee06202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06202C1Ev();
+extern void _ZN7ee06202D1Ev();
+Name_Map name_map_ee06202[] = {
+ NSPAIR(_ZN7ee06202C1Ev),
+ NSPAIR(_ZN7ee06202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd6202;
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+static Base_Class bases_ee06202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6202, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06202[];
+extern void _ZN6dd62023fooEv();
+extern void _ZN6dd62023barEv();
+static VTBL_ENTRY vtc_ee06202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06202[0]),
+ (VTBL_ENTRY)&_ZN6dd62023fooEv,
+ (VTBL_ENTRY)&_ZN6dd62023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06202[];
+extern VTBL_ENTRY _ZTV7ee06202[];
+Class_Descriptor cd_ee06202 = { "ee06202", // class name
+ bases_ee06202, 4,
+ &(vtc_ee06202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16202 : virtual dd6202 {
+ int e;
+ ~ee16202(); // tgen
+ ee16202(); // tgen
+};
+//SIG(1 ee16202) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16202 ::~ee16202(){ note_dtor("ee16202", this);} // tgen
+ee16202 ::ee16202(){ note_ctor("ee16202", this);} // tgen
+
+static void Test_ee16202()
+{
+ extern Class_Descriptor cd_ee16202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16202, buf);
+ ee16202 *dp, &lv = *(dp=new (buf) ee16202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd6202*), ABISELECT(16,8), "ee16202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd6202*), ABISELECT(16,8), "ee16202");
+ check_base_class_offset(lv, (cc202*)(dd6202*), ABISELECT(16,8), "ee16202");
+ check_base_class_offset(lv, (dd6202*), ABISELECT(16,8), "ee16202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16202.e");
+ test_class_info(&lv, &cd_ee16202);
+ dp->~ee16202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16202(Test_ee16202, "ee16202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16202C1Ev();
+extern void _ZN7ee16202D1Ev();
+Name_Map name_map_ee16202[] = {
+ NSPAIR(_ZN7ee16202C1Ev),
+ NSPAIR(_ZN7ee16202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd6202;
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+static Base_Class bases_ee16202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6202, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16202[];
+extern void _ZN6dd62023fooEv();
+extern void _ZN6dd62023barEv();
+static VTBL_ENTRY vtc_ee16202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16202[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16202[0]),
+ (VTBL_ENTRY)&_ZN6dd62023fooEv,
+ (VTBL_ENTRY)&_ZN6dd62023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16202[];
+static VTT_ENTRY vtt_ee16202[] = {
+ {&(_ZTV7ee16202[3]), 3,9},
+ {&(_ZTV7ee16202[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16202[];
+extern VTBL_ENTRY _ZTV7ee16202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16202[];
+Class_Descriptor cd_ee16202 = { "ee16202", // class name
+ bases_ee16202, 4,
+ &(vtc_ee16202[0]), // expected_vtbl_contents
+ &(vtt_ee16202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16202),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26202 : dd6202 {
+ int e;
+ virtual void foo(); // _ZN7ee262023fooEv
+ ~ee26202(); // tgen
+ ee26202(); // tgen
+};
+//SIG(1 ee26202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26202 ::foo(){vfunc_called(this, "_ZN7ee262023fooEv");}
+ee26202 ::~ee26202(){ note_dtor("ee26202", this);} // tgen
+ee26202 ::ee26202(){ note_ctor("ee26202", this);} // tgen
+
+static void Test_ee26202()
+{
+ extern Class_Descriptor cd_ee26202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26202, buf);
+ ee26202 *dp, &lv = *(dp=new (buf) ee26202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd6202*), 0, "ee26202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd6202*), 0, "ee26202");
+ check_base_class_offset(lv, (cc202*)(dd6202*), 0, "ee26202");
+ check_base_class_offset(lv, (dd6202*), 0, "ee26202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26202.e");
+ test_class_info(&lv, &cd_ee26202);
+ dp->~ee26202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26202(Test_ee26202, "ee26202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26202C1Ev();
+extern void _ZN7ee26202D1Ev();
+Name_Map name_map_ee26202[] = {
+ NSPAIR(_ZN7ee26202C1Ev),
+ NSPAIR(_ZN7ee26202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd6202;
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+static Base_Class bases_ee26202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26202[];
+extern void _ZN7ee262023fooEv();
+extern void _ZN6dd62023barEv();
+static VTBL_ENTRY vtc_ee26202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26202[0]),
+ (VTBL_ENTRY)&_ZN7ee262023fooEv,
+ (VTBL_ENTRY)&_ZN6dd62023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26202[];
+extern VTBL_ENTRY _ZTV7ee26202[];
+Class_Descriptor cd_ee26202 = { "ee26202", // class name
+ bases_ee26202, 4,
+ &(vtc_ee26202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36202 : virtual dd6202 {
+ int e;
+ virtual void foo(); // _ZN7ee362023fooEv
+ ~ee36202(); // tgen
+ ee36202(); // tgen
+};
+//SIG(1 ee36202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36202 ::foo(){vfunc_called(this, "_ZN7ee362023fooEv");}
+ee36202 ::~ee36202(){ note_dtor("ee36202", this);} // tgen
+ee36202 ::ee36202(){ note_ctor("ee36202", this);} // tgen
+
+static void Test_ee36202()
+{
+ extern Class_Descriptor cd_ee36202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36202, buf);
+ ee36202 *dp, &lv = *(dp=new (buf) ee36202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd6202*), ABISELECT(16,8), "ee36202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd6202*), ABISELECT(16,8), "ee36202");
+ check_base_class_offset(lv, (cc202*)(dd6202*), ABISELECT(16,8), "ee36202");
+ check_base_class_offset(lv, (dd6202*), ABISELECT(16,8), "ee36202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36202.e");
+ test_class_info(&lv, &cd_ee36202);
+ dp->~ee36202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36202(Test_ee36202, "ee36202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36202C1Ev();
+extern void _ZN7ee36202D1Ev();
+Name_Map name_map_ee36202[] = {
+ NSPAIR(_ZN7ee36202C1Ev),
+ NSPAIR(_ZN7ee36202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd6202;
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+static Base_Class bases_ee36202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36202[];
+extern void _ZN7ee362023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee362023fooEv,_ZTv0_n12_N7ee362023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362023fooEv,_ZThn8_N7ee362023fooEv)() __attribute__((weak));
+extern void _ZN6dd62023barEv();
+static VTBL_ENTRY vtc_ee36202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36202[0]),
+ (VTBL_ENTRY)&_ZN7ee362023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362023fooEv,_ZTv0_n12_N7ee362023fooEv),
+ (VTBL_ENTRY)&_ZN6dd62023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36202[];
+static VTT_ENTRY vtt_ee36202[] = {
+ {&(_ZTV7ee36202[3]), 3,10},
+ {&(_ZTV7ee36202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36202[];
+extern VTBL_ENTRY _ZTV7ee36202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36202[];
+static VTBL_ENTRY alt_thunk_names836[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362023fooEv,_ZTv0_n12_N7ee362023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362023fooEv,_ZThn8_N7ee362023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36202 = { "ee36202", // class name
+ bases_ee36202, 4,
+ &(vtc_ee36202[0]), // expected_vtbl_contents
+ &(vtt_ee36202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names836,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46202 : dd6202 {
+ int e;
+ virtual void bar(); // _ZN7ee462023barEv
+ ~ee46202(); // tgen
+ ee46202(); // tgen
+};
+//SIG(1 ee46202) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46202 ::bar(){vfunc_called(this, "_ZN7ee462023barEv");}
+ee46202 ::~ee46202(){ note_dtor("ee46202", this);} // tgen
+ee46202 ::ee46202(){ note_ctor("ee46202", this);} // tgen
+
+static void Test_ee46202()
+{
+ extern Class_Descriptor cd_ee46202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46202, buf);
+ ee46202 *dp, &lv = *(dp=new (buf) ee46202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd6202*), 0, "ee46202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd6202*), 0, "ee46202");
+ check_base_class_offset(lv, (cc202*)(dd6202*), 0, "ee46202");
+ check_base_class_offset(lv, (dd6202*), 0, "ee46202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46202.e");
+ test_class_info(&lv, &cd_ee46202);
+ dp->~ee46202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46202(Test_ee46202, "ee46202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46202C1Ev();
+extern void _ZN7ee46202D1Ev();
+Name_Map name_map_ee46202[] = {
+ NSPAIR(_ZN7ee46202C1Ev),
+ NSPAIR(_ZN7ee46202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd6202;
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+static Base_Class bases_ee46202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46202[];
+extern void _ZN6dd62023fooEv();
+extern void _ZN7ee462023barEv();
+static VTBL_ENTRY vtc_ee46202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46202[0]),
+ (VTBL_ENTRY)&_ZN6dd62023fooEv,
+ (VTBL_ENTRY)&_ZN7ee462023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46202[];
+extern VTBL_ENTRY _ZTV7ee46202[];
+Class_Descriptor cd_ee46202 = { "ee46202", // class name
+ bases_ee46202, 4,
+ &(vtc_ee46202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56202 : virtual dd6202 {
+ int e;
+ virtual void bar(); // _ZN7ee562023barEv
+ ~ee56202(); // tgen
+ ee56202(); // tgen
+};
+//SIG(1 ee56202) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56202 ::bar(){vfunc_called(this, "_ZN7ee562023barEv");}
+ee56202 ::~ee56202(){ note_dtor("ee56202", this);} // tgen
+ee56202 ::ee56202(){ note_ctor("ee56202", this);} // tgen
+
+static void Test_ee56202()
+{
+ extern Class_Descriptor cd_ee56202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56202, buf);
+ ee56202 *dp, &lv = *(dp=new (buf) ee56202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd6202*), ABISELECT(16,8), "ee56202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd6202*), ABISELECT(16,8), "ee56202");
+ check_base_class_offset(lv, (cc202*)(dd6202*), ABISELECT(16,8), "ee56202");
+ check_base_class_offset(lv, (dd6202*), ABISELECT(16,8), "ee56202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56202.e");
+ test_class_info(&lv, &cd_ee56202);
+ dp->~ee56202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56202(Test_ee56202, "ee56202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56202C1Ev();
+extern void _ZN7ee56202D1Ev();
+Name_Map name_map_ee56202[] = {
+ NSPAIR(_ZN7ee56202C1Ev),
+ NSPAIR(_ZN7ee56202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd6202;
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+static Base_Class bases_ee56202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56202[];
+extern void _ZN7ee562023barEv();
+extern void _ZN6dd62023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562023barEv,_ZTv0_n16_N7ee562023barEv)();
+extern void ABISELECT(_ZThn16_N7ee562023barEv,_ZThn8_N7ee562023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56202[0]),
+ (VTBL_ENTRY)&_ZN7ee562023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56202[0]),
+ (VTBL_ENTRY)&_ZN6dd62023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562023barEv,_ZTv0_n16_N7ee562023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56202[];
+static VTT_ENTRY vtt_ee56202[] = {
+ {&(_ZTV7ee56202[3]), 3,10},
+ {&(_ZTV7ee56202[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56202[];
+extern VTBL_ENTRY _ZTV7ee56202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56202[];
+static VTBL_ENTRY alt_thunk_names837[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562023barEv,_ZTv0_n16_N7ee562023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562023barEv,_ZThn8_N7ee562023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56202 = { "ee56202", // class name
+ bases_ee56202, 4,
+ &(vtc_ee56202[0]), // expected_vtbl_contents
+ &(vtt_ee56202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56202),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names837,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66202 : dd6202 {
+ int e;
+ virtual void foo(); // _ZN7ee662023fooEv
+ virtual void bar(); // _ZN7ee662023barEv
+ ~ee66202(); // tgen
+ ee66202(); // tgen
+};
+//SIG(1 ee66202) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66202 ::foo(){vfunc_called(this, "_ZN7ee662023fooEv");}
+void ee66202 ::bar(){vfunc_called(this, "_ZN7ee662023barEv");}
+ee66202 ::~ee66202(){ note_dtor("ee66202", this);} // tgen
+ee66202 ::ee66202(){ note_ctor("ee66202", this);} // tgen
+
+static void Test_ee66202()
+{
+ extern Class_Descriptor cd_ee66202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66202, buf);
+ ee66202 *dp, &lv = *(dp=new (buf) ee66202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd6202*), 0, "ee66202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd6202*), 0, "ee66202");
+ check_base_class_offset(lv, (cc202*)(dd6202*), 0, "ee66202");
+ check_base_class_offset(lv, (dd6202*), 0, "ee66202");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66202.e");
+ test_class_info(&lv, &cd_ee66202);
+ dp->~ee66202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66202(Test_ee66202, "ee66202", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66202C1Ev();
+extern void _ZN7ee66202D1Ev();
+Name_Map name_map_ee66202[] = {
+ NSPAIR(_ZN7ee66202C1Ev),
+ NSPAIR(_ZN7ee66202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd6202;
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+static Base_Class bases_ee66202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66202[];
+extern void _ZN7ee662023fooEv();
+extern void _ZN7ee662023barEv();
+static VTBL_ENTRY vtc_ee66202[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66202[0]),
+ (VTBL_ENTRY)&_ZN7ee662023fooEv,
+ (VTBL_ENTRY)&_ZN7ee662023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66202[];
+extern VTBL_ENTRY _ZTV7ee66202[];
+Class_Descriptor cd_ee66202 = { "ee66202", // class name
+ bases_ee66202, 4,
+ &(vtc_ee66202[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66202),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76202 : virtual dd6202 {
+ int e;
+ virtual void foo(); // _ZN7ee762023fooEv
+ virtual void bar(); // _ZN7ee762023barEv
+ ~ee76202(); // tgen
+ ee76202(); // tgen
+};
+//SIG(1 ee76202) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76202 ::foo(){vfunc_called(this, "_ZN7ee762023fooEv");}
+void ee76202 ::bar(){vfunc_called(this, "_ZN7ee762023barEv");}
+ee76202 ::~ee76202(){ note_dtor("ee76202", this);} // tgen
+ee76202 ::ee76202(){ note_ctor("ee76202", this);} // tgen
+
+static void Test_ee76202()
+{
+ extern Class_Descriptor cd_ee76202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76202, buf);
+ ee76202 *dp, &lv = *(dp=new (buf) ee76202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*)(dd6202*), ABISELECT(16,8), "ee76202");
+ check_base_class_offset(lv, (bb02*)(cc202*)(dd6202*), ABISELECT(16,8), "ee76202");
+ check_base_class_offset(lv, (cc202*)(dd6202*), ABISELECT(16,8), "ee76202");
+ check_base_class_offset(lv, (dd6202*), ABISELECT(16,8), "ee76202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76202.e");
+ test_class_info(&lv, &cd_ee76202);
+ dp->~ee76202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76202(Test_ee76202, "ee76202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76202C1Ev();
+extern void _ZN7ee76202D1Ev();
+Name_Map name_map_ee76202[] = {
+ NSPAIR(_ZN7ee76202C1Ev),
+ NSPAIR(_ZN7ee76202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd6202;
+extern VTBL_ENTRY _ZTI6dd6202[];
+extern VTBL_ENTRY _ZTV6dd6202[];
+static Base_Class bases_ee76202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76202[];
+extern void _ZN7ee762023fooEv();
+extern void _ZN7ee762023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee762023fooEv,_ZTv0_n12_N7ee762023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762023fooEv,_ZThn8_N7ee762023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762023barEv,_ZTv0_n16_N7ee762023barEv)();
+extern void ABISELECT(_ZThn16_N7ee762023barEv,_ZThn8_N7ee762023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76202[0]),
+ (VTBL_ENTRY)&_ZN7ee762023fooEv,
+ (VTBL_ENTRY)&_ZN7ee762023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762023fooEv,_ZTv0_n12_N7ee762023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762023barEv,_ZTv0_n16_N7ee762023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76202[];
+static VTT_ENTRY vtt_ee76202[] = {
+ {&(_ZTV7ee76202[3]), 3,11},
+ {&(_ZTV7ee76202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76202[];
+extern VTBL_ENTRY _ZTV7ee76202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76202[];
+static VTBL_ENTRY alt_thunk_names838[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762023barEv,_ZTv0_n16_N7ee762023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762023barEv,_ZThn8_N7ee762023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762023fooEv,_ZTv0_n12_N7ee762023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762023fooEv,_ZThn8_N7ee762023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76202 = { "ee76202", // class name
+ bases_ee76202, 4,
+ &(vtc_ee76202[0]), // expected_vtbl_contents
+ &(vtt_ee76202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76202),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names838,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7202 : virtual cc202 {
+ int d;
+ virtual void bar(); // _ZN6dd72023barEv
+ virtual void foo(); // _ZN6dd72023fooEv
+ ~dd7202(); // tgen
+ dd7202(); // tgen
+};
+//SIG(-1 dd7202) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7202 ::bar(){vfunc_called(this, "_ZN6dd72023barEv");}
+void dd7202 ::foo(){vfunc_called(this, "_ZN6dd72023fooEv");}
+dd7202 ::~dd7202(){ note_dtor("dd7202", this);} // tgen
+dd7202 ::dd7202(){ note_ctor("dd7202", this);} // tgen
+
+static void Test_dd7202()
+{
+ extern Class_Descriptor cd_dd7202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7202, buf);
+ dd7202 *dp, &lv = *(dp=new (buf) dd7202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,8), "dd7202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,8), "dd7202");
+ check_base_class_offset(lv, (cc202*), ABISELECT(16,8), "dd7202");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7202.d");
+ test_class_info(&lv, &cd_dd7202);
+ dp->~dd7202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7202(Test_dd7202, "dd7202", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7202C1Ev();
+extern void _ZN6dd7202D1Ev();
+Name_Map name_map_dd7202[] = {
+ NSPAIR(_ZN6dd7202C1Ev),
+ NSPAIR(_ZN6dd7202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+static Base_Class bases_dd7202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7202[];
+static VTT_ENTRY vtt_dd7202[] = {
+ {&(_ZTV6dd7202[3]), 3,11},
+ {&(_ZTV6dd7202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static VTBL_ENTRY alt_thunk_names839[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7202 = { "dd7202", // class name
+ bases_dd7202, 3,
+ &(vtc_dd7202[0]), // expected_vtbl_contents
+ &(vtt_dd7202[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7202),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names839,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07202 : dd7202 {
+ int e;
+ ~ee07202(); // tgen
+ ee07202(); // tgen
+};
+//SIG(1 ee07202) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07202 ::~ee07202(){ note_dtor("ee07202", this);} // tgen
+ee07202 ::ee07202(){ note_ctor("ee07202", this);} // tgen
+
+static void Test_ee07202()
+{
+ extern Class_Descriptor cd_ee07202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07202, buf);
+ ee07202 *dp, &lv = *(dp=new (buf) ee07202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee07202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee07202");
+ check_base_class_offset(lv, (cc202*)(dd7202*), ABISELECT(16,12), "ee07202");
+ check_base_class_offset(lv, (dd7202*), 0, "ee07202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07202.e");
+ test_class_info(&lv, &cd_ee07202);
+ dp->~ee07202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07202(Test_ee07202, "ee07202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07202C1Ev();
+extern void _ZN7ee07202D1Ev();
+Name_Map name_map_ee07202[] = {
+ NSPAIR(_ZN7ee07202C1Ev),
+ NSPAIR(_ZN7ee07202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd7202;
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static Base_Class bases_ee07202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7202__7ee07202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd7202__7ee07202[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+static VTT_ENTRY vtt_ee07202[] = {
+ {&(_ZTV7ee07202[3]), 3,11},
+ {&(_tg__ZTV6dd7202__7ee07202[3]), 3,5},
+ {&(_tg__ZTV5cc202__6dd7202__7ee07202[4]), 4,6},
+ {&(_ZTV7ee07202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07202[];
+extern VTBL_ENTRY _ZTV7ee07202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07202[];
+static VTBL_ENTRY alt_thunk_names840[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07202 = { "ee07202", // class name
+ bases_ee07202, 4,
+ &(vtc_ee07202[0]), // expected_vtbl_contents
+ &(vtt_ee07202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names840,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17202 : virtual dd7202 {
+ int e;
+ ~ee17202(); // tgen
+ ee17202(); // tgen
+};
+//SIG(1 ee17202) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17202 ::~ee17202(){ note_dtor("ee17202", this);} // tgen
+ee17202 ::ee17202(){ note_ctor("ee17202", this);} // tgen
+
+static void Test_ee17202()
+{
+ extern Class_Descriptor cd_ee17202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17202, buf);
+ ee17202 *dp, &lv = *(dp=new (buf) ee17202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee17202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee17202");
+ check_base_class_offset(lv, (cc202*)(dd7202*), ABISELECT(32,16), "ee17202");
+ check_base_class_offset(lv, (dd7202*), ABISELECT(16,8), "ee17202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17202.e");
+ test_class_info(&lv, &cd_ee17202);
+ dp->~ee17202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17202(Test_ee17202, "ee17202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17202C1Ev();
+extern void _ZN7ee17202D1Ev();
+Name_Map name_map_ee17202[] = {
+ NSPAIR(_ZN7ee17202C1Ev),
+ NSPAIR(_ZN7ee17202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd7202;
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static Base_Class bases_ee17202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7202, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17202[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7202__7ee17202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd7202__7ee17202[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+static VTT_ENTRY vtt_ee17202[] = {
+ {&(_ZTV7ee17202[4]), 4,17},
+ {&(_ZTV7ee17202[9]), 9,17},
+ {&(_ZTV7ee17202[15]), 15,17},
+ {&(_tg__ZTV6dd7202__7ee17202[3]), 3,5},
+ {&(_tg__ZTV5cc202__6dd7202__7ee17202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17202[];
+extern VTBL_ENTRY _ZTV7ee17202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17202[];
+static VTBL_ENTRY alt_thunk_names841[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17202 = { "ee17202", // class name
+ bases_ee17202, 4,
+ &(vtc_ee17202[0]), // expected_vtbl_contents
+ &(vtt_ee17202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17202),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names841,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27202 : dd7202 {
+ int e;
+ virtual void foo(); // _ZN7ee272023fooEv
+ ~ee27202(); // tgen
+ ee27202(); // tgen
+};
+//SIG(1 ee27202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27202 ::foo(){vfunc_called(this, "_ZN7ee272023fooEv");}
+ee27202 ::~ee27202(){ note_dtor("ee27202", this);} // tgen
+ee27202 ::ee27202(){ note_ctor("ee27202", this);} // tgen
+
+static void Test_ee27202()
+{
+ extern Class_Descriptor cd_ee27202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27202, buf);
+ ee27202 *dp, &lv = *(dp=new (buf) ee27202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee27202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee27202");
+ check_base_class_offset(lv, (cc202*)(dd7202*), ABISELECT(16,12), "ee27202");
+ check_base_class_offset(lv, (dd7202*), 0, "ee27202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27202.e");
+ test_class_info(&lv, &cd_ee27202);
+ dp->~ee27202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27202(Test_ee27202, "ee27202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27202C1Ev();
+extern void _ZN7ee27202D1Ev();
+Name_Map name_map_ee27202[] = {
+ NSPAIR(_ZN7ee27202C1Ev),
+ NSPAIR(_ZN7ee27202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd7202;
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static Base_Class bases_ee27202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN7ee272023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee272023fooEv,_ZTv0_n12_N7ee272023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272023fooEv,_ZThn12_N7ee272023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN7ee272023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272023fooEv,_ZTv0_n12_N7ee272023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7202__7ee27202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd7202__7ee27202[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+static VTT_ENTRY vtt_ee27202[] = {
+ {&(_ZTV7ee27202[3]), 3,11},
+ {&(_tg__ZTV6dd7202__7ee27202[3]), 3,5},
+ {&(_tg__ZTV5cc202__6dd7202__7ee27202[4]), 4,6},
+ {&(_ZTV7ee27202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27202[];
+extern VTBL_ENTRY _ZTV7ee27202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27202[];
+static VTBL_ENTRY alt_thunk_names842[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272023fooEv,_ZTv0_n12_N7ee272023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272023fooEv,_ZThn12_N7ee272023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27202 = { "ee27202", // class name
+ bases_ee27202, 4,
+ &(vtc_ee27202[0]), // expected_vtbl_contents
+ &(vtt_ee27202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names842,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37202 : virtual dd7202 {
+ int e;
+ virtual void foo(); // _ZN7ee372023fooEv
+ ~ee37202(); // tgen
+ ee37202(); // tgen
+};
+//SIG(1 ee37202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37202 ::foo(){vfunc_called(this, "_ZN7ee372023fooEv");}
+ee37202 ::~ee37202(){ note_dtor("ee37202", this);} // tgen
+ee37202 ::ee37202(){ note_ctor("ee37202", this);} // tgen
+
+static void Test_ee37202()
+{
+ extern Class_Descriptor cd_ee37202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37202, buf);
+ ee37202 *dp, &lv = *(dp=new (buf) ee37202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee37202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee37202");
+ check_base_class_offset(lv, (cc202*)(dd7202*), ABISELECT(32,16), "ee37202");
+ check_base_class_offset(lv, (dd7202*), ABISELECT(16,8), "ee37202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37202.e");
+ test_class_info(&lv, &cd_ee37202);
+ dp->~ee37202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37202(Test_ee37202, "ee37202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37202C1Ev();
+extern void _ZN7ee37202D1Ev();
+Name_Map name_map_ee37202[] = {
+ NSPAIR(_ZN7ee37202C1Ev),
+ NSPAIR(_ZN7ee37202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd7202;
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static Base_Class bases_ee37202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37202[];
+extern void _ZN7ee372023fooEv();
+extern void _ZN6dd72023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee372023fooEv,_ZTv0_n20_N7ee372023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372023fooEv,_ZThn8_N7ee372023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372023fooEv,_ZTv0_n12_N7ee372023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372023fooEv,_ZThn16_N7ee372023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37202[0]),
+ (VTBL_ENTRY)&_ZN7ee372023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372023fooEv,_ZTv0_n20_N7ee372023fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372023fooEv,_ZTv0_n12_N7ee372023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7202__7ee37202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd7202__7ee37202[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+static VTT_ENTRY vtt_ee37202[] = {
+ {&(_ZTV7ee37202[4]), 4,18},
+ {&(_ZTV7ee37202[10]), 10,18},
+ {&(_ZTV7ee37202[16]), 16,18},
+ {&(_tg__ZTV6dd7202__7ee37202[3]), 3,5},
+ {&(_tg__ZTV5cc202__6dd7202__7ee37202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37202[];
+extern VTBL_ENTRY _ZTV7ee37202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37202[];
+static VTBL_ENTRY alt_thunk_names843[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372023fooEv,_ZTv0_n12_N7ee372023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372023fooEv,_ZThn16_N7ee372023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372023fooEv,_ZTv0_n20_N7ee372023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372023fooEv,_ZThn8_N7ee372023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37202 = { "ee37202", // class name
+ bases_ee37202, 4,
+ &(vtc_ee37202[0]), // expected_vtbl_contents
+ &(vtt_ee37202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37202),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names843,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47202 : dd7202 {
+ int e;
+ virtual void bar(); // _ZN7ee472023barEv
+ ~ee47202(); // tgen
+ ee47202(); // tgen
+};
+//SIG(1 ee47202) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47202 ::bar(){vfunc_called(this, "_ZN7ee472023barEv");}
+ee47202 ::~ee47202(){ note_dtor("ee47202", this);} // tgen
+ee47202 ::ee47202(){ note_ctor("ee47202", this);} // tgen
+
+static void Test_ee47202()
+{
+ extern Class_Descriptor cd_ee47202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47202, buf);
+ ee47202 *dp, &lv = *(dp=new (buf) ee47202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee47202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee47202");
+ check_base_class_offset(lv, (cc202*)(dd7202*), ABISELECT(16,12), "ee47202");
+ check_base_class_offset(lv, (dd7202*), 0, "ee47202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47202.e");
+ test_class_info(&lv, &cd_ee47202);
+ dp->~ee47202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47202(Test_ee47202, "ee47202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47202C1Ev();
+extern void _ZN7ee47202D1Ev();
+Name_Map name_map_ee47202[] = {
+ NSPAIR(_ZN7ee47202C1Ev),
+ NSPAIR(_ZN7ee47202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd7202;
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static Base_Class bases_ee47202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47202[];
+extern void _ZN7ee472023barEv();
+extern void _ZN6dd72023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee472023barEv,_ZTv0_n16_N7ee472023barEv)();
+extern void ABISELECT(_ZThn16_N7ee472023barEv,_ZThn12_N7ee472023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47202[0]),
+ (VTBL_ENTRY)&_ZN7ee472023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee472023barEv,_ZTv0_n16_N7ee472023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7202__7ee47202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd7202__7ee47202[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+static VTT_ENTRY vtt_ee47202[] = {
+ {&(_ZTV7ee47202[3]), 3,11},
+ {&(_tg__ZTV6dd7202__7ee47202[3]), 3,5},
+ {&(_tg__ZTV5cc202__6dd7202__7ee47202[4]), 4,6},
+ {&(_ZTV7ee47202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47202[];
+extern VTBL_ENTRY _ZTV7ee47202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47202[];
+static VTBL_ENTRY alt_thunk_names844[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee472023barEv,_ZTv0_n16_N7ee472023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee472023barEv,_ZThn12_N7ee472023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47202 = { "ee47202", // class name
+ bases_ee47202, 4,
+ &(vtc_ee47202[0]), // expected_vtbl_contents
+ &(vtt_ee47202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names844,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57202 : virtual dd7202 {
+ int e;
+ virtual void bar(); // _ZN7ee572023barEv
+ ~ee57202(); // tgen
+ ee57202(); // tgen
+};
+//SIG(1 ee57202) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57202 ::bar(){vfunc_called(this, "_ZN7ee572023barEv");}
+ee57202 ::~ee57202(){ note_dtor("ee57202", this);} // tgen
+ee57202 ::ee57202(){ note_ctor("ee57202", this);} // tgen
+
+static void Test_ee57202()
+{
+ extern Class_Descriptor cd_ee57202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57202, buf);
+ ee57202 *dp, &lv = *(dp=new (buf) ee57202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee57202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee57202");
+ check_base_class_offset(lv, (cc202*)(dd7202*), ABISELECT(32,16), "ee57202");
+ check_base_class_offset(lv, (dd7202*), ABISELECT(16,8), "ee57202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57202.e");
+ test_class_info(&lv, &cd_ee57202);
+ dp->~ee57202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57202(Test_ee57202, "ee57202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57202C1Ev();
+extern void _ZN7ee57202D1Ev();
+Name_Map name_map_ee57202[] = {
+ NSPAIR(_ZN7ee57202C1Ev),
+ NSPAIR(_ZN7ee57202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd7202;
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static Base_Class bases_ee57202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7202, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57202[];
+extern void _ZN7ee572023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572023barEv,_ZTv0_n16_N7ee572023barEv)();
+extern void ABISELECT(_ZThn16_N7ee572023barEv,_ZThn8_N7ee572023barEv)() __attribute__((weak));
+extern void _ZN6dd72023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee572023barEv,_ZTv0_n16_N7ee572023barEv)();
+extern void ABISELECT(_ZThn32_N7ee572023barEv,_ZThn16_N7ee572023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57202[0]),
+ (VTBL_ENTRY)&_ZN7ee572023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572023barEv,_ZTv0_n16_N7ee572023barEv),
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572023barEv,_ZTv0_n16_N7ee572023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7202__7ee57202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd7202__7ee57202[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+static VTT_ENTRY vtt_ee57202[] = {
+ {&(_ZTV7ee57202[4]), 4,18},
+ {&(_ZTV7ee57202[10]), 10,18},
+ {&(_ZTV7ee57202[16]), 16,18},
+ {&(_tg__ZTV6dd7202__7ee57202[3]), 3,5},
+ {&(_tg__ZTV5cc202__6dd7202__7ee57202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57202[];
+extern VTBL_ENTRY _ZTV7ee57202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57202[];
+static VTBL_ENTRY alt_thunk_names845[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572023barEv,_ZTv0_n16_N7ee572023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee572023barEv,_ZThn16_N7ee572023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572023barEv,_ZThn8_N7ee572023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57202 = { "ee57202", // class name
+ bases_ee57202, 4,
+ &(vtc_ee57202[0]), // expected_vtbl_contents
+ &(vtt_ee57202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57202),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names845,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67202 : dd7202 {
+ int e;
+ virtual void foo(); // _ZN7ee672023fooEv
+ virtual void bar(); // _ZN7ee672023barEv
+ ~ee67202(); // tgen
+ ee67202(); // tgen
+};
+//SIG(1 ee67202) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67202 ::foo(){vfunc_called(this, "_ZN7ee672023fooEv");}
+void ee67202 ::bar(){vfunc_called(this, "_ZN7ee672023barEv");}
+ee67202 ::~ee67202(){ note_dtor("ee67202", this);} // tgen
+ee67202 ::ee67202(){ note_ctor("ee67202", this);} // tgen
+
+static void Test_ee67202()
+{
+ extern Class_Descriptor cd_ee67202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67202, buf);
+ ee67202 *dp, &lv = *(dp=new (buf) ee67202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(16,12), "ee67202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(16,12), "ee67202");
+ check_base_class_offset(lv, (cc202*)(dd7202*), ABISELECT(16,12), "ee67202");
+ check_base_class_offset(lv, (dd7202*), 0, "ee67202");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67202.e");
+ test_class_info(&lv, &cd_ee67202);
+ dp->~ee67202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67202(Test_ee67202, "ee67202", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67202C1Ev();
+extern void _ZN7ee67202D1Ev();
+Name_Map name_map_ee67202[] = {
+ NSPAIR(_ZN7ee67202C1Ev),
+ NSPAIR(_ZN7ee67202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd7202;
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static Base_Class bases_ee67202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7202, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67202[];
+extern void _ZN7ee672023barEv();
+extern void _ZN7ee672023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee672023fooEv,_ZTv0_n12_N7ee672023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672023fooEv,_ZThn12_N7ee672023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee672023barEv,_ZTv0_n16_N7ee672023barEv)();
+extern void ABISELECT(_ZThn16_N7ee672023barEv,_ZThn12_N7ee672023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67202[0]),
+ (VTBL_ENTRY)&_ZN7ee672023barEv,
+ (VTBL_ENTRY)&_ZN7ee672023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672023fooEv,_ZTv0_n12_N7ee672023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672023barEv,_ZTv0_n16_N7ee672023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7202__7ee67202[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd7202__7ee67202[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+static VTT_ENTRY vtt_ee67202[] = {
+ {&(_ZTV7ee67202[3]), 3,11},
+ {&(_tg__ZTV6dd7202__7ee67202[3]), 3,5},
+ {&(_tg__ZTV5cc202__6dd7202__7ee67202[4]), 4,6},
+ {&(_ZTV7ee67202[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67202[];
+extern VTBL_ENTRY _ZTV7ee67202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67202[];
+static VTBL_ENTRY alt_thunk_names846[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn12_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn12_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee672023barEv,_ZTv0_n16_N7ee672023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672023barEv,_ZThn12_N7ee672023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672023fooEv,_ZTv0_n12_N7ee672023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672023fooEv,_ZThn12_N7ee672023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67202 = { "ee67202", // class name
+ bases_ee67202, 4,
+ &(vtc_ee67202[0]), // expected_vtbl_contents
+ &(vtt_ee67202[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67202),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67202),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67202),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names846,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77202 : virtual dd7202 {
+ int e;
+ virtual void foo(); // _ZN7ee772023fooEv
+ virtual void bar(); // _ZN7ee772023barEv
+ ~ee77202(); // tgen
+ ee77202(); // tgen
+};
+//SIG(1 ee77202) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77202 ::foo(){vfunc_called(this, "_ZN7ee772023fooEv");}
+void ee77202 ::bar(){vfunc_called(this, "_ZN7ee772023barEv");}
+ee77202 ::~ee77202(){ note_dtor("ee77202", this);} // tgen
+ee77202 ::ee77202(){ note_ctor("ee77202", this);} // tgen
+
+static void Test_ee77202()
+{
+ extern Class_Descriptor cd_ee77202;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77202, buf);
+ ee77202 *dp, &lv = *(dp=new (buf) ee77202());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77202)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77202)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc202*), ABISELECT(32,16), "ee77202");
+ check_base_class_offset(lv, (bb02*)(cc202*), ABISELECT(32,16), "ee77202");
+ check_base_class_offset(lv, (cc202*)(dd7202*), ABISELECT(32,16), "ee77202");
+ check_base_class_offset(lv, (dd7202*), ABISELECT(16,8), "ee77202");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77202.e");
+ test_class_info(&lv, &cd_ee77202);
+ dp->~ee77202();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77202(Test_ee77202, "ee77202", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77202C1Ev();
+extern void _ZN7ee77202D1Ev();
+Name_Map name_map_ee77202[] = {
+ NSPAIR(_ZN7ee77202C1Ev),
+ NSPAIR(_ZN7ee77202D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc202;
+extern VTBL_ENTRY _ZTI5cc202[];
+extern VTBL_ENTRY _ZTV5cc202[];
+extern Class_Descriptor cd_dd7202;
+extern VTBL_ENTRY _ZTI6dd7202[];
+extern VTBL_ENTRY _ZTV6dd7202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7202[];
+static Base_Class bases_ee77202[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc202, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7202, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77202[];
+extern void _ZN7ee772023fooEv();
+extern void _ZN7ee772023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee772023barEv,_ZTv0_n16_N7ee772023barEv)();
+extern void ABISELECT(_ZThn16_N7ee772023barEv,_ZThn8_N7ee772023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772023fooEv,_ZTv0_n20_N7ee772023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772023fooEv,_ZThn8_N7ee772023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772023fooEv,_ZTv0_n12_N7ee772023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772023fooEv,_ZThn16_N7ee772023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772023barEv,_ZTv0_n16_N7ee772023barEv)();
+extern void ABISELECT(_ZThn32_N7ee772023barEv,_ZThn16_N7ee772023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77202[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77202[0]),
+ (VTBL_ENTRY)&_ZN7ee772023fooEv,
+ (VTBL_ENTRY)&_ZN7ee772023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772023barEv,_ZTv0_n16_N7ee772023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772023fooEv,_ZTv0_n20_N7ee772023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772023fooEv,_ZTv0_n12_N7ee772023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772023barEv,_ZTv0_n16_N7ee772023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77202[];
+extern void _ZN6dd72023barEv();
+extern void _ZN6dd72023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7202__7ee77202[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&_ZN6dd72023barEv,
+ (VTBL_ENTRY)&_ZN6dd72023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv)();
+extern void ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc202__6dd7202__7ee77202[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7202[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv),
+};
+static VTT_ENTRY vtt_ee77202[] = {
+ {&(_ZTV7ee77202[4]), 4,19},
+ {&(_ZTV7ee77202[11]), 11,19},
+ {&(_ZTV7ee77202[17]), 17,19},
+ {&(_tg__ZTV6dd7202__7ee77202[3]), 3,5},
+ {&(_tg__ZTV5cc202__6dd7202__7ee77202[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77202[];
+extern VTBL_ENTRY _ZTV7ee77202[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77202[];
+static VTBL_ENTRY alt_thunk_names847[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72023barEv,_ZTv0_n16_N6dd72023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023barEv,_ZThn8_N6dd72023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72023fooEv,_ZTv0_n12_N6dd72023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72023fooEv,_ZThn8_N6dd72023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772023fooEv,_ZTv0_n12_N7ee772023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772023fooEv,_ZThn16_N7ee772023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772023fooEv,_ZTv0_n20_N7ee772023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772023fooEv,_ZThn8_N7ee772023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772023barEv,_ZTv0_n16_N7ee772023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772023barEv,_ZThn16_N7ee772023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772023barEv,_ZThn8_N7ee772023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77202 = { "ee77202", // class name
+ bases_ee77202, 4,
+ &(vtc_ee77202[0]), // expected_vtbl_contents
+ &(vtt_ee77202[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77202),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77202),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77202),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names847,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc302 : virtual bb02 {
+ int c;
+ virtual void foo(); // _ZN5cc3023fooEv
+ ~cc302(); // tgen
+ cc302(); // tgen
+};
+//SIG(-1 cc302) C1{ VBC2{ BC3{ v1 v2 Fi} Fi} v1 Fi}
+
+
+void cc302 ::foo(){vfunc_called(this, "_ZN5cc3023fooEv");}
+cc302 ::~cc302(){ note_dtor("cc302", this);} // tgen
+cc302 ::cc302(){ note_ctor("cc302", this);} // tgen
+
+static void Test_cc302()
+{
+ extern Class_Descriptor cd_cc302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc302, buf);
+ cc302 *dp, &lv = *(dp=new (buf) cc302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,8), "cc302");
+ check_base_class_offset(lv, (bb02*), ABISELECT(16,8), "cc302");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc302.c");
+ test_class_info(&lv, &cd_cc302);
+ dp->~cc302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc302(Test_cc302, "cc302", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc302C1Ev();
+extern void _ZN5cc302D1Ev();
+Name_Map name_map_cc302[] = {
+ NSPAIR(_ZN5cc302C1Ev),
+ NSPAIR(_ZN5cc302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+static Base_Class bases_cc302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc302[];
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_cc302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV5cc302[];
+static VTT_ENTRY vtt_cc302[] = {
+ {&(_ZTV5cc302[3]), 3,10},
+ {&(_ZTV5cc302[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static VTBL_ENTRY alt_thunk_names848[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc302 = { "cc302", // class name
+ bases_cc302, 2,
+ &(vtc_cc302[0]), // expected_vtbl_contents
+ &(vtt_cc302[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc302),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc302),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names848,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0302 : cc302 {
+ int d;
+ ~dd0302(); // tgen
+ dd0302(); // tgen
+};
+//SIG(-1 dd0302) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+dd0302 ::~dd0302(){ note_dtor("dd0302", this);} // tgen
+dd0302 ::dd0302(){ note_ctor("dd0302", this);} // tgen
+
+static void Test_dd0302()
+{
+ extern Class_Descriptor cd_dd0302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0302, buf);
+ dd0302 *dp, &lv = *(dp=new (buf) dd0302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd0302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(16,12), "dd0302");
+ check_base_class_offset(lv, (cc302*), 0, "dd0302");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0302.d");
+ test_class_info(&lv, &cd_dd0302);
+ dp->~dd0302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0302(Test_dd0302, "dd0302", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0302C1Ev();
+extern void _ZN6dd0302D1Ev();
+Name_Map name_map_dd0302[] = {
+ NSPAIR(_ZN6dd0302C1Ev),
+ NSPAIR(_ZN6dd0302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static Base_Class bases_dd0302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0302[];
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd0302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd0302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__6dd0302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd0302[] = {
+ {&(_ZTV6dd0302[3]), 3,10},
+ {&(_tg__ZTV5cc302__6dd0302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__6dd0302[4]), 4,6},
+ {&(_ZTV6dd0302[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static VTBL_ENTRY alt_thunk_names849[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0302 = { "dd0302", // class name
+ bases_dd0302, 3,
+ &(vtc_dd0302[0]), // expected_vtbl_contents
+ &(vtt_dd0302[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0302),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0302),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names849,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00302 : dd0302 {
+ int e;
+ ~ee00302(); // tgen
+ ee00302(); // tgen
+};
+//SIG(1 ee00302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00302 ::~ee00302(){ note_dtor("ee00302", this);} // tgen
+ee00302 ::ee00302(){ note_ctor("ee00302", this);} // tgen
+
+static void Test_ee00302()
+{
+ extern Class_Descriptor cd_ee00302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00302, buf);
+ ee00302 *dp, &lv = *(dp=new (buf) ee00302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee00302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd0302*), ABISELECT(24,16), "ee00302");
+ check_base_class_offset(lv, (cc302*)(dd0302*), 0, "ee00302");
+ check_base_class_offset(lv, (dd0302*), 0, "ee00302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00302.e");
+ test_class_info(&lv, &cd_ee00302);
+ dp->~ee00302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00302(Test_ee00302, "ee00302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00302C1Ev();
+extern void _ZN7ee00302D1Ev();
+Name_Map name_map_ee00302[] = {
+ NSPAIR(_ZN7ee00302C1Ev),
+ NSPAIR(_ZN7ee00302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd0302;
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static Base_Class bases_ee00302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00302[];
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee00302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0302__7ee00302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd0302__7ee00302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd0302__7ee00302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0302__7ee00302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee00302[] = {
+ {&(_ZTV7ee00302[3]), 3,10},
+ {&(_tg__ZTV6dd0302__7ee00302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd0302__7ee00302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd0302__7ee00302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0302__7ee00302[4]), 4,6},
+ {&(_ZTV7ee00302[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00302[];
+extern VTBL_ENTRY _ZTV7ee00302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00302[];
+static VTBL_ENTRY alt_thunk_names850[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00302 = { "ee00302", // class name
+ bases_ee00302, 4,
+ &(vtc_ee00302[0]), // expected_vtbl_contents
+ &(vtt_ee00302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00302),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names850,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10302 : virtual dd0302 {
+ int e;
+ ~ee10302(); // tgen
+ ee10302(); // tgen
+};
+//SIG(1 ee10302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10302 ::~ee10302(){ note_dtor("ee10302", this);} // tgen
+ee10302 ::ee10302(){ note_ctor("ee10302", this);} // tgen
+
+static void Test_ee10302()
+{
+ extern Class_Descriptor cd_ee10302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10302, buf);
+ ee10302 *dp, &lv = *(dp=new (buf) ee10302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee10302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd0302*), ABISELECT(32,20), "ee10302");
+ check_base_class_offset(lv, (cc302*)(dd0302*), ABISELECT(16,8), "ee10302");
+ check_base_class_offset(lv, (dd0302*), ABISELECT(16,8), "ee10302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10302.e");
+ test_class_info(&lv, &cd_ee10302);
+ dp->~ee10302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10302(Test_ee10302, "ee10302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10302C1Ev();
+extern void _ZN7ee10302D1Ev();
+Name_Map name_map_ee10302[] = {
+ NSPAIR(_ZN7ee10302C1Ev),
+ NSPAIR(_ZN7ee10302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd0302;
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static Base_Class bases_ee10302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0302, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10302[];
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee10302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10302[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0302__7ee10302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd0302__7ee10302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd0302__7ee10302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0302__7ee10302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee10302[] = {
+ {&(_ZTV7ee10302[4]), 4,15},
+ {&(_ZTV7ee10302[8]), 8,15},
+ {&(_ZTV7ee10302[13]), 13,15},
+ {&(_tg__ZTV6dd0302__7ee10302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd0302__7ee10302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd0302__7ee10302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0302__7ee10302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10302[];
+extern VTBL_ENTRY _ZTV7ee10302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10302[];
+static VTBL_ENTRY alt_thunk_names851[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10302 = { "ee10302", // class name
+ bases_ee10302, 4,
+ &(vtc_ee10302[0]), // expected_vtbl_contents
+ &(vtt_ee10302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10302),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names851,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20302 : dd0302 {
+ int e;
+ virtual void foo(); // _ZN7ee203023fooEv
+ ~ee20302(); // tgen
+ ee20302(); // tgen
+};
+//SIG(1 ee20302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20302 ::foo(){vfunc_called(this, "_ZN7ee203023fooEv");}
+ee20302 ::~ee20302(){ note_dtor("ee20302", this);} // tgen
+ee20302 ::ee20302(){ note_ctor("ee20302", this);} // tgen
+
+static void Test_ee20302()
+{
+ extern Class_Descriptor cd_ee20302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20302, buf);
+ ee20302 *dp, &lv = *(dp=new (buf) ee20302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee20302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd0302*), ABISELECT(24,16), "ee20302");
+ check_base_class_offset(lv, (cc302*)(dd0302*), 0, "ee20302");
+ check_base_class_offset(lv, (dd0302*), 0, "ee20302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20302.e");
+ test_class_info(&lv, &cd_ee20302);
+ dp->~ee20302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20302(Test_ee20302, "ee20302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20302C1Ev();
+extern void _ZN7ee20302D1Ev();
+Name_Map name_map_ee20302[] = {
+ NSPAIR(_ZN7ee20302C1Ev),
+ NSPAIR(_ZN7ee20302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd0302;
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static Base_Class bases_ee20302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20302[];
+extern void _ZN7ee203023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203023fooEv,_ZTv0_n12_N7ee203023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee203023fooEv,_ZThn16_N7ee203023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee20302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20302[0]),
+ (VTBL_ENTRY)&_ZN7ee203023fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203023fooEv,_ZTv0_n12_N7ee203023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0302__7ee20302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd0302__7ee20302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd0302__7ee20302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0302__7ee20302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee20302[] = {
+ {&(_ZTV7ee20302[3]), 3,10},
+ {&(_tg__ZTV6dd0302__7ee20302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd0302__7ee20302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd0302__7ee20302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0302__7ee20302[4]), 4,6},
+ {&(_ZTV7ee20302[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee20302[];
+extern VTBL_ENTRY _ZTV7ee20302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20302[];
+static VTBL_ENTRY alt_thunk_names852[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203023fooEv,_ZTv0_n12_N7ee203023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee203023fooEv,_ZThn16_N7ee203023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20302 = { "ee20302", // class name
+ bases_ee20302, 4,
+ &(vtc_ee20302[0]), // expected_vtbl_contents
+ &(vtt_ee20302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20302),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names852,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30302 : virtual dd0302 {
+ int e;
+ virtual void foo(); // _ZN7ee303023fooEv
+ ~ee30302(); // tgen
+ ee30302(); // tgen
+};
+//SIG(1 ee30302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30302 ::foo(){vfunc_called(this, "_ZN7ee303023fooEv");}
+ee30302 ::~ee30302(){ note_dtor("ee30302", this);} // tgen
+ee30302 ::ee30302(){ note_ctor("ee30302", this);} // tgen
+
+static void Test_ee30302()
+{
+ extern Class_Descriptor cd_ee30302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30302, buf);
+ ee30302 *dp, &lv = *(dp=new (buf) ee30302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee30302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd0302*), ABISELECT(32,20), "ee30302");
+ check_base_class_offset(lv, (cc302*)(dd0302*), ABISELECT(16,8), "ee30302");
+ check_base_class_offset(lv, (dd0302*), ABISELECT(16,8), "ee30302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30302.e");
+ test_class_info(&lv, &cd_ee30302);
+ dp->~ee30302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30302(Test_ee30302, "ee30302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30302C1Ev();
+extern void _ZN7ee30302D1Ev();
+Name_Map name_map_ee30302[] = {
+ NSPAIR(_ZN7ee30302C1Ev),
+ NSPAIR(_ZN7ee30302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd0302;
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static Base_Class bases_ee30302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30302[];
+extern void _ZN7ee303023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee303023fooEv,_ZTv0_n16_N7ee303023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303023fooEv,_ZThn8_N7ee303023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee303023fooEv,_ZTv0_n12_N7ee303023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee303023fooEv,_ZThn20_N7ee303023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee30302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30302[0]),
+ (VTBL_ENTRY)&_ZN7ee303023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee303023fooEv,_ZTv0_n16_N7ee303023fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303023fooEv,_ZTv0_n12_N7ee303023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0302__7ee30302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd0302__7ee30302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd0302__7ee30302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0302__7ee30302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee30302[] = {
+ {&(_ZTV7ee30302[4]), 4,16},
+ {&(_ZTV7ee30302[9]), 9,16},
+ {&(_ZTV7ee30302[14]), 14,16},
+ {&(_tg__ZTV6dd0302__7ee30302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd0302__7ee30302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd0302__7ee30302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0302__7ee30302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30302[];
+extern VTBL_ENTRY _ZTV7ee30302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30302[];
+static VTBL_ENTRY alt_thunk_names853[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303023fooEv,_ZTv0_n12_N7ee303023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee303023fooEv,_ZThn20_N7ee303023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee303023fooEv,_ZTv0_n16_N7ee303023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303023fooEv,_ZThn8_N7ee303023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30302 = { "ee30302", // class name
+ bases_ee30302, 4,
+ &(vtc_ee30302[0]), // expected_vtbl_contents
+ &(vtt_ee30302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names853,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40302 : dd0302 {
+ int e;
+ virtual void bar(); // _ZN7ee403023barEv
+ ~ee40302(); // tgen
+ ee40302(); // tgen
+};
+//SIG(1 ee40302) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40302 ::bar(){vfunc_called(this, "_ZN7ee403023barEv");}
+ee40302 ::~ee40302(){ note_dtor("ee40302", this);} // tgen
+ee40302 ::ee40302(){ note_ctor("ee40302", this);} // tgen
+
+static void Test_ee40302()
+{
+ extern Class_Descriptor cd_ee40302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40302, buf);
+ ee40302 *dp, &lv = *(dp=new (buf) ee40302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee40302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd0302*), ABISELECT(24,16), "ee40302");
+ check_base_class_offset(lv, (cc302*)(dd0302*), 0, "ee40302");
+ check_base_class_offset(lv, (dd0302*), 0, "ee40302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40302.e");
+ test_class_info(&lv, &cd_ee40302);
+ dp->~ee40302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40302(Test_ee40302, "ee40302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40302C1Ev();
+extern void _ZN7ee40302D1Ev();
+Name_Map name_map_ee40302[] = {
+ NSPAIR(_ZN7ee40302C1Ev),
+ NSPAIR(_ZN7ee40302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd0302;
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static Base_Class bases_ee40302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN7ee403023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee403023barEv,_ZTv0_n16_N7ee403023barEv)();
+extern void ABISELECT(_ZThn24_N7ee403023barEv,_ZThn16_N7ee403023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN7ee403023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee403023barEv,_ZTv0_n16_N7ee403023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0302__7ee40302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd0302__7ee40302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd0302__7ee40302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0302__7ee40302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee40302[] = {
+ {&(_ZTV7ee40302[3]), 3,11},
+ {&(_tg__ZTV6dd0302__7ee40302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd0302__7ee40302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd0302__7ee40302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0302__7ee40302[4]), 4,6},
+ {&(_ZTV7ee40302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40302[];
+extern VTBL_ENTRY _ZTV7ee40302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40302[];
+static VTBL_ENTRY alt_thunk_names854[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee403023barEv,_ZTv0_n16_N7ee403023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee403023barEv,_ZThn16_N7ee403023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40302 = { "ee40302", // class name
+ bases_ee40302, 4,
+ &(vtc_ee40302[0]), // expected_vtbl_contents
+ &(vtt_ee40302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names854,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50302 : virtual dd0302 {
+ int e;
+ virtual void bar(); // _ZN7ee503023barEv
+ ~ee50302(); // tgen
+ ee50302(); // tgen
+};
+//SIG(1 ee50302) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50302 ::bar(){vfunc_called(this, "_ZN7ee503023barEv");}
+ee50302 ::~ee50302(){ note_dtor("ee50302", this);} // tgen
+ee50302 ::ee50302(){ note_ctor("ee50302", this);} // tgen
+
+static void Test_ee50302()
+{
+ extern Class_Descriptor cd_ee50302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50302, buf);
+ ee50302 *dp, &lv = *(dp=new (buf) ee50302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee50302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd0302*), ABISELECT(32,20), "ee50302");
+ check_base_class_offset(lv, (cc302*)(dd0302*), ABISELECT(16,8), "ee50302");
+ check_base_class_offset(lv, (dd0302*), ABISELECT(16,8), "ee50302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50302.e");
+ test_class_info(&lv, &cd_ee50302);
+ dp->~ee50302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50302(Test_ee50302, "ee50302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50302C1Ev();
+extern void _ZN7ee50302D1Ev();
+Name_Map name_map_ee50302[] = {
+ NSPAIR(_ZN7ee50302C1Ev),
+ NSPAIR(_ZN7ee50302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd0302;
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static Base_Class bases_ee50302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50302[];
+extern void _ZN7ee503023barEv();
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee503023barEv,_ZTv0_n16_N7ee503023barEv)();
+extern void ABISELECT(_ZThn32_N7ee503023barEv,_ZThn20_N7ee503023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50302[0]),
+ (VTBL_ENTRY)&_ZN7ee503023barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee503023barEv,_ZTv0_n16_N7ee503023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0302__7ee50302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd0302__7ee50302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd0302__7ee50302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0302__7ee50302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee50302[] = {
+ {&(_ZTV7ee50302[4]), 4,16},
+ {&(_ZTV7ee50302[9]), 9,16},
+ {&(_ZTV7ee50302[14]), 14,16},
+ {&(_tg__ZTV6dd0302__7ee50302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd0302__7ee50302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd0302__7ee50302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0302__7ee50302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50302[];
+extern VTBL_ENTRY _ZTV7ee50302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50302[];
+static VTBL_ENTRY alt_thunk_names855[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee503023barEv,_ZTv0_n16_N7ee503023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee503023barEv,_ZThn20_N7ee503023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50302 = { "ee50302", // class name
+ bases_ee50302, 4,
+ &(vtc_ee50302[0]), // expected_vtbl_contents
+ &(vtt_ee50302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names855,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60302 : dd0302 {
+ int e;
+ virtual void foo(); // _ZN7ee603023fooEv
+ virtual void bar(); // _ZN7ee603023barEv
+ ~ee60302(); // tgen
+ ee60302(); // tgen
+};
+//SIG(1 ee60302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60302 ::foo(){vfunc_called(this, "_ZN7ee603023fooEv");}
+void ee60302 ::bar(){vfunc_called(this, "_ZN7ee603023barEv");}
+ee60302 ::~ee60302(){ note_dtor("ee60302", this);} // tgen
+ee60302 ::ee60302(){ note_ctor("ee60302", this);} // tgen
+
+static void Test_ee60302()
+{
+ extern Class_Descriptor cd_ee60302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60302, buf);
+ ee60302 *dp, &lv = *(dp=new (buf) ee60302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee60302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd0302*), ABISELECT(24,16), "ee60302");
+ check_base_class_offset(lv, (cc302*)(dd0302*), 0, "ee60302");
+ check_base_class_offset(lv, (dd0302*), 0, "ee60302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60302.e");
+ test_class_info(&lv, &cd_ee60302);
+ dp->~ee60302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60302(Test_ee60302, "ee60302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60302C1Ev();
+extern void _ZN7ee60302D1Ev();
+Name_Map name_map_ee60302[] = {
+ NSPAIR(_ZN7ee60302C1Ev),
+ NSPAIR(_ZN7ee60302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd0302;
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static Base_Class bases_ee60302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60302[];
+extern void _ZN7ee603023fooEv();
+extern void _ZN7ee603023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee603023fooEv,_ZTv0_n12_N7ee603023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee603023fooEv,_ZThn16_N7ee603023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee603023barEv,_ZTv0_n16_N7ee603023barEv)();
+extern void ABISELECT(_ZThn24_N7ee603023barEv,_ZThn16_N7ee603023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60302[0]),
+ (VTBL_ENTRY)&_ZN7ee603023fooEv,
+ (VTBL_ENTRY)&_ZN7ee603023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603023fooEv,_ZTv0_n12_N7ee603023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603023barEv,_ZTv0_n16_N7ee603023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0302__7ee60302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd0302__7ee60302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd0302__7ee60302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0302__7ee60302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee60302[] = {
+ {&(_ZTV7ee60302[3]), 3,11},
+ {&(_tg__ZTV6dd0302__7ee60302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd0302__7ee60302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd0302__7ee60302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0302__7ee60302[4]), 4,6},
+ {&(_ZTV7ee60302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60302[];
+extern VTBL_ENTRY _ZTV7ee60302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60302[];
+static VTBL_ENTRY alt_thunk_names856[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee603023barEv,_ZTv0_n16_N7ee603023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603023barEv,_ZThn16_N7ee603023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603023fooEv,_ZTv0_n12_N7ee603023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603023fooEv,_ZThn16_N7ee603023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60302 = { "ee60302", // class name
+ bases_ee60302, 4,
+ &(vtc_ee60302[0]), // expected_vtbl_contents
+ &(vtt_ee60302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names856,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70302 : virtual dd0302 {
+ int e;
+ virtual void foo(); // _ZN7ee703023fooEv
+ virtual void bar(); // _ZN7ee703023barEv
+ ~ee70302(); // tgen
+ ee70302(); // tgen
+};
+//SIG(1 ee70302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70302 ::foo(){vfunc_called(this, "_ZN7ee703023fooEv");}
+void ee70302 ::bar(){vfunc_called(this, "_ZN7ee703023barEv");}
+ee70302 ::~ee70302(){ note_dtor("ee70302", this);} // tgen
+ee70302 ::ee70302(){ note_ctor("ee70302", this);} // tgen
+
+static void Test_ee70302()
+{
+ extern Class_Descriptor cd_ee70302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70302, buf);
+ ee70302 *dp, &lv = *(dp=new (buf) ee70302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee70302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd0302*), ABISELECT(32,20), "ee70302");
+ check_base_class_offset(lv, (cc302*)(dd0302*), ABISELECT(16,8), "ee70302");
+ check_base_class_offset(lv, (dd0302*), ABISELECT(16,8), "ee70302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70302.e");
+ test_class_info(&lv, &cd_ee70302);
+ dp->~ee70302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70302(Test_ee70302, "ee70302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70302C1Ev();
+extern void _ZN7ee70302D1Ev();
+Name_Map name_map_ee70302[] = {
+ NSPAIR(_ZN7ee70302C1Ev),
+ NSPAIR(_ZN7ee70302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd0302;
+extern VTBL_ENTRY _ZTI6dd0302[];
+extern VTBL_ENTRY _ZTV6dd0302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0302[];
+static Base_Class bases_ee70302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70302[];
+extern void _ZN7ee703023fooEv();
+extern void _ZN7ee703023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee703023fooEv,_ZTv0_n16_N7ee703023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703023fooEv,_ZThn8_N7ee703023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703023fooEv,_ZTv0_n12_N7ee703023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee703023fooEv,_ZThn20_N7ee703023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703023barEv,_ZTv0_n16_N7ee703023barEv)();
+extern void ABISELECT(_ZThn32_N7ee703023barEv,_ZThn20_N7ee703023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70302[0]),
+ (VTBL_ENTRY)&_ZN7ee703023fooEv,
+ (VTBL_ENTRY)&_ZN7ee703023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703023fooEv,_ZTv0_n16_N7ee703023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703023fooEv,_ZTv0_n12_N7ee703023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703023barEv,_ZTv0_n16_N7ee703023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0302__7ee70302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd0302__7ee70302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd0302__7ee70302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0302__7ee70302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee70302[] = {
+ {&(_ZTV7ee70302[4]), 4,17},
+ {&(_ZTV7ee70302[10]), 10,17},
+ {&(_ZTV7ee70302[15]), 15,17},
+ {&(_tg__ZTV6dd0302__7ee70302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd0302__7ee70302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd0302__7ee70302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0302__7ee70302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70302[];
+extern VTBL_ENTRY _ZTV7ee70302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70302[];
+static VTBL_ENTRY alt_thunk_names857[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703023barEv,_ZTv0_n16_N7ee703023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703023barEv,_ZThn20_N7ee703023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703023fooEv,_ZTv0_n12_N7ee703023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703023fooEv,_ZThn20_N7ee703023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703023fooEv,_ZTv0_n16_N7ee703023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703023fooEv,_ZThn8_N7ee703023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70302 = { "ee70302", // class name
+ bases_ee70302, 4,
+ &(vtc_ee70302[0]), // expected_vtbl_contents
+ &(vtt_ee70302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names857,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1302 : virtual cc302 {
+ int d;
+ ~dd1302(); // tgen
+ dd1302(); // tgen
+};
+//SIG(-1 dd1302) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v1 Fi} Fi}
+
+
+dd1302 ::~dd1302(){ note_dtor("dd1302", this);} // tgen
+dd1302 ::dd1302(){ note_ctor("dd1302", this);} // tgen
+
+static void Test_dd1302()
+{
+ extern Class_Descriptor cd_dd1302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1302, buf);
+ dd1302 *dp, &lv = *(dp=new (buf) dd1302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd1302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,16), "dd1302");
+ check_base_class_offset(lv, (cc302*), ABISELECT(16,8), "dd1302");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1302.d");
+ test_class_info(&lv, &cd_dd1302);
+ dp->~dd1302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1302(Test_dd1302, "dd1302", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1302C1Ev();
+extern void _ZN6dd1302D1Ev();
+Name_Map name_map_dd1302[] = {
+ NSPAIR(_ZN6dd1302C1Ev),
+ NSPAIR(_ZN6dd1302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static Base_Class bases_dd1302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd1302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__6dd1302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd1302[] = {
+ {&(_ZTV6dd1302[4]), 4,15},
+ {&(_ZTV6dd1302[8]), 8,15},
+ {&(_ZTV6dd1302[13]), 13,15},
+ {&(_tg__ZTV5cc302__6dd1302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__6dd1302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static VTBL_ENTRY alt_thunk_names858[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1302 = { "dd1302", // class name
+ bases_dd1302, 3,
+ &(vtc_dd1302[0]), // expected_vtbl_contents
+ &(vtt_dd1302[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1302),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1302),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names858,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01302 : dd1302 {
+ int e;
+ ~ee01302(); // tgen
+ ee01302(); // tgen
+};
+//SIG(1 ee01302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01302 ::~ee01302(){ note_dtor("ee01302", this);} // tgen
+ee01302 ::ee01302(){ note_ctor("ee01302", this);} // tgen
+
+static void Test_ee01302()
+{
+ extern Class_Descriptor cd_ee01302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01302, buf);
+ ee01302 *dp, &lv = *(dp=new (buf) ee01302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee01302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee01302");
+ check_base_class_offset(lv, (cc302*)(dd1302*), ABISELECT(16,12), "ee01302");
+ check_base_class_offset(lv, (dd1302*), 0, "ee01302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01302.e");
+ test_class_info(&lv, &cd_ee01302);
+ dp->~ee01302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01302(Test_ee01302, "ee01302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01302C1Ev();
+extern void _ZN7ee01302D1Ev();
+Name_Map name_map_ee01302[] = {
+ NSPAIR(_ZN7ee01302C1Ev),
+ NSPAIR(_ZN7ee01302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd1302;
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static Base_Class bases_ee01302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01302[];
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee01302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01302[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01302[];
+static VTBL_ENTRY _tg__ZTV6dd1302__7ee01302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302__7ee01302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1302__7ee01302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee01302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee01302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee01302[] = {
+ {&(_ZTV7ee01302[4]), 4,15},
+ {&(_tg__ZTV6dd1302__7ee01302[4]), 4,4},
+ {&(_tg__ZTV5cc302__6dd1302__7ee01302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1302__7ee01302[4]), 4,6},
+ {&(_ZTV7ee01302[8]), 8,15},
+ {&(_ZTV7ee01302[13]), 13,15},
+ {&(_tg__ZTV5cc302__7ee01302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee01302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01302[];
+extern VTBL_ENTRY _ZTV7ee01302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01302[];
+static VTBL_ENTRY alt_thunk_names859[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01302 = { "ee01302", // class name
+ bases_ee01302, 4,
+ &(vtc_ee01302[0]), // expected_vtbl_contents
+ &(vtt_ee01302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01302),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names859,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11302 : virtual dd1302 {
+ int e;
+ ~ee11302(); // tgen
+ ee11302(); // tgen
+};
+//SIG(1 ee11302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11302 ::~ee11302(){ note_dtor("ee11302", this);} // tgen
+ee11302 ::ee11302(){ note_ctor("ee11302", this);} // tgen
+
+static void Test_ee11302()
+{
+ extern Class_Descriptor cd_ee11302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11302, buf);
+ ee11302 *dp, &lv = *(dp=new (buf) ee11302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee11302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee11302");
+ check_base_class_offset(lv, (cc302*)(dd1302*), ABISELECT(32,16), "ee11302");
+ check_base_class_offset(lv, (dd1302*), ABISELECT(16,8), "ee11302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11302.e");
+ test_class_info(&lv, &cd_ee11302);
+ dp->~ee11302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11302(Test_ee11302, "ee11302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11302C1Ev();
+extern void _ZN7ee11302D1Ev();
+Name_Map name_map_ee11302[] = {
+ NSPAIR(_ZN7ee11302C1Ev),
+ NSPAIR(_ZN7ee11302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd1302;
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static Base_Class bases_ee11302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11302[];
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee11302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11302[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11302[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11302[];
+static VTBL_ENTRY _tg__ZTV6dd1302__7ee11302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302__7ee11302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1302__7ee11302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee11302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee11302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee11302[] = {
+ {&(_ZTV7ee11302[5]), 5,20},
+ {&(_ZTV7ee11302[9]), 9,20},
+ {&(_ZTV7ee11302[13]), 13,20},
+ {&(_ZTV7ee11302[18]), 18,20},
+ {&(_tg__ZTV6dd1302__7ee11302[4]), 4,4},
+ {&(_tg__ZTV5cc302__6dd1302__7ee11302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1302__7ee11302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee11302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee11302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11302[];
+extern VTBL_ENTRY _ZTV7ee11302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11302[];
+static VTBL_ENTRY alt_thunk_names860[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11302 = { "ee11302", // class name
+ bases_ee11302, 4,
+ &(vtc_ee11302[0]), // expected_vtbl_contents
+ &(vtt_ee11302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11302),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names860,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21302 : dd1302 {
+ int e;
+ virtual void foo(); // _ZN7ee213023fooEv
+ ~ee21302(); // tgen
+ ee21302(); // tgen
+};
+//SIG(1 ee21302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21302 ::foo(){vfunc_called(this, "_ZN7ee213023fooEv");}
+ee21302 ::~ee21302(){ note_dtor("ee21302", this);} // tgen
+ee21302 ::ee21302(){ note_ctor("ee21302", this);} // tgen
+
+static void Test_ee21302()
+{
+ extern Class_Descriptor cd_ee21302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21302, buf);
+ ee21302 *dp, &lv = *(dp=new (buf) ee21302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee21302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee21302");
+ check_base_class_offset(lv, (cc302*)(dd1302*), ABISELECT(16,12), "ee21302");
+ check_base_class_offset(lv, (dd1302*), 0, "ee21302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21302.e");
+ test_class_info(&lv, &cd_ee21302);
+ dp->~ee21302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21302(Test_ee21302, "ee21302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21302C1Ev();
+extern void _ZN7ee21302D1Ev();
+Name_Map name_map_ee21302[] = {
+ NSPAIR(_ZN7ee21302C1Ev),
+ NSPAIR(_ZN7ee21302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd1302;
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static Base_Class bases_ee21302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21302[];
+extern void _ZN7ee213023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee213023fooEv,_ZTv0_n16_N7ee213023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213023fooEv,_ZThn12_N7ee213023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee213023fooEv,_ZTv0_n12_N7ee213023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee213023fooEv,_ZThn20_N7ee213023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee21302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21302[0]),
+ (VTBL_ENTRY)&_ZN7ee213023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee213023fooEv,_ZTv0_n16_N7ee213023fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213023fooEv,_ZTv0_n12_N7ee213023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21302[];
+static VTBL_ENTRY _tg__ZTV6dd1302__7ee21302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302__7ee21302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1302__7ee21302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee21302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee21302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee21302[] = {
+ {&(_ZTV7ee21302[4]), 4,16},
+ {&(_tg__ZTV6dd1302__7ee21302[4]), 4,4},
+ {&(_tg__ZTV5cc302__6dd1302__7ee21302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1302__7ee21302[4]), 4,6},
+ {&(_ZTV7ee21302[9]), 9,16},
+ {&(_ZTV7ee21302[14]), 14,16},
+ {&(_tg__ZTV5cc302__7ee21302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee21302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21302[];
+extern VTBL_ENTRY _ZTV7ee21302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21302[];
+static VTBL_ENTRY alt_thunk_names861[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213023fooEv,_ZTv0_n12_N7ee213023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee213023fooEv,_ZThn20_N7ee213023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee213023fooEv,_ZTv0_n16_N7ee213023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213023fooEv,_ZThn12_N7ee213023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21302 = { "ee21302", // class name
+ bases_ee21302, 4,
+ &(vtc_ee21302[0]), // expected_vtbl_contents
+ &(vtt_ee21302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names861,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31302 : virtual dd1302 {
+ int e;
+ virtual void foo(); // _ZN7ee313023fooEv
+ ~ee31302(); // tgen
+ ee31302(); // tgen
+};
+//SIG(1 ee31302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31302 ::foo(){vfunc_called(this, "_ZN7ee313023fooEv");}
+ee31302 ::~ee31302(){ note_dtor("ee31302", this);} // tgen
+ee31302 ::ee31302(){ note_ctor("ee31302", this);} // tgen
+
+static void Test_ee31302()
+{
+ extern Class_Descriptor cd_ee31302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31302, buf);
+ ee31302 *dp, &lv = *(dp=new (buf) ee31302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee31302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee31302");
+ check_base_class_offset(lv, (cc302*)(dd1302*), ABISELECT(32,16), "ee31302");
+ check_base_class_offset(lv, (dd1302*), ABISELECT(16,8), "ee31302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31302.e");
+ test_class_info(&lv, &cd_ee31302);
+ dp->~ee31302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31302(Test_ee31302, "ee31302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31302C1Ev();
+extern void _ZN7ee31302D1Ev();
+Name_Map name_map_ee31302[] = {
+ NSPAIR(_ZN7ee31302C1Ev),
+ NSPAIR(_ZN7ee31302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd1302;
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static Base_Class bases_ee31302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31302[];
+extern void _ZN7ee313023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee313023fooEv,_ZTv0_n16_N7ee313023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313023fooEv,_ZThn16_N7ee313023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee313023fooEv,_ZTv0_n12_N7ee313023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee313023fooEv,_ZThn24_N7ee313023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee31302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31302[0]),
+ (VTBL_ENTRY)&_ZN7ee313023fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31302[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee313023fooEv,_ZTv0_n16_N7ee313023fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313023fooEv,_ZTv0_n12_N7ee313023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31302[];
+static VTBL_ENTRY _tg__ZTV6dd1302__7ee31302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302__7ee31302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1302__7ee31302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee31302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee31302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee31302[] = {
+ {&(_ZTV7ee31302[5]), 5,21},
+ {&(_ZTV7ee31302[10]), 10,21},
+ {&(_ZTV7ee31302[14]), 14,21},
+ {&(_ZTV7ee31302[19]), 19,21},
+ {&(_tg__ZTV6dd1302__7ee31302[4]), 4,4},
+ {&(_tg__ZTV5cc302__6dd1302__7ee31302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1302__7ee31302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee31302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee31302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31302[];
+extern VTBL_ENTRY _ZTV7ee31302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31302[];
+static VTBL_ENTRY alt_thunk_names862[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313023fooEv,_ZTv0_n12_N7ee313023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee313023fooEv,_ZThn24_N7ee313023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee313023fooEv,_ZTv0_n16_N7ee313023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313023fooEv,_ZThn16_N7ee313023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31302 = { "ee31302", // class name
+ bases_ee31302, 4,
+ &(vtc_ee31302[0]), // expected_vtbl_contents
+ &(vtt_ee31302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31302),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names862,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41302 : dd1302 {
+ int e;
+ virtual void bar(); // _ZN7ee413023barEv
+ ~ee41302(); // tgen
+ ee41302(); // tgen
+};
+//SIG(1 ee41302) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41302 ::bar(){vfunc_called(this, "_ZN7ee413023barEv");}
+ee41302 ::~ee41302(){ note_dtor("ee41302", this);} // tgen
+ee41302 ::ee41302(){ note_ctor("ee41302", this);} // tgen
+
+static void Test_ee41302()
+{
+ extern Class_Descriptor cd_ee41302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41302, buf);
+ ee41302 *dp, &lv = *(dp=new (buf) ee41302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee41302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee41302");
+ check_base_class_offset(lv, (cc302*)(dd1302*), ABISELECT(16,12), "ee41302");
+ check_base_class_offset(lv, (dd1302*), 0, "ee41302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41302.e");
+ test_class_info(&lv, &cd_ee41302);
+ dp->~ee41302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41302(Test_ee41302, "ee41302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41302C1Ev();
+extern void _ZN7ee41302D1Ev();
+Name_Map name_map_ee41302[] = {
+ NSPAIR(_ZN7ee41302C1Ev),
+ NSPAIR(_ZN7ee41302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd1302;
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static Base_Class bases_ee41302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41302[];
+extern void _ZN7ee413023barEv();
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee413023barEv,_ZTv0_n16_N7ee413023barEv)();
+extern void ABISELECT(_ZThn32_N7ee413023barEv,_ZThn20_N7ee413023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41302[0]),
+ (VTBL_ENTRY)&_ZN7ee413023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee413023barEv,_ZTv0_n16_N7ee413023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41302[];
+static VTBL_ENTRY _tg__ZTV6dd1302__7ee41302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302__7ee41302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1302__7ee41302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee41302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee41302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee41302[] = {
+ {&(_ZTV7ee41302[4]), 4,16},
+ {&(_tg__ZTV6dd1302__7ee41302[4]), 4,4},
+ {&(_tg__ZTV5cc302__6dd1302__7ee41302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1302__7ee41302[4]), 4,6},
+ {&(_ZTV7ee41302[9]), 9,16},
+ {&(_ZTV7ee41302[14]), 14,16},
+ {&(_tg__ZTV5cc302__7ee41302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee41302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41302[];
+extern VTBL_ENTRY _ZTV7ee41302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41302[];
+static VTBL_ENTRY alt_thunk_names863[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee413023barEv,_ZTv0_n16_N7ee413023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee413023barEv,_ZThn20_N7ee413023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41302 = { "ee41302", // class name
+ bases_ee41302, 4,
+ &(vtc_ee41302[0]), // expected_vtbl_contents
+ &(vtt_ee41302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names863,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51302 : virtual dd1302 {
+ int e;
+ virtual void bar(); // _ZN7ee513023barEv
+ ~ee51302(); // tgen
+ ee51302(); // tgen
+};
+//SIG(1 ee51302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51302 ::bar(){vfunc_called(this, "_ZN7ee513023barEv");}
+ee51302 ::~ee51302(){ note_dtor("ee51302", this);} // tgen
+ee51302 ::ee51302(){ note_ctor("ee51302", this);} // tgen
+
+static void Test_ee51302()
+{
+ extern Class_Descriptor cd_ee51302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51302, buf);
+ ee51302 *dp, &lv = *(dp=new (buf) ee51302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee51302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee51302");
+ check_base_class_offset(lv, (cc302*)(dd1302*), ABISELECT(32,16), "ee51302");
+ check_base_class_offset(lv, (dd1302*), ABISELECT(16,8), "ee51302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51302.e");
+ test_class_info(&lv, &cd_ee51302);
+ dp->~ee51302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51302(Test_ee51302, "ee51302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51302C1Ev();
+extern void _ZN7ee51302D1Ev();
+Name_Map name_map_ee51302[] = {
+ NSPAIR(_ZN7ee51302C1Ev),
+ NSPAIR(_ZN7ee51302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd1302;
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static Base_Class bases_ee51302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51302[];
+extern void _ZN7ee513023barEv();
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee513023barEv,_ZTv0_n16_N7ee513023barEv)();
+extern void ABISELECT(_ZThn48_N7ee513023barEv,_ZThn24_N7ee513023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51302[0]),
+ (VTBL_ENTRY)&_ZN7ee513023barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51302[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee513023barEv,_ZTv0_n16_N7ee513023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51302[];
+static VTBL_ENTRY _tg__ZTV6dd1302__7ee51302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302__7ee51302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1302__7ee51302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee51302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee51302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee51302[] = {
+ {&(_ZTV7ee51302[5]), 5,21},
+ {&(_ZTV7ee51302[10]), 10,21},
+ {&(_ZTV7ee51302[14]), 14,21},
+ {&(_ZTV7ee51302[19]), 19,21},
+ {&(_tg__ZTV6dd1302__7ee51302[4]), 4,4},
+ {&(_tg__ZTV5cc302__6dd1302__7ee51302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1302__7ee51302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee51302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee51302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51302[];
+extern VTBL_ENTRY _ZTV7ee51302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51302[];
+static VTBL_ENTRY alt_thunk_names864[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee513023barEv,_ZTv0_n16_N7ee513023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee513023barEv,_ZThn24_N7ee513023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51302 = { "ee51302", // class name
+ bases_ee51302, 4,
+ &(vtc_ee51302[0]), // expected_vtbl_contents
+ &(vtt_ee51302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51302),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names864,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61302 : dd1302 {
+ int e;
+ virtual void foo(); // _ZN7ee613023fooEv
+ virtual void bar(); // _ZN7ee613023barEv
+ ~ee61302(); // tgen
+ ee61302(); // tgen
+};
+//SIG(1 ee61302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61302 ::foo(){vfunc_called(this, "_ZN7ee613023fooEv");}
+void ee61302 ::bar(){vfunc_called(this, "_ZN7ee613023barEv");}
+ee61302 ::~ee61302(){ note_dtor("ee61302", this);} // tgen
+ee61302 ::ee61302(){ note_ctor("ee61302", this);} // tgen
+
+static void Test_ee61302()
+{
+ extern Class_Descriptor cd_ee61302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61302, buf);
+ ee61302 *dp, &lv = *(dp=new (buf) ee61302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee61302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee61302");
+ check_base_class_offset(lv, (cc302*)(dd1302*), ABISELECT(16,12), "ee61302");
+ check_base_class_offset(lv, (dd1302*), 0, "ee61302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61302.e");
+ test_class_info(&lv, &cd_ee61302);
+ dp->~ee61302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61302(Test_ee61302, "ee61302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61302C1Ev();
+extern void _ZN7ee61302D1Ev();
+Name_Map name_map_ee61302[] = {
+ NSPAIR(_ZN7ee61302C1Ev),
+ NSPAIR(_ZN7ee61302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd1302;
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static Base_Class bases_ee61302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61302[];
+extern void _ZN7ee613023fooEv();
+extern void _ZN7ee613023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee613023fooEv,_ZTv0_n16_N7ee613023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613023fooEv,_ZThn12_N7ee613023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613023fooEv,_ZTv0_n12_N7ee613023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee613023fooEv,_ZThn20_N7ee613023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613023barEv,_ZTv0_n16_N7ee613023barEv)();
+extern void ABISELECT(_ZThn32_N7ee613023barEv,_ZThn20_N7ee613023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61302[0]),
+ (VTBL_ENTRY)&_ZN7ee613023fooEv,
+ (VTBL_ENTRY)&_ZN7ee613023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613023fooEv,_ZTv0_n16_N7ee613023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613023fooEv,_ZTv0_n12_N7ee613023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613023barEv,_ZTv0_n16_N7ee613023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61302[];
+static VTBL_ENTRY _tg__ZTV6dd1302__7ee61302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302__7ee61302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1302__7ee61302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee61302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee61302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee61302[] = {
+ {&(_ZTV7ee61302[4]), 4,17},
+ {&(_tg__ZTV6dd1302__7ee61302[4]), 4,4},
+ {&(_tg__ZTV5cc302__6dd1302__7ee61302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1302__7ee61302[4]), 4,6},
+ {&(_ZTV7ee61302[10]), 10,17},
+ {&(_ZTV7ee61302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee61302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee61302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61302[];
+extern VTBL_ENTRY _ZTV7ee61302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61302[];
+static VTBL_ENTRY alt_thunk_names865[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613023barEv,_ZTv0_n16_N7ee613023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613023barEv,_ZThn20_N7ee613023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613023fooEv,_ZTv0_n12_N7ee613023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613023fooEv,_ZThn20_N7ee613023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613023fooEv,_ZTv0_n16_N7ee613023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613023fooEv,_ZThn12_N7ee613023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61302 = { "ee61302", // class name
+ bases_ee61302, 4,
+ &(vtc_ee61302[0]), // expected_vtbl_contents
+ &(vtt_ee61302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names865,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71302 : virtual dd1302 {
+ int e;
+ virtual void foo(); // _ZN7ee713023fooEv
+ virtual void bar(); // _ZN7ee713023barEv
+ ~ee71302(); // tgen
+ ee71302(); // tgen
+};
+//SIG(1 ee71302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71302 ::foo(){vfunc_called(this, "_ZN7ee713023fooEv");}
+void ee71302 ::bar(){vfunc_called(this, "_ZN7ee713023barEv");}
+ee71302 ::~ee71302(){ note_dtor("ee71302", this);} // tgen
+ee71302 ::ee71302(){ note_ctor("ee71302", this);} // tgen
+
+static void Test_ee71302()
+{
+ extern Class_Descriptor cd_ee71302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71302, buf);
+ ee71302 *dp, &lv = *(dp=new (buf) ee71302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee71302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee71302");
+ check_base_class_offset(lv, (cc302*)(dd1302*), ABISELECT(32,16), "ee71302");
+ check_base_class_offset(lv, (dd1302*), ABISELECT(16,8), "ee71302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71302.e");
+ test_class_info(&lv, &cd_ee71302);
+ dp->~ee71302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71302(Test_ee71302, "ee71302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71302C1Ev();
+extern void _ZN7ee71302D1Ev();
+Name_Map name_map_ee71302[] = {
+ NSPAIR(_ZN7ee71302C1Ev),
+ NSPAIR(_ZN7ee71302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd1302;
+extern VTBL_ENTRY _ZTI6dd1302[];
+extern VTBL_ENTRY _ZTV6dd1302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1302[];
+static Base_Class bases_ee71302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1302, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71302[];
+extern void _ZN7ee713023fooEv();
+extern void _ZN7ee713023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee713023fooEv,_ZTv0_n16_N7ee713023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713023fooEv,_ZThn16_N7ee713023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713023fooEv,_ZTv0_n12_N7ee713023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee713023fooEv,_ZThn24_N7ee713023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713023barEv,_ZTv0_n16_N7ee713023barEv)();
+extern void ABISELECT(_ZThn48_N7ee713023barEv,_ZThn24_N7ee713023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71302[0]),
+ (VTBL_ENTRY)&_ZN7ee713023fooEv,
+ (VTBL_ENTRY)&_ZN7ee713023barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71302[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713023fooEv,_ZTv0_n16_N7ee713023fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713023fooEv,_ZTv0_n12_N7ee713023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713023barEv,_ZTv0_n16_N7ee713023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71302[];
+static VTBL_ENTRY _tg__ZTV6dd1302__7ee71302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd1302__7ee71302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1302__7ee71302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee71302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee71302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee71302[] = {
+ {&(_ZTV7ee71302[5]), 5,22},
+ {&(_ZTV7ee71302[11]), 11,22},
+ {&(_ZTV7ee71302[15]), 15,22},
+ {&(_ZTV7ee71302[20]), 20,22},
+ {&(_tg__ZTV6dd1302__7ee71302[4]), 4,4},
+ {&(_tg__ZTV5cc302__6dd1302__7ee71302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1302__7ee71302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee71302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee71302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71302[];
+extern VTBL_ENTRY _ZTV7ee71302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71302[];
+static VTBL_ENTRY alt_thunk_names866[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713023barEv,_ZTv0_n16_N7ee713023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713023barEv,_ZThn24_N7ee713023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713023fooEv,_ZTv0_n12_N7ee713023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713023fooEv,_ZThn24_N7ee713023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713023fooEv,_ZTv0_n16_N7ee713023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713023fooEv,_ZThn16_N7ee713023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71302 = { "ee71302", // class name
+ bases_ee71302, 4,
+ &(vtc_ee71302[0]), // expected_vtbl_contents
+ &(vtt_ee71302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71302),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names866,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2302 : cc302 {
+ int d;
+ virtual void foo(); // _ZN6dd23023fooEv
+ ~dd2302(); // tgen
+ dd2302(); // tgen
+};
+//SIG(-1 dd2302) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd2302 ::foo(){vfunc_called(this, "_ZN6dd23023fooEv");}
+dd2302 ::~dd2302(){ note_dtor("dd2302", this);} // tgen
+dd2302 ::dd2302(){ note_ctor("dd2302", this);} // tgen
+
+static void Test_dd2302()
+{
+ extern Class_Descriptor cd_dd2302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2302, buf);
+ dd2302 *dp, &lv = *(dp=new (buf) dd2302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd2302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(16,12), "dd2302");
+ check_base_class_offset(lv, (cc302*), 0, "dd2302");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2302.d");
+ test_class_info(&lv, &cd_dd2302);
+ dp->~dd2302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2302(Test_dd2302, "dd2302", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2302C1Ev();
+extern void _ZN6dd2302D1Ev();
+Name_Map name_map_dd2302[] = {
+ NSPAIR(_ZN6dd2302C1Ev),
+ NSPAIR(_ZN6dd2302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static Base_Class bases_dd2302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2302[];
+extern void _ZN6dd23023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd2302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd2302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__6dd2302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd2302[] = {
+ {&(_ZTV6dd2302[3]), 3,10},
+ {&(_tg__ZTV5cc302__6dd2302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__6dd2302[4]), 4,6},
+ {&(_ZTV6dd2302[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static VTBL_ENTRY alt_thunk_names867[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2302 = { "dd2302", // class name
+ bases_dd2302, 3,
+ &(vtc_dd2302[0]), // expected_vtbl_contents
+ &(vtt_dd2302[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2302),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2302),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names867,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02302 : dd2302 {
+ int e;
+ ~ee02302(); // tgen
+ ee02302(); // tgen
+};
+//SIG(1 ee02302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02302 ::~ee02302(){ note_dtor("ee02302", this);} // tgen
+ee02302 ::ee02302(){ note_ctor("ee02302", this);} // tgen
+
+static void Test_ee02302()
+{
+ extern Class_Descriptor cd_ee02302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02302, buf);
+ ee02302 *dp, &lv = *(dp=new (buf) ee02302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee02302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd2302*), ABISELECT(24,16), "ee02302");
+ check_base_class_offset(lv, (cc302*)(dd2302*), 0, "ee02302");
+ check_base_class_offset(lv, (dd2302*), 0, "ee02302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02302.e");
+ test_class_info(&lv, &cd_ee02302);
+ dp->~ee02302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02302(Test_ee02302, "ee02302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02302C1Ev();
+extern void _ZN7ee02302D1Ev();
+Name_Map name_map_ee02302[] = {
+ NSPAIR(_ZN7ee02302C1Ev),
+ NSPAIR(_ZN7ee02302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd2302;
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static Base_Class bases_ee02302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02302[];
+extern void _ZN6dd23023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee02302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02302[];
+extern void _ZN6dd23023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2302__7ee02302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd2302__7ee02302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd2302__7ee02302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2302__7ee02302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee02302[] = {
+ {&(_ZTV7ee02302[3]), 3,10},
+ {&(_tg__ZTV6dd2302__7ee02302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd2302__7ee02302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd2302__7ee02302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2302__7ee02302[4]), 4,6},
+ {&(_ZTV7ee02302[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee02302[];
+extern VTBL_ENTRY _ZTV7ee02302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02302[];
+static VTBL_ENTRY alt_thunk_names868[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02302 = { "ee02302", // class name
+ bases_ee02302, 4,
+ &(vtc_ee02302[0]), // expected_vtbl_contents
+ &(vtt_ee02302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02302),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names868,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12302 : virtual dd2302 {
+ int e;
+ ~ee12302(); // tgen
+ ee12302(); // tgen
+};
+//SIG(1 ee12302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12302 ::~ee12302(){ note_dtor("ee12302", this);} // tgen
+ee12302 ::ee12302(){ note_ctor("ee12302", this);} // tgen
+
+static void Test_ee12302()
+{
+ extern Class_Descriptor cd_ee12302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12302, buf);
+ ee12302 *dp, &lv = *(dp=new (buf) ee12302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee12302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd2302*), ABISELECT(32,20), "ee12302");
+ check_base_class_offset(lv, (cc302*)(dd2302*), ABISELECT(16,8), "ee12302");
+ check_base_class_offset(lv, (dd2302*), ABISELECT(16,8), "ee12302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12302.e");
+ test_class_info(&lv, &cd_ee12302);
+ dp->~ee12302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12302(Test_ee12302, "ee12302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12302C1Ev();
+extern void _ZN7ee12302D1Ev();
+Name_Map name_map_ee12302[] = {
+ NSPAIR(_ZN7ee12302C1Ev),
+ NSPAIR(_ZN7ee12302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd2302;
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static Base_Class bases_ee12302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2302, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12302[];
+extern void _ZN6dd23023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee12302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12302[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12302[];
+extern void _ZN6dd23023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2302__7ee12302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd2302__7ee12302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd2302__7ee12302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2302__7ee12302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee12302[] = {
+ {&(_ZTV7ee12302[4]), 4,15},
+ {&(_ZTV7ee12302[8]), 8,15},
+ {&(_ZTV7ee12302[13]), 13,15},
+ {&(_tg__ZTV6dd2302__7ee12302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd2302__7ee12302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd2302__7ee12302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2302__7ee12302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12302[];
+extern VTBL_ENTRY _ZTV7ee12302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12302[];
+static VTBL_ENTRY alt_thunk_names869[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12302 = { "ee12302", // class name
+ bases_ee12302, 4,
+ &(vtc_ee12302[0]), // expected_vtbl_contents
+ &(vtt_ee12302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12302),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names869,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22302 : dd2302 {
+ int e;
+ virtual void foo(); // _ZN7ee223023fooEv
+ ~ee22302(); // tgen
+ ee22302(); // tgen
+};
+//SIG(1 ee22302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22302 ::foo(){vfunc_called(this, "_ZN7ee223023fooEv");}
+ee22302 ::~ee22302(){ note_dtor("ee22302", this);} // tgen
+ee22302 ::ee22302(){ note_ctor("ee22302", this);} // tgen
+
+static void Test_ee22302()
+{
+ extern Class_Descriptor cd_ee22302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22302, buf);
+ ee22302 *dp, &lv = *(dp=new (buf) ee22302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee22302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd2302*), ABISELECT(24,16), "ee22302");
+ check_base_class_offset(lv, (cc302*)(dd2302*), 0, "ee22302");
+ check_base_class_offset(lv, (dd2302*), 0, "ee22302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22302.e");
+ test_class_info(&lv, &cd_ee22302);
+ dp->~ee22302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22302(Test_ee22302, "ee22302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22302C1Ev();
+extern void _ZN7ee22302D1Ev();
+Name_Map name_map_ee22302[] = {
+ NSPAIR(_ZN7ee22302C1Ev),
+ NSPAIR(_ZN7ee22302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd2302;
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static Base_Class bases_ee22302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22302[];
+extern void _ZN7ee223023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223023fooEv,_ZTv0_n12_N7ee223023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee223023fooEv,_ZThn16_N7ee223023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee22302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22302[0]),
+ (VTBL_ENTRY)&_ZN7ee223023fooEv,
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223023fooEv,_ZTv0_n12_N7ee223023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22302[];
+extern void _ZN6dd23023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2302__7ee22302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd2302__7ee22302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd2302__7ee22302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2302__7ee22302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee22302[] = {
+ {&(_ZTV7ee22302[3]), 3,10},
+ {&(_tg__ZTV6dd2302__7ee22302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd2302__7ee22302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd2302__7ee22302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2302__7ee22302[4]), 4,6},
+ {&(_ZTV7ee22302[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee22302[];
+extern VTBL_ENTRY _ZTV7ee22302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22302[];
+static VTBL_ENTRY alt_thunk_names870[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223023fooEv,_ZTv0_n12_N7ee223023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee223023fooEv,_ZThn16_N7ee223023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22302 = { "ee22302", // class name
+ bases_ee22302, 4,
+ &(vtc_ee22302[0]), // expected_vtbl_contents
+ &(vtt_ee22302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22302),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names870,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32302 : virtual dd2302 {
+ int e;
+ virtual void foo(); // _ZN7ee323023fooEv
+ ~ee32302(); // tgen
+ ee32302(); // tgen
+};
+//SIG(1 ee32302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32302 ::foo(){vfunc_called(this, "_ZN7ee323023fooEv");}
+ee32302 ::~ee32302(){ note_dtor("ee32302", this);} // tgen
+ee32302 ::ee32302(){ note_ctor("ee32302", this);} // tgen
+
+static void Test_ee32302()
+{
+ extern Class_Descriptor cd_ee32302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32302, buf);
+ ee32302 *dp, &lv = *(dp=new (buf) ee32302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee32302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd2302*), ABISELECT(32,20), "ee32302");
+ check_base_class_offset(lv, (cc302*)(dd2302*), ABISELECT(16,8), "ee32302");
+ check_base_class_offset(lv, (dd2302*), ABISELECT(16,8), "ee32302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32302.e");
+ test_class_info(&lv, &cd_ee32302);
+ dp->~ee32302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32302(Test_ee32302, "ee32302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32302C1Ev();
+extern void _ZN7ee32302D1Ev();
+Name_Map name_map_ee32302[] = {
+ NSPAIR(_ZN7ee32302C1Ev),
+ NSPAIR(_ZN7ee32302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd2302;
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static Base_Class bases_ee32302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32302[];
+extern void _ZN7ee323023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee323023fooEv,_ZTv0_n16_N7ee323023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323023fooEv,_ZThn8_N7ee323023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee323023fooEv,_ZTv0_n12_N7ee323023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee323023fooEv,_ZThn20_N7ee323023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee32302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32302[0]),
+ (VTBL_ENTRY)&_ZN7ee323023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee323023fooEv,_ZTv0_n16_N7ee323023fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323023fooEv,_ZTv0_n12_N7ee323023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32302[];
+extern void _ZN6dd23023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2302__7ee32302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd2302__7ee32302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd2302__7ee32302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2302__7ee32302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee32302[] = {
+ {&(_ZTV7ee32302[4]), 4,16},
+ {&(_ZTV7ee32302[9]), 9,16},
+ {&(_ZTV7ee32302[14]), 14,16},
+ {&(_tg__ZTV6dd2302__7ee32302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd2302__7ee32302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd2302__7ee32302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2302__7ee32302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32302[];
+extern VTBL_ENTRY _ZTV7ee32302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32302[];
+static VTBL_ENTRY alt_thunk_names871[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323023fooEv,_ZTv0_n12_N7ee323023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee323023fooEv,_ZThn20_N7ee323023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee323023fooEv,_ZTv0_n16_N7ee323023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323023fooEv,_ZThn8_N7ee323023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32302 = { "ee32302", // class name
+ bases_ee32302, 4,
+ &(vtc_ee32302[0]), // expected_vtbl_contents
+ &(vtt_ee32302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names871,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42302 : dd2302 {
+ int e;
+ virtual void bar(); // _ZN7ee423023barEv
+ ~ee42302(); // tgen
+ ee42302(); // tgen
+};
+//SIG(1 ee42302) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42302 ::bar(){vfunc_called(this, "_ZN7ee423023barEv");}
+ee42302 ::~ee42302(){ note_dtor("ee42302", this);} // tgen
+ee42302 ::ee42302(){ note_ctor("ee42302", this);} // tgen
+
+static void Test_ee42302()
+{
+ extern Class_Descriptor cd_ee42302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42302, buf);
+ ee42302 *dp, &lv = *(dp=new (buf) ee42302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee42302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd2302*), ABISELECT(24,16), "ee42302");
+ check_base_class_offset(lv, (cc302*)(dd2302*), 0, "ee42302");
+ check_base_class_offset(lv, (dd2302*), 0, "ee42302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42302.e");
+ test_class_info(&lv, &cd_ee42302);
+ dp->~ee42302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42302(Test_ee42302, "ee42302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42302C1Ev();
+extern void _ZN7ee42302D1Ev();
+Name_Map name_map_ee42302[] = {
+ NSPAIR(_ZN7ee42302C1Ev),
+ NSPAIR(_ZN7ee42302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd2302;
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static Base_Class bases_ee42302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42302[];
+extern void _ZN6dd23023fooEv();
+extern void _ZN7ee423023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee423023barEv,_ZTv0_n16_N7ee423023barEv)();
+extern void ABISELECT(_ZThn24_N7ee423023barEv,_ZThn16_N7ee423023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+ (VTBL_ENTRY)&_ZN7ee423023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee423023barEv,_ZTv0_n16_N7ee423023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42302[];
+extern void _ZN6dd23023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2302__7ee42302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd2302__7ee42302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd2302__7ee42302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2302__7ee42302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee42302[] = {
+ {&(_ZTV7ee42302[3]), 3,11},
+ {&(_tg__ZTV6dd2302__7ee42302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd2302__7ee42302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd2302__7ee42302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2302__7ee42302[4]), 4,6},
+ {&(_ZTV7ee42302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42302[];
+extern VTBL_ENTRY _ZTV7ee42302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42302[];
+static VTBL_ENTRY alt_thunk_names872[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee423023barEv,_ZTv0_n16_N7ee423023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee423023barEv,_ZThn16_N7ee423023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42302 = { "ee42302", // class name
+ bases_ee42302, 4,
+ &(vtc_ee42302[0]), // expected_vtbl_contents
+ &(vtt_ee42302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names872,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52302 : virtual dd2302 {
+ int e;
+ virtual void bar(); // _ZN7ee523023barEv
+ ~ee52302(); // tgen
+ ee52302(); // tgen
+};
+//SIG(1 ee52302) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52302 ::bar(){vfunc_called(this, "_ZN7ee523023barEv");}
+ee52302 ::~ee52302(){ note_dtor("ee52302", this);} // tgen
+ee52302 ::ee52302(){ note_ctor("ee52302", this);} // tgen
+
+static void Test_ee52302()
+{
+ extern Class_Descriptor cd_ee52302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52302, buf);
+ ee52302 *dp, &lv = *(dp=new (buf) ee52302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee52302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd2302*), ABISELECT(32,20), "ee52302");
+ check_base_class_offset(lv, (cc302*)(dd2302*), ABISELECT(16,8), "ee52302");
+ check_base_class_offset(lv, (dd2302*), ABISELECT(16,8), "ee52302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52302.e");
+ test_class_info(&lv, &cd_ee52302);
+ dp->~ee52302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52302(Test_ee52302, "ee52302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52302C1Ev();
+extern void _ZN7ee52302D1Ev();
+Name_Map name_map_ee52302[] = {
+ NSPAIR(_ZN7ee52302C1Ev),
+ NSPAIR(_ZN7ee52302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd2302;
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static Base_Class bases_ee52302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52302[];
+extern void _ZN7ee523023barEv();
+extern void _ZN6dd23023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee523023barEv,_ZTv0_n16_N7ee523023barEv)();
+extern void ABISELECT(_ZThn32_N7ee523023barEv,_ZThn20_N7ee523023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52302[0]),
+ (VTBL_ENTRY)&_ZN7ee523023barEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee523023barEv,_ZTv0_n16_N7ee523023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52302[];
+extern void _ZN6dd23023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2302__7ee52302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd2302__7ee52302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd2302__7ee52302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2302__7ee52302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee52302[] = {
+ {&(_ZTV7ee52302[4]), 4,16},
+ {&(_ZTV7ee52302[9]), 9,16},
+ {&(_ZTV7ee52302[14]), 14,16},
+ {&(_tg__ZTV6dd2302__7ee52302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd2302__7ee52302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd2302__7ee52302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2302__7ee52302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52302[];
+extern VTBL_ENTRY _ZTV7ee52302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52302[];
+static VTBL_ENTRY alt_thunk_names873[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee523023barEv,_ZTv0_n16_N7ee523023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee523023barEv,_ZThn20_N7ee523023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52302 = { "ee52302", // class name
+ bases_ee52302, 4,
+ &(vtc_ee52302[0]), // expected_vtbl_contents
+ &(vtt_ee52302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names873,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62302 : dd2302 {
+ int e;
+ virtual void foo(); // _ZN7ee623023fooEv
+ virtual void bar(); // _ZN7ee623023barEv
+ ~ee62302(); // tgen
+ ee62302(); // tgen
+};
+//SIG(1 ee62302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62302 ::foo(){vfunc_called(this, "_ZN7ee623023fooEv");}
+void ee62302 ::bar(){vfunc_called(this, "_ZN7ee623023barEv");}
+ee62302 ::~ee62302(){ note_dtor("ee62302", this);} // tgen
+ee62302 ::ee62302(){ note_ctor("ee62302", this);} // tgen
+
+static void Test_ee62302()
+{
+ extern Class_Descriptor cd_ee62302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62302, buf);
+ ee62302 *dp, &lv = *(dp=new (buf) ee62302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee62302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd2302*), ABISELECT(24,16), "ee62302");
+ check_base_class_offset(lv, (cc302*)(dd2302*), 0, "ee62302");
+ check_base_class_offset(lv, (dd2302*), 0, "ee62302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62302.e");
+ test_class_info(&lv, &cd_ee62302);
+ dp->~ee62302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62302(Test_ee62302, "ee62302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62302C1Ev();
+extern void _ZN7ee62302D1Ev();
+Name_Map name_map_ee62302[] = {
+ NSPAIR(_ZN7ee62302C1Ev),
+ NSPAIR(_ZN7ee62302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd2302;
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static Base_Class bases_ee62302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62302[];
+extern void _ZN7ee623023fooEv();
+extern void _ZN7ee623023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee623023fooEv,_ZTv0_n12_N7ee623023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee623023fooEv,_ZThn16_N7ee623023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee623023barEv,_ZTv0_n16_N7ee623023barEv)();
+extern void ABISELECT(_ZThn24_N7ee623023barEv,_ZThn16_N7ee623023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62302[0]),
+ (VTBL_ENTRY)&_ZN7ee623023fooEv,
+ (VTBL_ENTRY)&_ZN7ee623023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623023fooEv,_ZTv0_n12_N7ee623023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623023barEv,_ZTv0_n16_N7ee623023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62302[];
+extern void _ZN6dd23023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2302__7ee62302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd2302__7ee62302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd2302__7ee62302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2302__7ee62302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee62302[] = {
+ {&(_ZTV7ee62302[3]), 3,11},
+ {&(_tg__ZTV6dd2302__7ee62302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd2302__7ee62302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd2302__7ee62302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2302__7ee62302[4]), 4,6},
+ {&(_ZTV7ee62302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62302[];
+extern VTBL_ENTRY _ZTV7ee62302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62302[];
+static VTBL_ENTRY alt_thunk_names874[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd23023fooEv,_ZThn16_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee623023barEv,_ZTv0_n16_N7ee623023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623023barEv,_ZThn16_N7ee623023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623023fooEv,_ZTv0_n12_N7ee623023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623023fooEv,_ZThn16_N7ee623023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62302 = { "ee62302", // class name
+ bases_ee62302, 4,
+ &(vtc_ee62302[0]), // expected_vtbl_contents
+ &(vtt_ee62302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names874,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72302 : virtual dd2302 {
+ int e;
+ virtual void foo(); // _ZN7ee723023fooEv
+ virtual void bar(); // _ZN7ee723023barEv
+ ~ee72302(); // tgen
+ ee72302(); // tgen
+};
+//SIG(1 ee72302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72302 ::foo(){vfunc_called(this, "_ZN7ee723023fooEv");}
+void ee72302 ::bar(){vfunc_called(this, "_ZN7ee723023barEv");}
+ee72302 ::~ee72302(){ note_dtor("ee72302", this);} // tgen
+ee72302 ::ee72302(){ note_ctor("ee72302", this);} // tgen
+
+static void Test_ee72302()
+{
+ extern Class_Descriptor cd_ee72302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72302, buf);
+ ee72302 *dp, &lv = *(dp=new (buf) ee72302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee72302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd2302*), ABISELECT(32,20), "ee72302");
+ check_base_class_offset(lv, (cc302*)(dd2302*), ABISELECT(16,8), "ee72302");
+ check_base_class_offset(lv, (dd2302*), ABISELECT(16,8), "ee72302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72302.e");
+ test_class_info(&lv, &cd_ee72302);
+ dp->~ee72302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72302(Test_ee72302, "ee72302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72302C1Ev();
+extern void _ZN7ee72302D1Ev();
+Name_Map name_map_ee72302[] = {
+ NSPAIR(_ZN7ee72302C1Ev),
+ NSPAIR(_ZN7ee72302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd2302;
+extern VTBL_ENTRY _ZTI6dd2302[];
+extern VTBL_ENTRY _ZTV6dd2302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2302[];
+static Base_Class bases_ee72302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72302[];
+extern void _ZN7ee723023fooEv();
+extern void _ZN7ee723023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee723023fooEv,_ZTv0_n16_N7ee723023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723023fooEv,_ZThn8_N7ee723023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723023fooEv,_ZTv0_n12_N7ee723023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee723023fooEv,_ZThn20_N7ee723023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723023barEv,_ZTv0_n16_N7ee723023barEv)();
+extern void ABISELECT(_ZThn32_N7ee723023barEv,_ZThn20_N7ee723023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72302[0]),
+ (VTBL_ENTRY)&_ZN7ee723023fooEv,
+ (VTBL_ENTRY)&_ZN7ee723023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723023fooEv,_ZTv0_n16_N7ee723023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723023fooEv,_ZTv0_n12_N7ee723023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723023barEv,_ZTv0_n16_N7ee723023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72302[];
+extern void _ZN6dd23023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2302__7ee72302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&_ZN6dd23023fooEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd2302__7ee72302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd2302__7ee72302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2302__7ee72302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee72302[] = {
+ {&(_ZTV7ee72302[4]), 4,17},
+ {&(_ZTV7ee72302[10]), 10,17},
+ {&(_ZTV7ee72302[15]), 15,17},
+ {&(_tg__ZTV6dd2302__7ee72302[3]), 3,4},
+ {&(_tg__ZTV5cc3026dd2302__7ee72302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd2302__7ee72302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2302__7ee72302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72302[];
+extern VTBL_ENTRY _ZTV7ee72302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72302[];
+static VTBL_ENTRY alt_thunk_names875[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23023fooEv,_ZTv0_n12_N6dd23023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd23023fooEv,_ZThn12_N6dd23023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723023barEv,_ZTv0_n16_N7ee723023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723023barEv,_ZThn20_N7ee723023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723023fooEv,_ZTv0_n12_N7ee723023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723023fooEv,_ZThn20_N7ee723023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723023fooEv,_ZTv0_n16_N7ee723023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723023fooEv,_ZThn8_N7ee723023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72302 = { "ee72302", // class name
+ bases_ee72302, 4,
+ &(vtc_ee72302[0]), // expected_vtbl_contents
+ &(vtt_ee72302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names875,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3302 : virtual cc302 {
+ int d;
+ virtual void foo(); // _ZN6dd33023fooEv
+ ~dd3302(); // tgen
+ dd3302(); // tgen
+};
+//SIG(-1 dd3302) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd3302 ::foo(){vfunc_called(this, "_ZN6dd33023fooEv");}
+dd3302 ::~dd3302(){ note_dtor("dd3302", this);} // tgen
+dd3302 ::dd3302(){ note_ctor("dd3302", this);} // tgen
+
+static void Test_dd3302()
+{
+ extern Class_Descriptor cd_dd3302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3302, buf);
+ dd3302 *dp, &lv = *(dp=new (buf) dd3302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd3302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,16), "dd3302");
+ check_base_class_offset(lv, (cc302*), ABISELECT(16,8), "dd3302");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3302.d");
+ test_class_info(&lv, &cd_dd3302);
+ dp->~dd3302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3302(Test_dd3302, "dd3302", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3302C1Ev();
+extern void _ZN6dd3302D1Ev();
+Name_Map name_map_dd3302[] = {
+ NSPAIR(_ZN6dd3302C1Ev),
+ NSPAIR(_ZN6dd3302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static Base_Class bases_dd3302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 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 _ZTI6dd3302[];
+extern void _ZN6dd33023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_dd3302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__6dd3302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd3302[] = {
+ {&(_ZTV6dd3302[4]), 4,16},
+ {&(_ZTV6dd3302[9]), 9,16},
+ {&(_ZTV6dd3302[14]), 14,16},
+ {&(_tg__ZTV5cc302__6dd3302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__6dd3302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static VTBL_ENTRY alt_thunk_names876[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3302 = { "dd3302", // class name
+ bases_dd3302, 3,
+ &(vtc_dd3302[0]), // expected_vtbl_contents
+ &(vtt_dd3302[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3302),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names876,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03302 : dd3302 {
+ int e;
+ ~ee03302(); // tgen
+ ee03302(); // tgen
+};
+//SIG(1 ee03302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03302 ::~ee03302(){ note_dtor("ee03302", this);} // tgen
+ee03302 ::ee03302(){ note_ctor("ee03302", this);} // tgen
+
+static void Test_ee03302()
+{
+ extern Class_Descriptor cd_ee03302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03302, buf);
+ ee03302 *dp, &lv = *(dp=new (buf) ee03302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee03302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee03302");
+ check_base_class_offset(lv, (cc302*)(dd3302*), ABISELECT(16,12), "ee03302");
+ check_base_class_offset(lv, (dd3302*), 0, "ee03302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03302.e");
+ test_class_info(&lv, &cd_ee03302);
+ dp->~ee03302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03302(Test_ee03302, "ee03302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03302C1Ev();
+extern void _ZN7ee03302D1Ev();
+Name_Map name_map_ee03302[] = {
+ NSPAIR(_ZN7ee03302C1Ev),
+ NSPAIR(_ZN7ee03302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd3302;
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static Base_Class bases_ee03302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03302[];
+extern void _ZN6dd33023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee03302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03302[];
+extern void _ZN6dd33023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3302__7ee03302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302__7ee03302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3302__7ee03302[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee03302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee03302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee03302[] = {
+ {&(_ZTV7ee03302[4]), 4,16},
+ {&(_tg__ZTV6dd3302__7ee03302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd3302__7ee03302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3302__7ee03302[4]), 4,6},
+ {&(_ZTV7ee03302[9]), 9,16},
+ {&(_ZTV7ee03302[14]), 14,16},
+ {&(_tg__ZTV5cc302__7ee03302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee03302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03302[];
+extern VTBL_ENTRY _ZTV7ee03302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03302[];
+static VTBL_ENTRY alt_thunk_names877[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03302 = { "ee03302", // class name
+ bases_ee03302, 4,
+ &(vtc_ee03302[0]), // expected_vtbl_contents
+ &(vtt_ee03302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names877,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13302 : virtual dd3302 {
+ int e;
+ ~ee13302(); // tgen
+ ee13302(); // tgen
+};
+//SIG(1 ee13302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13302 ::~ee13302(){ note_dtor("ee13302", this);} // tgen
+ee13302 ::ee13302(){ note_ctor("ee13302", this);} // tgen
+
+static void Test_ee13302()
+{
+ extern Class_Descriptor cd_ee13302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13302, buf);
+ ee13302 *dp, &lv = *(dp=new (buf) ee13302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee13302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee13302");
+ check_base_class_offset(lv, (cc302*)(dd3302*), ABISELECT(32,16), "ee13302");
+ check_base_class_offset(lv, (dd3302*), ABISELECT(16,8), "ee13302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13302.e");
+ test_class_info(&lv, &cd_ee13302);
+ dp->~ee13302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13302(Test_ee13302, "ee13302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13302C1Ev();
+extern void _ZN7ee13302D1Ev();
+Name_Map name_map_ee13302[] = {
+ NSPAIR(_ZN7ee13302C1Ev),
+ NSPAIR(_ZN7ee13302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd3302;
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static Base_Class bases_ee13302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13302[];
+extern void _ZN6dd33023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee13302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13302[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13302[];
+extern void _ZN6dd33023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3302__7ee13302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302__7ee13302[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3302__7ee13302[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee13302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee13302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee13302[] = {
+ {&(_ZTV7ee13302[5]), 5,22},
+ {&(_ZTV7ee13302[10]), 10,22},
+ {&(_ZTV7ee13302[15]), 15,22},
+ {&(_ZTV7ee13302[20]), 20,22},
+ {&(_tg__ZTV6dd3302__7ee13302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd3302__7ee13302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3302__7ee13302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee13302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee13302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13302[];
+extern VTBL_ENTRY _ZTV7ee13302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13302[];
+static VTBL_ENTRY alt_thunk_names878[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13302 = { "ee13302", // class name
+ bases_ee13302, 4,
+ &(vtc_ee13302[0]), // expected_vtbl_contents
+ &(vtt_ee13302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13302),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names878,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23302 : dd3302 {
+ int e;
+ virtual void foo(); // _ZN7ee233023fooEv
+ ~ee23302(); // tgen
+ ee23302(); // tgen
+};
+//SIG(1 ee23302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23302 ::foo(){vfunc_called(this, "_ZN7ee233023fooEv");}
+ee23302 ::~ee23302(){ note_dtor("ee23302", this);} // tgen
+ee23302 ::ee23302(){ note_ctor("ee23302", this);} // tgen
+
+static void Test_ee23302()
+{
+ extern Class_Descriptor cd_ee23302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23302, buf);
+ ee23302 *dp, &lv = *(dp=new (buf) ee23302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee23302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee23302");
+ check_base_class_offset(lv, (cc302*)(dd3302*), ABISELECT(16,12), "ee23302");
+ check_base_class_offset(lv, (dd3302*), 0, "ee23302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23302.e");
+ test_class_info(&lv, &cd_ee23302);
+ dp->~ee23302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23302(Test_ee23302, "ee23302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23302C1Ev();
+extern void _ZN7ee23302D1Ev();
+Name_Map name_map_ee23302[] = {
+ NSPAIR(_ZN7ee23302C1Ev),
+ NSPAIR(_ZN7ee23302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd3302;
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static Base_Class bases_ee23302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23302[];
+extern void _ZN7ee233023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee233023fooEv,_ZTv0_n16_N7ee233023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233023fooEv,_ZThn12_N7ee233023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee233023fooEv,_ZTv0_n12_N7ee233023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee233023fooEv,_ZThn20_N7ee233023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee23302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23302[0]),
+ (VTBL_ENTRY)&_ZN7ee233023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee233023fooEv,_ZTv0_n16_N7ee233023fooEv),
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233023fooEv,_ZTv0_n12_N7ee233023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23302[];
+extern void _ZN6dd33023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3302__7ee23302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302__7ee23302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3302__7ee23302[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee23302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee23302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee23302[] = {
+ {&(_ZTV7ee23302[4]), 4,16},
+ {&(_tg__ZTV6dd3302__7ee23302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd3302__7ee23302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3302__7ee23302[4]), 4,6},
+ {&(_ZTV7ee23302[9]), 9,16},
+ {&(_ZTV7ee23302[14]), 14,16},
+ {&(_tg__ZTV5cc302__7ee23302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee23302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23302[];
+extern VTBL_ENTRY _ZTV7ee23302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23302[];
+static VTBL_ENTRY alt_thunk_names879[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233023fooEv,_ZTv0_n12_N7ee233023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee233023fooEv,_ZThn20_N7ee233023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee233023fooEv,_ZTv0_n16_N7ee233023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233023fooEv,_ZThn12_N7ee233023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23302 = { "ee23302", // class name
+ bases_ee23302, 4,
+ &(vtc_ee23302[0]), // expected_vtbl_contents
+ &(vtt_ee23302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names879,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33302 : virtual dd3302 {
+ int e;
+ virtual void foo(); // _ZN7ee333023fooEv
+ ~ee33302(); // tgen
+ ee33302(); // tgen
+};
+//SIG(1 ee33302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33302 ::foo(){vfunc_called(this, "_ZN7ee333023fooEv");}
+ee33302 ::~ee33302(){ note_dtor("ee33302", this);} // tgen
+ee33302 ::ee33302(){ note_ctor("ee33302", this);} // tgen
+
+static void Test_ee33302()
+{
+ extern Class_Descriptor cd_ee33302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33302, buf);
+ ee33302 *dp, &lv = *(dp=new (buf) ee33302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee33302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee33302");
+ check_base_class_offset(lv, (cc302*)(dd3302*), ABISELECT(32,16), "ee33302");
+ check_base_class_offset(lv, (dd3302*), ABISELECT(16,8), "ee33302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33302.e");
+ test_class_info(&lv, &cd_ee33302);
+ dp->~ee33302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33302(Test_ee33302, "ee33302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33302C1Ev();
+extern void _ZN7ee33302D1Ev();
+Name_Map name_map_ee33302[] = {
+ NSPAIR(_ZN7ee33302C1Ev),
+ NSPAIR(_ZN7ee33302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd3302;
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static Base_Class bases_ee33302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33302[];
+extern void _ZN7ee333023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee333023fooEv,_ZTv0_n20_N7ee333023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333023fooEv,_ZThn8_N7ee333023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee333023fooEv,_ZTv0_n16_N7ee333023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333023fooEv,_ZThn16_N7ee333023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee333023fooEv,_ZTv0_n12_N7ee333023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee333023fooEv,_ZThn24_N7ee333023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_ee33302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33302[0]),
+ (VTBL_ENTRY)&_ZN7ee333023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333023fooEv,_ZTv0_n20_N7ee333023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee333023fooEv,_ZTv0_n16_N7ee333023fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333023fooEv,_ZTv0_n12_N7ee333023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33302[];
+extern void _ZN6dd33023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3302__7ee33302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302__7ee33302[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3302__7ee33302[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee33302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee33302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee33302[] = {
+ {&(_ZTV7ee33302[5]), 5,23},
+ {&(_ZTV7ee33302[11]), 11,23},
+ {&(_ZTV7ee33302[16]), 16,23},
+ {&(_ZTV7ee33302[21]), 21,23},
+ {&(_tg__ZTV6dd3302__7ee33302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd3302__7ee33302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3302__7ee33302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee33302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee33302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33302[];
+extern VTBL_ENTRY _ZTV7ee33302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33302[];
+static VTBL_ENTRY alt_thunk_names880[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333023fooEv,_ZTv0_n12_N7ee333023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee333023fooEv,_ZThn24_N7ee333023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee333023fooEv,_ZTv0_n16_N7ee333023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333023fooEv,_ZThn16_N7ee333023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333023fooEv,_ZTv0_n20_N7ee333023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333023fooEv,_ZThn8_N7ee333023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33302 = { "ee33302", // class name
+ bases_ee33302, 4,
+ &(vtc_ee33302[0]), // expected_vtbl_contents
+ &(vtt_ee33302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33302),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names880,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43302 : dd3302 {
+ int e;
+ virtual void bar(); // _ZN7ee433023barEv
+ ~ee43302(); // tgen
+ ee43302(); // tgen
+};
+//SIG(1 ee43302) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43302 ::bar(){vfunc_called(this, "_ZN7ee433023barEv");}
+ee43302 ::~ee43302(){ note_dtor("ee43302", this);} // tgen
+ee43302 ::ee43302(){ note_ctor("ee43302", this);} // tgen
+
+static void Test_ee43302()
+{
+ extern Class_Descriptor cd_ee43302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43302, buf);
+ ee43302 *dp, &lv = *(dp=new (buf) ee43302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee43302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee43302");
+ check_base_class_offset(lv, (cc302*)(dd3302*), ABISELECT(16,12), "ee43302");
+ check_base_class_offset(lv, (dd3302*), 0, "ee43302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43302.e");
+ test_class_info(&lv, &cd_ee43302);
+ dp->~ee43302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43302(Test_ee43302, "ee43302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43302C1Ev();
+extern void _ZN7ee43302D1Ev();
+Name_Map name_map_ee43302[] = {
+ NSPAIR(_ZN7ee43302C1Ev),
+ NSPAIR(_ZN7ee43302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd3302;
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static Base_Class bases_ee43302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43302[];
+extern void _ZN6dd33023fooEv();
+extern void _ZN7ee433023barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee433023barEv,_ZTv0_n16_N7ee433023barEv)();
+extern void ABISELECT(_ZThn32_N7ee433023barEv,_ZThn20_N7ee433023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+ (VTBL_ENTRY)&_ZN7ee433023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee433023barEv,_ZTv0_n16_N7ee433023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43302[];
+extern void _ZN6dd33023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3302__7ee43302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302__7ee43302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3302__7ee43302[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee43302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee43302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee43302[] = {
+ {&(_ZTV7ee43302[4]), 4,17},
+ {&(_tg__ZTV6dd3302__7ee43302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd3302__7ee43302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3302__7ee43302[4]), 4,6},
+ {&(_ZTV7ee43302[10]), 10,17},
+ {&(_ZTV7ee43302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee43302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee43302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43302[];
+extern VTBL_ENTRY _ZTV7ee43302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43302[];
+static VTBL_ENTRY alt_thunk_names881[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee433023barEv,_ZTv0_n16_N7ee433023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee433023barEv,_ZThn20_N7ee433023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43302 = { "ee43302", // class name
+ bases_ee43302, 4,
+ &(vtc_ee43302[0]), // expected_vtbl_contents
+ &(vtt_ee43302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names881,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53302 : virtual dd3302 {
+ int e;
+ virtual void bar(); // _ZN7ee533023barEv
+ ~ee53302(); // tgen
+ ee53302(); // tgen
+};
+//SIG(1 ee53302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53302 ::bar(){vfunc_called(this, "_ZN7ee533023barEv");}
+ee53302 ::~ee53302(){ note_dtor("ee53302", this);} // tgen
+ee53302 ::ee53302(){ note_ctor("ee53302", this);} // tgen
+
+static void Test_ee53302()
+{
+ extern Class_Descriptor cd_ee53302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53302, buf);
+ ee53302 *dp, &lv = *(dp=new (buf) ee53302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee53302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee53302");
+ check_base_class_offset(lv, (cc302*)(dd3302*), ABISELECT(32,16), "ee53302");
+ check_base_class_offset(lv, (dd3302*), ABISELECT(16,8), "ee53302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53302.e");
+ test_class_info(&lv, &cd_ee53302);
+ dp->~ee53302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53302(Test_ee53302, "ee53302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53302C1Ev();
+extern void _ZN7ee53302D1Ev();
+Name_Map name_map_ee53302[] = {
+ NSPAIR(_ZN7ee53302C1Ev),
+ NSPAIR(_ZN7ee53302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd3302;
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static Base_Class bases_ee53302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53302[];
+extern void _ZN7ee533023barEv();
+extern void _ZN6dd33023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee533023barEv,_ZTv0_n16_N7ee533023barEv)();
+extern void ABISELECT(_ZThn48_N7ee533023barEv,_ZThn24_N7ee533023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53302[0]),
+ (VTBL_ENTRY)&_ZN7ee533023barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee533023barEv,_ZTv0_n16_N7ee533023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53302[];
+extern void _ZN6dd33023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3302__7ee53302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302__7ee53302[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3302__7ee53302[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee53302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee53302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee53302[] = {
+ {&(_ZTV7ee53302[5]), 5,23},
+ {&(_ZTV7ee53302[11]), 11,23},
+ {&(_ZTV7ee53302[16]), 16,23},
+ {&(_ZTV7ee53302[21]), 21,23},
+ {&(_tg__ZTV6dd3302__7ee53302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd3302__7ee53302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3302__7ee53302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee53302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee53302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53302[];
+extern VTBL_ENTRY _ZTV7ee53302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53302[];
+static VTBL_ENTRY alt_thunk_names882[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee533023barEv,_ZTv0_n16_N7ee533023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee533023barEv,_ZThn24_N7ee533023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53302 = { "ee53302", // class name
+ bases_ee53302, 4,
+ &(vtc_ee53302[0]), // expected_vtbl_contents
+ &(vtt_ee53302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53302),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names882,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63302 : dd3302 {
+ int e;
+ virtual void foo(); // _ZN7ee633023fooEv
+ virtual void bar(); // _ZN7ee633023barEv
+ ~ee63302(); // tgen
+ ee63302(); // tgen
+};
+//SIG(1 ee63302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63302 ::foo(){vfunc_called(this, "_ZN7ee633023fooEv");}
+void ee63302 ::bar(){vfunc_called(this, "_ZN7ee633023barEv");}
+ee63302 ::~ee63302(){ note_dtor("ee63302", this);} // tgen
+ee63302 ::ee63302(){ note_ctor("ee63302", this);} // tgen
+
+static void Test_ee63302()
+{
+ extern Class_Descriptor cd_ee63302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63302, buf);
+ ee63302 *dp, &lv = *(dp=new (buf) ee63302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee63302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee63302");
+ check_base_class_offset(lv, (cc302*)(dd3302*), ABISELECT(16,12), "ee63302");
+ check_base_class_offset(lv, (dd3302*), 0, "ee63302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63302.e");
+ test_class_info(&lv, &cd_ee63302);
+ dp->~ee63302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63302(Test_ee63302, "ee63302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63302C1Ev();
+extern void _ZN7ee63302D1Ev();
+Name_Map name_map_ee63302[] = {
+ NSPAIR(_ZN7ee63302C1Ev),
+ NSPAIR(_ZN7ee63302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd3302;
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static Base_Class bases_ee63302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63302[];
+extern void _ZN7ee633023fooEv();
+extern void _ZN7ee633023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee633023fooEv,_ZTv0_n16_N7ee633023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633023fooEv,_ZThn12_N7ee633023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633023fooEv,_ZTv0_n12_N7ee633023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee633023fooEv,_ZThn20_N7ee633023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633023barEv,_ZTv0_n16_N7ee633023barEv)();
+extern void ABISELECT(_ZThn32_N7ee633023barEv,_ZThn20_N7ee633023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63302[0]),
+ (VTBL_ENTRY)&_ZN7ee633023fooEv,
+ (VTBL_ENTRY)&_ZN7ee633023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633023fooEv,_ZTv0_n16_N7ee633023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633023fooEv,_ZTv0_n12_N7ee633023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633023barEv,_ZTv0_n16_N7ee633023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63302[];
+extern void _ZN6dd33023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3302__7ee63302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302__7ee63302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3302__7ee63302[] = {
+ 0,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee63302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee63302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee63302[] = {
+ {&(_ZTV7ee63302[4]), 4,17},
+ {&(_tg__ZTV6dd3302__7ee63302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd3302__7ee63302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3302__7ee63302[4]), 4,6},
+ {&(_ZTV7ee63302[10]), 10,17},
+ {&(_ZTV7ee63302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee63302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee63302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63302[];
+extern VTBL_ENTRY _ZTV7ee63302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63302[];
+static VTBL_ENTRY alt_thunk_names883[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn20_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn12_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633023barEv,_ZTv0_n16_N7ee633023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633023barEv,_ZThn20_N7ee633023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633023fooEv,_ZTv0_n12_N7ee633023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633023fooEv,_ZThn20_N7ee633023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633023fooEv,_ZTv0_n16_N7ee633023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633023fooEv,_ZThn12_N7ee633023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63302 = { "ee63302", // class name
+ bases_ee63302, 4,
+ &(vtc_ee63302[0]), // expected_vtbl_contents
+ &(vtt_ee63302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names883,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73302 : virtual dd3302 {
+ int e;
+ virtual void foo(); // _ZN7ee733023fooEv
+ virtual void bar(); // _ZN7ee733023barEv
+ ~ee73302(); // tgen
+ ee73302(); // tgen
+};
+//SIG(1 ee73302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73302 ::foo(){vfunc_called(this, "_ZN7ee733023fooEv");}
+void ee73302 ::bar(){vfunc_called(this, "_ZN7ee733023barEv");}
+ee73302 ::~ee73302(){ note_dtor("ee73302", this);} // tgen
+ee73302 ::ee73302(){ note_ctor("ee73302", this);} // tgen
+
+static void Test_ee73302()
+{
+ extern Class_Descriptor cd_ee73302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73302, buf);
+ ee73302 *dp, &lv = *(dp=new (buf) ee73302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee73302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee73302");
+ check_base_class_offset(lv, (cc302*)(dd3302*), ABISELECT(32,16), "ee73302");
+ check_base_class_offset(lv, (dd3302*), ABISELECT(16,8), "ee73302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73302.e");
+ test_class_info(&lv, &cd_ee73302);
+ dp->~ee73302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73302(Test_ee73302, "ee73302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73302C1Ev();
+extern void _ZN7ee73302D1Ev();
+Name_Map name_map_ee73302[] = {
+ NSPAIR(_ZN7ee73302C1Ev),
+ NSPAIR(_ZN7ee73302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd3302;
+extern VTBL_ENTRY _ZTI6dd3302[];
+extern VTBL_ENTRY _ZTV6dd3302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3302[];
+static Base_Class bases_ee73302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3302, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73302[];
+extern void _ZN7ee733023fooEv();
+extern void _ZN7ee733023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee733023fooEv,_ZTv0_n20_N7ee733023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733023fooEv,_ZThn8_N7ee733023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733023fooEv,_ZTv0_n16_N7ee733023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733023fooEv,_ZThn16_N7ee733023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733023fooEv,_ZTv0_n12_N7ee733023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee733023fooEv,_ZThn24_N7ee733023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733023barEv,_ZTv0_n16_N7ee733023barEv)();
+extern void ABISELECT(_ZThn48_N7ee733023barEv,_ZThn24_N7ee733023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73302[0]),
+ (VTBL_ENTRY)&_ZN7ee733023fooEv,
+ (VTBL_ENTRY)&_ZN7ee733023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733023fooEv,_ZTv0_n20_N7ee733023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733023fooEv,_ZTv0_n16_N7ee733023fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733023fooEv,_ZTv0_n12_N7ee733023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733023barEv,_ZTv0_n16_N7ee733023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73302[];
+extern void _ZN6dd33023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3302__7ee73302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&_ZN6dd33023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd3302__7ee73302[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3302__7ee73302[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee73302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee73302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee73302[] = {
+ {&(_ZTV7ee73302[5]), 5,24},
+ {&(_ZTV7ee73302[12]), 12,24},
+ {&(_ZTV7ee73302[17]), 17,24},
+ {&(_ZTV7ee73302[22]), 22,24},
+ {&(_tg__ZTV6dd3302__7ee73302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd3302__7ee73302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3302__7ee73302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee73302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee73302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73302[];
+extern VTBL_ENTRY _ZTV7ee73302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73302[];
+static VTBL_ENTRY alt_thunk_names884[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33023fooEv,_ZTv0_n12_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd33023fooEv,_ZThn16_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd33023fooEv,_ZTv0_n16_N6dd33023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33023fooEv,_ZThn8_N6dd33023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733023barEv,_ZTv0_n16_N7ee733023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733023barEv,_ZThn24_N7ee733023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733023fooEv,_ZTv0_n12_N7ee733023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733023fooEv,_ZThn24_N7ee733023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733023fooEv,_ZTv0_n16_N7ee733023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733023fooEv,_ZThn16_N7ee733023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733023fooEv,_ZTv0_n20_N7ee733023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733023fooEv,_ZThn8_N7ee733023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73302 = { "ee73302", // class name
+ bases_ee73302, 4,
+ &(vtc_ee73302[0]), // expected_vtbl_contents
+ &(vtt_ee73302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73302),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names884,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4302 : cc302 {
+ int d;
+ virtual void bar(); // _ZN6dd43023barEv
+ ~dd4302(); // tgen
+ dd4302(); // tgen
+};
+//SIG(-1 dd4302) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd4302 ::bar(){vfunc_called(this, "_ZN6dd43023barEv");}
+dd4302 ::~dd4302(){ note_dtor("dd4302", this);} // tgen
+dd4302 ::dd4302(){ note_ctor("dd4302", this);} // tgen
+
+static void Test_dd4302()
+{
+ extern Class_Descriptor cd_dd4302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4302, buf);
+ dd4302 *dp, &lv = *(dp=new (buf) dd4302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd4302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(16,12), "dd4302");
+ check_base_class_offset(lv, (cc302*), 0, "dd4302");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4302.d");
+ test_class_info(&lv, &cd_dd4302);
+ dp->~dd4302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4302(Test_dd4302, "dd4302", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4302C1Ev();
+extern void _ZN6dd4302D1Ev();
+Name_Map name_map_dd4302[] = {
+ NSPAIR(_ZN6dd4302C1Ev),
+ NSPAIR(_ZN6dd4302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static Base_Class bases_dd4302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd4302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__6dd4302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd4302[] = {
+ {&(_ZTV6dd4302[3]), 3,11},
+ {&(_tg__ZTV5cc302__6dd4302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__6dd4302[4]), 4,6},
+ {&(_ZTV6dd4302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static VTBL_ENTRY alt_thunk_names885[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4302 = { "dd4302", // class name
+ bases_dd4302, 3,
+ &(vtc_dd4302[0]), // expected_vtbl_contents
+ &(vtt_dd4302[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4302),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names885,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04302 : dd4302 {
+ int e;
+ ~ee04302(); // tgen
+ ee04302(); // tgen
+};
+//SIG(1 ee04302) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04302 ::~ee04302(){ note_dtor("ee04302", this);} // tgen
+ee04302 ::ee04302(){ note_ctor("ee04302", this);} // tgen
+
+static void Test_ee04302()
+{
+ extern Class_Descriptor cd_ee04302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04302, buf);
+ ee04302 *dp, &lv = *(dp=new (buf) ee04302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee04302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd4302*), ABISELECT(24,16), "ee04302");
+ check_base_class_offset(lv, (cc302*)(dd4302*), 0, "ee04302");
+ check_base_class_offset(lv, (dd4302*), 0, "ee04302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04302.e");
+ test_class_info(&lv, &cd_ee04302);
+ dp->~ee04302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04302(Test_ee04302, "ee04302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04302C1Ev();
+extern void _ZN7ee04302D1Ev();
+Name_Map name_map_ee04302[] = {
+ NSPAIR(_ZN7ee04302C1Ev),
+ NSPAIR(_ZN7ee04302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd4302;
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static Base_Class bases_ee04302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4302__7ee04302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd4302__7ee04302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd4302__7ee04302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4302__7ee04302[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+static VTT_ENTRY vtt_ee04302[] = {
+ {&(_ZTV7ee04302[3]), 3,11},
+ {&(_tg__ZTV6dd4302__7ee04302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd4302__7ee04302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd4302__7ee04302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4302__7ee04302[4]), 4,6},
+ {&(_ZTV7ee04302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04302[];
+extern VTBL_ENTRY _ZTV7ee04302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04302[];
+static VTBL_ENTRY alt_thunk_names886[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04302 = { "ee04302", // class name
+ bases_ee04302, 4,
+ &(vtc_ee04302[0]), // expected_vtbl_contents
+ &(vtt_ee04302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names886,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14302 : virtual dd4302 {
+ int e;
+ ~ee14302(); // tgen
+ ee14302(); // tgen
+};
+//SIG(1 ee14302) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14302 ::~ee14302(){ note_dtor("ee14302", this);} // tgen
+ee14302 ::ee14302(){ note_ctor("ee14302", this);} // tgen
+
+static void Test_ee14302()
+{
+ extern Class_Descriptor cd_ee14302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14302, buf);
+ ee14302 *dp, &lv = *(dp=new (buf) ee14302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee14302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd4302*), ABISELECT(32,20), "ee14302");
+ check_base_class_offset(lv, (cc302*)(dd4302*), ABISELECT(16,8), "ee14302");
+ check_base_class_offset(lv, (dd4302*), ABISELECT(16,8), "ee14302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14302.e");
+ test_class_info(&lv, &cd_ee14302);
+ dp->~ee14302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14302(Test_ee14302, "ee14302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14302C1Ev();
+extern void _ZN7ee14302D1Ev();
+Name_Map name_map_ee14302[] = {
+ NSPAIR(_ZN7ee14302C1Ev),
+ NSPAIR(_ZN7ee14302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd4302;
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static Base_Class bases_ee14302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4302, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14302[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4302__7ee14302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd4302__7ee14302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd4302__7ee14302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4302__7ee14302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+static VTT_ENTRY vtt_ee14302[] = {
+ {&(_ZTV7ee14302[4]), 4,17},
+ {&(_ZTV7ee14302[9]), 9,17},
+ {&(_ZTV7ee14302[15]), 15,17},
+ {&(_tg__ZTV6dd4302__7ee14302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd4302__7ee14302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd4302__7ee14302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4302__7ee14302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14302[];
+extern VTBL_ENTRY _ZTV7ee14302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14302[];
+static VTBL_ENTRY alt_thunk_names887[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14302 = { "ee14302", // class name
+ bases_ee14302, 4,
+ &(vtc_ee14302[0]), // expected_vtbl_contents
+ &(vtt_ee14302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names887,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24302 : dd4302 {
+ int e;
+ virtual void foo(); // _ZN7ee243023fooEv
+ ~ee24302(); // tgen
+ ee24302(); // tgen
+};
+//SIG(1 ee24302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24302 ::foo(){vfunc_called(this, "_ZN7ee243023fooEv");}
+ee24302 ::~ee24302(){ note_dtor("ee24302", this);} // tgen
+ee24302 ::ee24302(){ note_ctor("ee24302", this);} // tgen
+
+static void Test_ee24302()
+{
+ extern Class_Descriptor cd_ee24302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24302, buf);
+ ee24302 *dp, &lv = *(dp=new (buf) ee24302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee24302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd4302*), ABISELECT(24,16), "ee24302");
+ check_base_class_offset(lv, (cc302*)(dd4302*), 0, "ee24302");
+ check_base_class_offset(lv, (dd4302*), 0, "ee24302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24302.e");
+ test_class_info(&lv, &cd_ee24302);
+ dp->~ee24302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24302(Test_ee24302, "ee24302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24302C1Ev();
+extern void _ZN7ee24302D1Ev();
+Name_Map name_map_ee24302[] = {
+ NSPAIR(_ZN7ee24302C1Ev),
+ NSPAIR(_ZN7ee24302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd4302;
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static Base_Class bases_ee24302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24302[];
+extern void _ZN7ee243023fooEv();
+extern void _ZN6dd43023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee243023fooEv,_ZTv0_n12_N7ee243023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee243023fooEv,_ZThn16_N7ee243023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24302[0]),
+ (VTBL_ENTRY)&_ZN7ee243023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243023fooEv,_ZTv0_n12_N7ee243023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4302__7ee24302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd4302__7ee24302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd4302__7ee24302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4302__7ee24302[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+static VTT_ENTRY vtt_ee24302[] = {
+ {&(_ZTV7ee24302[3]), 3,11},
+ {&(_tg__ZTV6dd4302__7ee24302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd4302__7ee24302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd4302__7ee24302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4302__7ee24302[4]), 4,6},
+ {&(_ZTV7ee24302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24302[];
+extern VTBL_ENTRY _ZTV7ee24302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24302[];
+static VTBL_ENTRY alt_thunk_names888[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243023fooEv,_ZTv0_n12_N7ee243023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee243023fooEv,_ZThn16_N7ee243023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24302 = { "ee24302", // class name
+ bases_ee24302, 4,
+ &(vtc_ee24302[0]), // expected_vtbl_contents
+ &(vtt_ee24302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names888,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34302 : virtual dd4302 {
+ int e;
+ virtual void foo(); // _ZN7ee343023fooEv
+ ~ee34302(); // tgen
+ ee34302(); // tgen
+};
+//SIG(1 ee34302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34302 ::foo(){vfunc_called(this, "_ZN7ee343023fooEv");}
+ee34302 ::~ee34302(){ note_dtor("ee34302", this);} // tgen
+ee34302 ::ee34302(){ note_ctor("ee34302", this);} // tgen
+
+static void Test_ee34302()
+{
+ extern Class_Descriptor cd_ee34302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34302, buf);
+ ee34302 *dp, &lv = *(dp=new (buf) ee34302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee34302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd4302*), ABISELECT(32,20), "ee34302");
+ check_base_class_offset(lv, (cc302*)(dd4302*), ABISELECT(16,8), "ee34302");
+ check_base_class_offset(lv, (dd4302*), ABISELECT(16,8), "ee34302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34302.e");
+ test_class_info(&lv, &cd_ee34302);
+ dp->~ee34302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34302(Test_ee34302, "ee34302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34302C1Ev();
+extern void _ZN7ee34302D1Ev();
+Name_Map name_map_ee34302[] = {
+ NSPAIR(_ZN7ee34302C1Ev),
+ NSPAIR(_ZN7ee34302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd4302;
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static Base_Class bases_ee34302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34302[];
+extern void _ZN7ee343023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee343023fooEv,_ZTv0_n16_N7ee343023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343023fooEv,_ZThn8_N7ee343023fooEv)() __attribute__((weak));
+extern void _ZN6dd43023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee343023fooEv,_ZTv0_n12_N7ee343023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee343023fooEv,_ZThn20_N7ee343023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34302[0]),
+ (VTBL_ENTRY)&_ZN7ee343023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee343023fooEv,_ZTv0_n16_N7ee343023fooEv),
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343023fooEv,_ZTv0_n12_N7ee343023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4302__7ee34302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd4302__7ee34302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd4302__7ee34302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4302__7ee34302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+static VTT_ENTRY vtt_ee34302[] = {
+ {&(_ZTV7ee34302[4]), 4,18},
+ {&(_ZTV7ee34302[10]), 10,18},
+ {&(_ZTV7ee34302[16]), 16,18},
+ {&(_tg__ZTV6dd4302__7ee34302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd4302__7ee34302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd4302__7ee34302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4302__7ee34302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34302[];
+extern VTBL_ENTRY _ZTV7ee34302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34302[];
+static VTBL_ENTRY alt_thunk_names889[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343023fooEv,_ZTv0_n12_N7ee343023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee343023fooEv,_ZThn20_N7ee343023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee343023fooEv,_ZTv0_n16_N7ee343023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343023fooEv,_ZThn8_N7ee343023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34302 = { "ee34302", // class name
+ bases_ee34302, 4,
+ &(vtc_ee34302[0]), // expected_vtbl_contents
+ &(vtt_ee34302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34302),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names889,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44302 : dd4302 {
+ int e;
+ virtual void bar(); // _ZN7ee443023barEv
+ ~ee44302(); // tgen
+ ee44302(); // tgen
+};
+//SIG(1 ee44302) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44302 ::bar(){vfunc_called(this, "_ZN7ee443023barEv");}
+ee44302 ::~ee44302(){ note_dtor("ee44302", this);} // tgen
+ee44302 ::ee44302(){ note_ctor("ee44302", this);} // tgen
+
+static void Test_ee44302()
+{
+ extern Class_Descriptor cd_ee44302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44302, buf);
+ ee44302 *dp, &lv = *(dp=new (buf) ee44302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee44302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd4302*), ABISELECT(24,16), "ee44302");
+ check_base_class_offset(lv, (cc302*)(dd4302*), 0, "ee44302");
+ check_base_class_offset(lv, (dd4302*), 0, "ee44302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44302.e");
+ test_class_info(&lv, &cd_ee44302);
+ dp->~ee44302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44302(Test_ee44302, "ee44302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44302C1Ev();
+extern void _ZN7ee44302D1Ev();
+Name_Map name_map_ee44302[] = {
+ NSPAIR(_ZN7ee44302C1Ev),
+ NSPAIR(_ZN7ee44302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd4302;
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static Base_Class bases_ee44302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN7ee443023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee443023barEv,_ZTv0_n16_N7ee443023barEv)();
+extern void ABISELECT(_ZThn24_N7ee443023barEv,_ZThn16_N7ee443023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN7ee443023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee443023barEv,_ZTv0_n16_N7ee443023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4302__7ee44302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd4302__7ee44302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd4302__7ee44302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4302__7ee44302[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+static VTT_ENTRY vtt_ee44302[] = {
+ {&(_ZTV7ee44302[3]), 3,11},
+ {&(_tg__ZTV6dd4302__7ee44302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd4302__7ee44302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd4302__7ee44302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4302__7ee44302[4]), 4,6},
+ {&(_ZTV7ee44302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44302[];
+extern VTBL_ENTRY _ZTV7ee44302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44302[];
+static VTBL_ENTRY alt_thunk_names890[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee443023barEv,_ZTv0_n16_N7ee443023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee443023barEv,_ZThn16_N7ee443023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44302 = { "ee44302", // class name
+ bases_ee44302, 4,
+ &(vtc_ee44302[0]), // expected_vtbl_contents
+ &(vtt_ee44302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names890,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54302 : virtual dd4302 {
+ int e;
+ virtual void bar(); // _ZN7ee543023barEv
+ ~ee54302(); // tgen
+ ee54302(); // tgen
+};
+//SIG(1 ee54302) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54302 ::bar(){vfunc_called(this, "_ZN7ee543023barEv");}
+ee54302 ::~ee54302(){ note_dtor("ee54302", this);} // tgen
+ee54302 ::ee54302(){ note_ctor("ee54302", this);} // tgen
+
+static void Test_ee54302()
+{
+ extern Class_Descriptor cd_ee54302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54302, buf);
+ ee54302 *dp, &lv = *(dp=new (buf) ee54302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee54302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd4302*), ABISELECT(32,20), "ee54302");
+ check_base_class_offset(lv, (cc302*)(dd4302*), ABISELECT(16,8), "ee54302");
+ check_base_class_offset(lv, (dd4302*), ABISELECT(16,8), "ee54302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54302.e");
+ test_class_info(&lv, &cd_ee54302);
+ dp->~ee54302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54302(Test_ee54302, "ee54302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54302C1Ev();
+extern void _ZN7ee54302D1Ev();
+Name_Map name_map_ee54302[] = {
+ NSPAIR(_ZN7ee54302C1Ev),
+ NSPAIR(_ZN7ee54302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd4302;
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static Base_Class bases_ee54302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54302[];
+extern void _ZN7ee543023barEv();
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee543023barEv,_ZTv0_n20_N7ee543023barEv)();
+extern void ABISELECT(_ZThn16_N7ee543023barEv,_ZThn8_N7ee543023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee543023barEv,_ZTv0_n16_N7ee543023barEv)();
+extern void ABISELECT(_ZThn32_N7ee543023barEv,_ZThn20_N7ee543023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54302[0]),
+ (VTBL_ENTRY)&_ZN7ee543023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee543023barEv,_ZTv0_n20_N7ee543023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee543023barEv,_ZTv0_n16_N7ee543023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4302__7ee54302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd4302__7ee54302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd4302__7ee54302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4302__7ee54302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+static VTT_ENTRY vtt_ee54302[] = {
+ {&(_ZTV7ee54302[4]), 4,18},
+ {&(_ZTV7ee54302[10]), 10,18},
+ {&(_ZTV7ee54302[16]), 16,18},
+ {&(_tg__ZTV6dd4302__7ee54302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd4302__7ee54302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd4302__7ee54302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4302__7ee54302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54302[];
+extern VTBL_ENTRY _ZTV7ee54302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54302[];
+static VTBL_ENTRY alt_thunk_names891[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee543023barEv,_ZTv0_n16_N7ee543023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee543023barEv,_ZThn20_N7ee543023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee543023barEv,_ZTv0_n20_N7ee543023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543023barEv,_ZThn8_N7ee543023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54302 = { "ee54302", // class name
+ bases_ee54302, 4,
+ &(vtc_ee54302[0]), // expected_vtbl_contents
+ &(vtt_ee54302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54302),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names891,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64302 : dd4302 {
+ int e;
+ virtual void foo(); // _ZN7ee643023fooEv
+ virtual void bar(); // _ZN7ee643023barEv
+ ~ee64302(); // tgen
+ ee64302(); // tgen
+};
+//SIG(1 ee64302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64302 ::foo(){vfunc_called(this, "_ZN7ee643023fooEv");}
+void ee64302 ::bar(){vfunc_called(this, "_ZN7ee643023barEv");}
+ee64302 ::~ee64302(){ note_dtor("ee64302", this);} // tgen
+ee64302 ::ee64302(){ note_ctor("ee64302", this);} // tgen
+
+static void Test_ee64302()
+{
+ extern Class_Descriptor cd_ee64302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64302, buf);
+ ee64302 *dp, &lv = *(dp=new (buf) ee64302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee64302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd4302*), ABISELECT(24,16), "ee64302");
+ check_base_class_offset(lv, (cc302*)(dd4302*), 0, "ee64302");
+ check_base_class_offset(lv, (dd4302*), 0, "ee64302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64302.e");
+ test_class_info(&lv, &cd_ee64302);
+ dp->~ee64302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64302(Test_ee64302, "ee64302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64302C1Ev();
+extern void _ZN7ee64302D1Ev();
+Name_Map name_map_ee64302[] = {
+ NSPAIR(_ZN7ee64302C1Ev),
+ NSPAIR(_ZN7ee64302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd4302;
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static Base_Class bases_ee64302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64302[];
+extern void _ZN7ee643023fooEv();
+extern void _ZN7ee643023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee643023fooEv,_ZTv0_n12_N7ee643023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee643023fooEv,_ZThn16_N7ee643023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee643023barEv,_ZTv0_n16_N7ee643023barEv)();
+extern void ABISELECT(_ZThn24_N7ee643023barEv,_ZThn16_N7ee643023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64302[0]),
+ (VTBL_ENTRY)&_ZN7ee643023fooEv,
+ (VTBL_ENTRY)&_ZN7ee643023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643023fooEv,_ZTv0_n12_N7ee643023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643023barEv,_ZTv0_n16_N7ee643023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4302__7ee64302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd4302__7ee64302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd4302__7ee64302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4302__7ee64302[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+static VTT_ENTRY vtt_ee64302[] = {
+ {&(_ZTV7ee64302[3]), 3,11},
+ {&(_tg__ZTV6dd4302__7ee64302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd4302__7ee64302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd4302__7ee64302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4302__7ee64302[4]), 4,6},
+ {&(_ZTV7ee64302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64302[];
+extern VTBL_ENTRY _ZTV7ee64302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64302[];
+static VTBL_ENTRY alt_thunk_names892[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43023barEv,_ZThn16_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee643023barEv,_ZTv0_n16_N7ee643023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643023barEv,_ZThn16_N7ee643023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643023fooEv,_ZTv0_n12_N7ee643023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643023fooEv,_ZThn16_N7ee643023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64302 = { "ee64302", // class name
+ bases_ee64302, 4,
+ &(vtc_ee64302[0]), // expected_vtbl_contents
+ &(vtt_ee64302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names892,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74302 : virtual dd4302 {
+ int e;
+ virtual void foo(); // _ZN7ee743023fooEv
+ virtual void bar(); // _ZN7ee743023barEv
+ ~ee74302(); // tgen
+ ee74302(); // tgen
+};
+//SIG(1 ee74302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74302 ::foo(){vfunc_called(this, "_ZN7ee743023fooEv");}
+void ee74302 ::bar(){vfunc_called(this, "_ZN7ee743023barEv");}
+ee74302 ::~ee74302(){ note_dtor("ee74302", this);} // tgen
+ee74302 ::ee74302(){ note_ctor("ee74302", this);} // tgen
+
+static void Test_ee74302()
+{
+ extern Class_Descriptor cd_ee74302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74302, buf);
+ ee74302 *dp, &lv = *(dp=new (buf) ee74302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee74302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd4302*), ABISELECT(32,20), "ee74302");
+ check_base_class_offset(lv, (cc302*)(dd4302*), ABISELECT(16,8), "ee74302");
+ check_base_class_offset(lv, (dd4302*), ABISELECT(16,8), "ee74302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74302.e");
+ test_class_info(&lv, &cd_ee74302);
+ dp->~ee74302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74302(Test_ee74302, "ee74302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74302C1Ev();
+extern void _ZN7ee74302D1Ev();
+Name_Map name_map_ee74302[] = {
+ NSPAIR(_ZN7ee74302C1Ev),
+ NSPAIR(_ZN7ee74302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd4302;
+extern VTBL_ENTRY _ZTI6dd4302[];
+extern VTBL_ENTRY _ZTV6dd4302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4302[];
+static Base_Class bases_ee74302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74302[];
+extern void _ZN7ee743023fooEv();
+extern void _ZN7ee743023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee743023fooEv,_ZTv0_n16_N7ee743023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743023fooEv,_ZThn8_N7ee743023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee743023barEv,_ZTv0_n20_N7ee743023barEv)();
+extern void ABISELECT(_ZThn16_N7ee743023barEv,_ZThn8_N7ee743023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743023fooEv,_ZTv0_n12_N7ee743023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee743023fooEv,_ZThn20_N7ee743023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743023barEv,_ZTv0_n16_N7ee743023barEv)();
+extern void ABISELECT(_ZThn32_N7ee743023barEv,_ZThn20_N7ee743023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74302[0]),
+ (VTBL_ENTRY)&_ZN7ee743023fooEv,
+ (VTBL_ENTRY)&_ZN7ee743023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743023fooEv,_ZTv0_n16_N7ee743023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743023barEv,_ZTv0_n20_N7ee743023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743023fooEv,_ZTv0_n12_N7ee743023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743023barEv,_ZTv0_n16_N7ee743023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74302[];
+extern void _ZN5cc3023fooEv();
+extern void _ZN6dd43023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4302__7ee74302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ (VTBL_ENTRY)&_ZN6dd43023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd4302__7ee74302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd4302__7ee74302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv)();
+extern void ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4302__7ee74302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv),
+};
+static VTT_ENTRY vtt_ee74302[] = {
+ {&(_ZTV7ee74302[4]), 4,19},
+ {&(_ZTV7ee74302[11]), 11,19},
+ {&(_ZTV7ee74302[17]), 17,19},
+ {&(_tg__ZTV6dd4302__7ee74302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd4302__7ee74302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd4302__7ee74302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4302__7ee74302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74302[];
+extern VTBL_ENTRY _ZTV7ee74302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74302[];
+static VTBL_ENTRY alt_thunk_names893[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43023barEv,_ZTv0_n16_N6dd43023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43023barEv,_ZThn12_N6dd43023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743023barEv,_ZTv0_n16_N7ee743023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743023barEv,_ZThn20_N7ee743023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743023fooEv,_ZTv0_n12_N7ee743023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743023fooEv,_ZThn20_N7ee743023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743023barEv,_ZTv0_n20_N7ee743023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743023barEv,_ZThn8_N7ee743023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743023fooEv,_ZTv0_n16_N7ee743023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743023fooEv,_ZThn8_N7ee743023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74302 = { "ee74302", // class name
+ bases_ee74302, 4,
+ &(vtc_ee74302[0]), // expected_vtbl_contents
+ &(vtt_ee74302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74302),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names893,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5302 : virtual cc302 {
+ int d;
+ virtual void bar(); // _ZN6dd53023barEv
+ ~dd5302(); // tgen
+ dd5302(); // tgen
+};
+//SIG(-1 dd5302) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd5302 ::bar(){vfunc_called(this, "_ZN6dd53023barEv");}
+dd5302 ::~dd5302(){ note_dtor("dd5302", this);} // tgen
+dd5302 ::dd5302(){ note_ctor("dd5302", this);} // tgen
+
+static void Test_dd5302()
+{
+ extern Class_Descriptor cd_dd5302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5302, buf);
+ dd5302 *dp, &lv = *(dp=new (buf) dd5302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd5302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,16), "dd5302");
+ check_base_class_offset(lv, (cc302*), ABISELECT(16,8), "dd5302");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5302.d");
+ test_class_info(&lv, &cd_dd5302);
+ dp->~dd5302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5302(Test_dd5302, "dd5302", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5302C1Ev();
+extern void _ZN6dd5302D1Ev();
+Name_Map name_map_dd5302[] = {
+ NSPAIR(_ZN6dd5302C1Ev),
+ NSPAIR(_ZN6dd5302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static Base_Class bases_dd5302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 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 _ZTI6dd5302[];
+extern void _ZN6dd53023barEv();
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__6dd5302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd5302[] = {
+ {&(_ZTV6dd5302[4]), 4,16},
+ {&(_ZTV6dd5302[9]), 9,16},
+ {&(_ZTV6dd5302[14]), 14,16},
+ {&(_tg__ZTV5cc302__6dd5302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__6dd5302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static VTBL_ENTRY alt_thunk_names894[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5302 = { "dd5302", // class name
+ bases_dd5302, 3,
+ &(vtc_dd5302[0]), // expected_vtbl_contents
+ &(vtt_dd5302[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5302),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names894,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05302 : dd5302 {
+ int e;
+ ~ee05302(); // tgen
+ ee05302(); // tgen
+};
+//SIG(1 ee05302) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05302 ::~ee05302(){ note_dtor("ee05302", this);} // tgen
+ee05302 ::ee05302(){ note_ctor("ee05302", this);} // tgen
+
+static void Test_ee05302()
+{
+ extern Class_Descriptor cd_ee05302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05302, buf);
+ ee05302 *dp, &lv = *(dp=new (buf) ee05302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee05302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee05302");
+ check_base_class_offset(lv, (cc302*)(dd5302*), ABISELECT(16,12), "ee05302");
+ check_base_class_offset(lv, (dd5302*), 0, "ee05302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05302.e");
+ test_class_info(&lv, &cd_ee05302);
+ dp->~ee05302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05302(Test_ee05302, "ee05302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05302C1Ev();
+extern void _ZN7ee05302D1Ev();
+Name_Map name_map_ee05302[] = {
+ NSPAIR(_ZN7ee05302C1Ev),
+ NSPAIR(_ZN7ee05302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd5302;
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static Base_Class bases_ee05302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05302[];
+extern void _ZN6dd53023barEv();
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05302[];
+extern void _ZN6dd53023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5302__7ee05302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302__7ee05302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5302__7ee05302[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee05302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee05302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee05302[] = {
+ {&(_ZTV7ee05302[4]), 4,16},
+ {&(_tg__ZTV6dd5302__7ee05302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd5302__7ee05302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5302__7ee05302[4]), 4,6},
+ {&(_ZTV7ee05302[9]), 9,16},
+ {&(_ZTV7ee05302[14]), 14,16},
+ {&(_tg__ZTV5cc302__7ee05302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee05302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05302[];
+extern VTBL_ENTRY _ZTV7ee05302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05302[];
+static VTBL_ENTRY alt_thunk_names895[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05302 = { "ee05302", // class name
+ bases_ee05302, 4,
+ &(vtc_ee05302[0]), // expected_vtbl_contents
+ &(vtt_ee05302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names895,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15302 : virtual dd5302 {
+ int e;
+ ~ee15302(); // tgen
+ ee15302(); // tgen
+};
+//SIG(1 ee15302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15302 ::~ee15302(){ note_dtor("ee15302", this);} // tgen
+ee15302 ::ee15302(){ note_ctor("ee15302", this);} // tgen
+
+static void Test_ee15302()
+{
+ extern Class_Descriptor cd_ee15302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15302, buf);
+ ee15302 *dp, &lv = *(dp=new (buf) ee15302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee15302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee15302");
+ check_base_class_offset(lv, (cc302*)(dd5302*), ABISELECT(32,16), "ee15302");
+ check_base_class_offset(lv, (dd5302*), ABISELECT(16,8), "ee15302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15302.e");
+ test_class_info(&lv, &cd_ee15302);
+ dp->~ee15302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15302(Test_ee15302, "ee15302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15302C1Ev();
+extern void _ZN7ee15302D1Ev();
+Name_Map name_map_ee15302[] = {
+ NSPAIR(_ZN7ee15302C1Ev),
+ NSPAIR(_ZN7ee15302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd5302;
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static Base_Class bases_ee15302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15302[];
+extern void _ZN6dd53023barEv();
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15302[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15302[];
+extern void _ZN6dd53023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5302__7ee15302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302__7ee15302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5302__7ee15302[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee15302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee15302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee15302[] = {
+ {&(_ZTV7ee15302[5]), 5,22},
+ {&(_ZTV7ee15302[10]), 10,22},
+ {&(_ZTV7ee15302[15]), 15,22},
+ {&(_ZTV7ee15302[20]), 20,22},
+ {&(_tg__ZTV6dd5302__7ee15302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd5302__7ee15302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5302__7ee15302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee15302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee15302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15302[];
+extern VTBL_ENTRY _ZTV7ee15302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15302[];
+static VTBL_ENTRY alt_thunk_names896[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15302 = { "ee15302", // class name
+ bases_ee15302, 4,
+ &(vtc_ee15302[0]), // expected_vtbl_contents
+ &(vtt_ee15302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15302),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names896,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25302 : dd5302 {
+ int e;
+ virtual void foo(); // _ZN7ee253023fooEv
+ ~ee25302(); // tgen
+ ee25302(); // tgen
+};
+//SIG(1 ee25302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25302 ::foo(){vfunc_called(this, "_ZN7ee253023fooEv");}
+ee25302 ::~ee25302(){ note_dtor("ee25302", this);} // tgen
+ee25302 ::ee25302(){ note_ctor("ee25302", this);} // tgen
+
+static void Test_ee25302()
+{
+ extern Class_Descriptor cd_ee25302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25302, buf);
+ ee25302 *dp, &lv = *(dp=new (buf) ee25302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee25302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee25302");
+ check_base_class_offset(lv, (cc302*)(dd5302*), ABISELECT(16,12), "ee25302");
+ check_base_class_offset(lv, (dd5302*), 0, "ee25302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25302.e");
+ test_class_info(&lv, &cd_ee25302);
+ dp->~ee25302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25302(Test_ee25302, "ee25302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25302C1Ev();
+extern void _ZN7ee25302D1Ev();
+Name_Map name_map_ee25302[] = {
+ NSPAIR(_ZN7ee25302C1Ev),
+ NSPAIR(_ZN7ee25302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd5302;
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static Base_Class bases_ee25302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25302[];
+extern void _ZN6dd53023barEv();
+extern void _ZN7ee253023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee253023fooEv,_ZTv0_n16_N7ee253023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253023fooEv,_ZThn12_N7ee253023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253023fooEv,_ZTv0_n12_N7ee253023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee253023fooEv,_ZThn20_N7ee253023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+ (VTBL_ENTRY)&_ZN7ee253023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee253023fooEv,_ZTv0_n16_N7ee253023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253023fooEv,_ZTv0_n12_N7ee253023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25302[];
+extern void _ZN6dd53023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5302__7ee25302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302__7ee25302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5302__7ee25302[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee25302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee25302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee25302[] = {
+ {&(_ZTV7ee25302[4]), 4,17},
+ {&(_tg__ZTV6dd5302__7ee25302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd5302__7ee25302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5302__7ee25302[4]), 4,6},
+ {&(_ZTV7ee25302[10]), 10,17},
+ {&(_ZTV7ee25302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee25302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee25302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25302[];
+extern VTBL_ENTRY _ZTV7ee25302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25302[];
+static VTBL_ENTRY alt_thunk_names897[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253023fooEv,_ZTv0_n12_N7ee253023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee253023fooEv,_ZThn20_N7ee253023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee253023fooEv,_ZTv0_n16_N7ee253023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253023fooEv,_ZThn12_N7ee253023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25302 = { "ee25302", // class name
+ bases_ee25302, 4,
+ &(vtc_ee25302[0]), // expected_vtbl_contents
+ &(vtt_ee25302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names897,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35302 : virtual dd5302 {
+ int e;
+ virtual void foo(); // _ZN7ee353023fooEv
+ ~ee35302(); // tgen
+ ee35302(); // tgen
+};
+//SIG(1 ee35302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35302 ::foo(){vfunc_called(this, "_ZN7ee353023fooEv");}
+ee35302 ::~ee35302(){ note_dtor("ee35302", this);} // tgen
+ee35302 ::ee35302(){ note_ctor("ee35302", this);} // tgen
+
+static void Test_ee35302()
+{
+ extern Class_Descriptor cd_ee35302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35302, buf);
+ ee35302 *dp, &lv = *(dp=new (buf) ee35302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee35302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee35302");
+ check_base_class_offset(lv, (cc302*)(dd5302*), ABISELECT(32,16), "ee35302");
+ check_base_class_offset(lv, (dd5302*), ABISELECT(16,8), "ee35302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35302.e");
+ test_class_info(&lv, &cd_ee35302);
+ dp->~ee35302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35302(Test_ee35302, "ee35302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35302C1Ev();
+extern void _ZN7ee35302D1Ev();
+Name_Map name_map_ee35302[] = {
+ NSPAIR(_ZN7ee35302C1Ev),
+ NSPAIR(_ZN7ee35302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd5302;
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static Base_Class bases_ee35302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35302[];
+extern void _ZN7ee353023fooEv();
+extern void _ZN6dd53023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee353023fooEv,_ZTv0_n16_N7ee353023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353023fooEv,_ZThn16_N7ee353023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353023fooEv,_ZTv0_n12_N7ee353023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee353023fooEv,_ZThn24_N7ee353023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35302[0]),
+ (VTBL_ENTRY)&_ZN7ee353023fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee353023fooEv,_ZTv0_n16_N7ee353023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353023fooEv,_ZTv0_n12_N7ee353023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35302[];
+extern void _ZN6dd53023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5302__7ee35302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302__7ee35302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5302__7ee35302[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee35302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee35302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee35302[] = {
+ {&(_ZTV7ee35302[5]), 5,23},
+ {&(_ZTV7ee35302[11]), 11,23},
+ {&(_ZTV7ee35302[16]), 16,23},
+ {&(_ZTV7ee35302[21]), 21,23},
+ {&(_tg__ZTV6dd5302__7ee35302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd5302__7ee35302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5302__7ee35302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee35302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee35302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35302[];
+extern VTBL_ENTRY _ZTV7ee35302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35302[];
+static VTBL_ENTRY alt_thunk_names898[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353023fooEv,_ZTv0_n12_N7ee353023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee353023fooEv,_ZThn24_N7ee353023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee353023fooEv,_ZTv0_n16_N7ee353023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353023fooEv,_ZThn16_N7ee353023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35302 = { "ee35302", // class name
+ bases_ee35302, 4,
+ &(vtc_ee35302[0]), // expected_vtbl_contents
+ &(vtt_ee35302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35302),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names898,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45302 : dd5302 {
+ int e;
+ virtual void bar(); // _ZN7ee453023barEv
+ ~ee45302(); // tgen
+ ee45302(); // tgen
+};
+//SIG(1 ee45302) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45302 ::bar(){vfunc_called(this, "_ZN7ee453023barEv");}
+ee45302 ::~ee45302(){ note_dtor("ee45302", this);} // tgen
+ee45302 ::ee45302(){ note_ctor("ee45302", this);} // tgen
+
+static void Test_ee45302()
+{
+ extern Class_Descriptor cd_ee45302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45302, buf);
+ ee45302 *dp, &lv = *(dp=new (buf) ee45302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee45302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee45302");
+ check_base_class_offset(lv, (cc302*)(dd5302*), ABISELECT(16,12), "ee45302");
+ check_base_class_offset(lv, (dd5302*), 0, "ee45302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45302.e");
+ test_class_info(&lv, &cd_ee45302);
+ dp->~ee45302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45302(Test_ee45302, "ee45302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45302C1Ev();
+extern void _ZN7ee45302D1Ev();
+Name_Map name_map_ee45302[] = {
+ NSPAIR(_ZN7ee45302C1Ev),
+ NSPAIR(_ZN7ee45302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd5302;
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static Base_Class bases_ee45302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45302[];
+extern void _ZN7ee453023barEv();
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee453023barEv,_ZTv0_n16_N7ee453023barEv)();
+extern void ABISELECT(_ZThn32_N7ee453023barEv,_ZThn20_N7ee453023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45302[0]),
+ (VTBL_ENTRY)&_ZN7ee453023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee453023barEv,_ZTv0_n16_N7ee453023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45302[];
+extern void _ZN6dd53023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5302__7ee45302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302__7ee45302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5302__7ee45302[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee45302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee45302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee45302[] = {
+ {&(_ZTV7ee45302[4]), 4,16},
+ {&(_tg__ZTV6dd5302__7ee45302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd5302__7ee45302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5302__7ee45302[4]), 4,6},
+ {&(_ZTV7ee45302[9]), 9,16},
+ {&(_ZTV7ee45302[14]), 14,16},
+ {&(_tg__ZTV5cc302__7ee45302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee45302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45302[];
+extern VTBL_ENTRY _ZTV7ee45302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45302[];
+static VTBL_ENTRY alt_thunk_names899[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee453023barEv,_ZTv0_n16_N7ee453023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee453023barEv,_ZThn20_N7ee453023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45302 = { "ee45302", // class name
+ bases_ee45302, 4,
+ &(vtc_ee45302[0]), // expected_vtbl_contents
+ &(vtt_ee45302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45302),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names899,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55302 : virtual dd5302 {
+ int e;
+ virtual void bar(); // _ZN7ee553023barEv
+ ~ee55302(); // tgen
+ ee55302(); // tgen
+};
+//SIG(1 ee55302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55302 ::bar(){vfunc_called(this, "_ZN7ee553023barEv");}
+ee55302 ::~ee55302(){ note_dtor("ee55302", this);} // tgen
+ee55302 ::ee55302(){ note_ctor("ee55302", this);} // tgen
+
+static void Test_ee55302()
+{
+ extern Class_Descriptor cd_ee55302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55302, buf);
+ ee55302 *dp, &lv = *(dp=new (buf) ee55302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee55302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee55302");
+ check_base_class_offset(lv, (cc302*)(dd5302*), ABISELECT(32,16), "ee55302");
+ check_base_class_offset(lv, (dd5302*), ABISELECT(16,8), "ee55302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55302.e");
+ test_class_info(&lv, &cd_ee55302);
+ dp->~ee55302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55302(Test_ee55302, "ee55302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55302C1Ev();
+extern void _ZN7ee55302D1Ev();
+Name_Map name_map_ee55302[] = {
+ NSPAIR(_ZN7ee55302C1Ev),
+ NSPAIR(_ZN7ee55302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd5302;
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static Base_Class bases_ee55302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55302[];
+extern void _ZN7ee553023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee553023barEv,_ZTv0_n20_N7ee553023barEv)();
+extern void ABISELECT(_ZThn16_N7ee553023barEv,_ZThn8_N7ee553023barEv)() __attribute__((weak));
+extern void _ZN5cc3023fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee553023barEv,_ZTv0_n16_N7ee553023barEv)();
+extern void ABISELECT(_ZThn48_N7ee553023barEv,_ZThn24_N7ee553023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55302[0]),
+ (VTBL_ENTRY)&_ZN7ee553023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee553023barEv,_ZTv0_n20_N7ee553023barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee553023barEv,_ZTv0_n16_N7ee553023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55302[];
+extern void _ZN6dd53023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5302__7ee55302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302__7ee55302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5302__7ee55302[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee55302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee55302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee55302[] = {
+ {&(_ZTV7ee55302[5]), 5,23},
+ {&(_ZTV7ee55302[11]), 11,23},
+ {&(_ZTV7ee55302[16]), 16,23},
+ {&(_ZTV7ee55302[21]), 21,23},
+ {&(_tg__ZTV6dd5302__7ee55302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd5302__7ee55302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5302__7ee55302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee55302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee55302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55302[];
+extern VTBL_ENTRY _ZTV7ee55302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55302[];
+static VTBL_ENTRY alt_thunk_names900[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee553023barEv,_ZTv0_n16_N7ee553023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee553023barEv,_ZThn24_N7ee553023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee553023barEv,_ZTv0_n20_N7ee553023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553023barEv,_ZThn8_N7ee553023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55302 = { "ee55302", // class name
+ bases_ee55302, 4,
+ &(vtc_ee55302[0]), // expected_vtbl_contents
+ &(vtt_ee55302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55302),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names900,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65302 : dd5302 {
+ int e;
+ virtual void foo(); // _ZN7ee653023fooEv
+ virtual void bar(); // _ZN7ee653023barEv
+ ~ee65302(); // tgen
+ ee65302(); // tgen
+};
+//SIG(1 ee65302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65302 ::foo(){vfunc_called(this, "_ZN7ee653023fooEv");}
+void ee65302 ::bar(){vfunc_called(this, "_ZN7ee653023barEv");}
+ee65302 ::~ee65302(){ note_dtor("ee65302", this);} // tgen
+ee65302 ::ee65302(){ note_ctor("ee65302", this);} // tgen
+
+static void Test_ee65302()
+{
+ extern Class_Descriptor cd_ee65302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65302, buf);
+ ee65302 *dp, &lv = *(dp=new (buf) ee65302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee65302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee65302");
+ check_base_class_offset(lv, (cc302*)(dd5302*), ABISELECT(16,12), "ee65302");
+ check_base_class_offset(lv, (dd5302*), 0, "ee65302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65302.e");
+ test_class_info(&lv, &cd_ee65302);
+ dp->~ee65302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65302(Test_ee65302, "ee65302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65302C1Ev();
+extern void _ZN7ee65302D1Ev();
+Name_Map name_map_ee65302[] = {
+ NSPAIR(_ZN7ee65302C1Ev),
+ NSPAIR(_ZN7ee65302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd5302;
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static Base_Class bases_ee65302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65302[];
+extern void _ZN7ee653023barEv();
+extern void _ZN7ee653023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee653023fooEv,_ZTv0_n16_N7ee653023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653023fooEv,_ZThn12_N7ee653023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653023fooEv,_ZTv0_n12_N7ee653023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee653023fooEv,_ZThn20_N7ee653023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653023barEv,_ZTv0_n16_N7ee653023barEv)();
+extern void ABISELECT(_ZThn32_N7ee653023barEv,_ZThn20_N7ee653023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65302[0]),
+ (VTBL_ENTRY)&_ZN7ee653023barEv,
+ (VTBL_ENTRY)&_ZN7ee653023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653023fooEv,_ZTv0_n16_N7ee653023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653023fooEv,_ZTv0_n12_N7ee653023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653023barEv,_ZTv0_n16_N7ee653023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65302[];
+extern void _ZN6dd53023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5302__7ee65302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302__7ee65302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5302__7ee65302[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee65302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee65302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee65302[] = {
+ {&(_ZTV7ee65302[4]), 4,17},
+ {&(_tg__ZTV6dd5302__7ee65302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd5302__7ee65302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5302__7ee65302[4]), 4,6},
+ {&(_ZTV7ee65302[10]), 10,17},
+ {&(_ZTV7ee65302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee65302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee65302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65302[];
+extern VTBL_ENTRY _ZTV7ee65302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65302[];
+static VTBL_ENTRY alt_thunk_names901[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn20_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653023barEv,_ZTv0_n16_N7ee653023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653023barEv,_ZThn20_N7ee653023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653023fooEv,_ZTv0_n12_N7ee653023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653023fooEv,_ZThn20_N7ee653023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653023fooEv,_ZTv0_n16_N7ee653023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653023fooEv,_ZThn12_N7ee653023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65302 = { "ee65302", // class name
+ bases_ee65302, 4,
+ &(vtc_ee65302[0]), // expected_vtbl_contents
+ &(vtt_ee65302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names901,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75302 : virtual dd5302 {
+ int e;
+ virtual void foo(); // _ZN7ee753023fooEv
+ virtual void bar(); // _ZN7ee753023barEv
+ ~ee75302(); // tgen
+ ee75302(); // tgen
+};
+//SIG(1 ee75302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75302 ::foo(){vfunc_called(this, "_ZN7ee753023fooEv");}
+void ee75302 ::bar(){vfunc_called(this, "_ZN7ee753023barEv");}
+ee75302 ::~ee75302(){ note_dtor("ee75302", this);} // tgen
+ee75302 ::ee75302(){ note_ctor("ee75302", this);} // tgen
+
+static void Test_ee75302()
+{
+ extern Class_Descriptor cd_ee75302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75302, buf);
+ ee75302 *dp, &lv = *(dp=new (buf) ee75302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee75302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee75302");
+ check_base_class_offset(lv, (cc302*)(dd5302*), ABISELECT(32,16), "ee75302");
+ check_base_class_offset(lv, (dd5302*), ABISELECT(16,8), "ee75302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75302.e");
+ test_class_info(&lv, &cd_ee75302);
+ dp->~ee75302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75302(Test_ee75302, "ee75302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75302C1Ev();
+extern void _ZN7ee75302D1Ev();
+Name_Map name_map_ee75302[] = {
+ NSPAIR(_ZN7ee75302C1Ev),
+ NSPAIR(_ZN7ee75302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd5302;
+extern VTBL_ENTRY _ZTI6dd5302[];
+extern VTBL_ENTRY _ZTV6dd5302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5302[];
+static Base_Class bases_ee75302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5302, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75302[];
+extern void _ZN7ee753023fooEv();
+extern void _ZN7ee753023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee753023barEv,_ZTv0_n20_N7ee753023barEv)();
+extern void ABISELECT(_ZThn16_N7ee753023barEv,_ZThn8_N7ee753023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753023fooEv,_ZTv0_n16_N7ee753023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753023fooEv,_ZThn16_N7ee753023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753023fooEv,_ZTv0_n12_N7ee753023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee753023fooEv,_ZThn24_N7ee753023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753023barEv,_ZTv0_n16_N7ee753023barEv)();
+extern void ABISELECT(_ZThn48_N7ee753023barEv,_ZThn24_N7ee753023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75302[0]),
+ (VTBL_ENTRY)&_ZN7ee753023fooEv,
+ (VTBL_ENTRY)&_ZN7ee753023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753023barEv,_ZTv0_n20_N7ee753023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753023fooEv,_ZTv0_n16_N7ee753023fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753023fooEv,_ZTv0_n12_N7ee753023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753023barEv,_ZTv0_n16_N7ee753023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75302[];
+extern void _ZN6dd53023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5302__7ee75302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN6dd53023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd5302__7ee75302[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv)();
+extern void ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5302__7ee75302[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee75302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee75302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee75302[] = {
+ {&(_ZTV7ee75302[5]), 5,24},
+ {&(_ZTV7ee75302[12]), 12,24},
+ {&(_ZTV7ee75302[17]), 17,24},
+ {&(_ZTV7ee75302[22]), 22,24},
+ {&(_tg__ZTV6dd5302__7ee75302[4]), 4,5},
+ {&(_tg__ZTV5cc302__6dd5302__7ee75302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5302__7ee75302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee75302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee75302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75302[];
+extern VTBL_ENTRY _ZTV7ee75302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75302[];
+static VTBL_ENTRY alt_thunk_names902[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53023barEv,_ZTv0_n16_N6dd53023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53023barEv,_ZThn16_N6dd53023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753023barEv,_ZTv0_n16_N7ee753023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753023barEv,_ZThn24_N7ee753023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753023fooEv,_ZTv0_n12_N7ee753023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753023fooEv,_ZThn24_N7ee753023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753023fooEv,_ZTv0_n16_N7ee753023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753023fooEv,_ZThn16_N7ee753023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753023barEv,_ZTv0_n20_N7ee753023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753023barEv,_ZThn8_N7ee753023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75302 = { "ee75302", // class name
+ bases_ee75302, 4,
+ &(vtc_ee75302[0]), // expected_vtbl_contents
+ &(vtt_ee75302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75302),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names902,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6302 : cc302 {
+ int d;
+ virtual void bar(); // _ZN6dd63023barEv
+ virtual void foo(); // _ZN6dd63023fooEv
+ ~dd6302(); // tgen
+ dd6302(); // tgen
+};
+//SIG(-1 dd6302) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6302 ::bar(){vfunc_called(this, "_ZN6dd63023barEv");}
+void dd6302 ::foo(){vfunc_called(this, "_ZN6dd63023fooEv");}
+dd6302 ::~dd6302(){ note_dtor("dd6302", this);} // tgen
+dd6302 ::dd6302(){ note_ctor("dd6302", this);} // tgen
+
+static void Test_dd6302()
+{
+ extern Class_Descriptor cd_dd6302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6302, buf);
+ dd6302 *dp, &lv = *(dp=new (buf) dd6302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd6302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(16,12), "dd6302");
+ check_base_class_offset(lv, (cc302*), 0, "dd6302");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6302.d");
+ test_class_info(&lv, &cd_dd6302);
+ dp->~dd6302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6302(Test_dd6302, "dd6302", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6302C1Ev();
+extern void _ZN6dd6302D1Ev();
+Name_Map name_map_dd6302[] = {
+ NSPAIR(_ZN6dd6302C1Ev),
+ NSPAIR(_ZN6dd6302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static Base_Class bases_dd6302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd6302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__6dd6302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd6302[] = {
+ {&(_ZTV6dd6302[3]), 3,11},
+ {&(_tg__ZTV5cc302__6dd6302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__6dd6302[4]), 4,6},
+ {&(_ZTV6dd6302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static VTBL_ENTRY alt_thunk_names903[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6302 = { "dd6302", // class name
+ bases_dd6302, 3,
+ &(vtc_dd6302[0]), // expected_vtbl_contents
+ &(vtt_dd6302[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6302),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names903,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06302 : dd6302 {
+ int e;
+ ~ee06302(); // tgen
+ ee06302(); // tgen
+};
+//SIG(1 ee06302) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06302 ::~ee06302(){ note_dtor("ee06302", this);} // tgen
+ee06302 ::ee06302(){ note_ctor("ee06302", this);} // tgen
+
+static void Test_ee06302()
+{
+ extern Class_Descriptor cd_ee06302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06302, buf);
+ ee06302 *dp, &lv = *(dp=new (buf) ee06302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee06302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd6302*), ABISELECT(24,16), "ee06302");
+ check_base_class_offset(lv, (cc302*)(dd6302*), 0, "ee06302");
+ check_base_class_offset(lv, (dd6302*), 0, "ee06302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06302.e");
+ test_class_info(&lv, &cd_ee06302);
+ dp->~ee06302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06302(Test_ee06302, "ee06302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06302C1Ev();
+extern void _ZN7ee06302D1Ev();
+Name_Map name_map_ee06302[] = {
+ NSPAIR(_ZN7ee06302C1Ev),
+ NSPAIR(_ZN7ee06302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd6302;
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static Base_Class bases_ee06302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6302__7ee06302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd6302__7ee06302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd6302__7ee06302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6302__7ee06302[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+static VTT_ENTRY vtt_ee06302[] = {
+ {&(_ZTV7ee06302[3]), 3,11},
+ {&(_tg__ZTV6dd6302__7ee06302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd6302__7ee06302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd6302__7ee06302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6302__7ee06302[4]), 4,6},
+ {&(_ZTV7ee06302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06302[];
+extern VTBL_ENTRY _ZTV7ee06302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06302[];
+static VTBL_ENTRY alt_thunk_names904[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06302 = { "ee06302", // class name
+ bases_ee06302, 4,
+ &(vtc_ee06302[0]), // expected_vtbl_contents
+ &(vtt_ee06302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names904,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16302 : virtual dd6302 {
+ int e;
+ ~ee16302(); // tgen
+ ee16302(); // tgen
+};
+//SIG(1 ee16302) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16302 ::~ee16302(){ note_dtor("ee16302", this);} // tgen
+ee16302 ::ee16302(){ note_ctor("ee16302", this);} // tgen
+
+static void Test_ee16302()
+{
+ extern Class_Descriptor cd_ee16302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16302, buf);
+ ee16302 *dp, &lv = *(dp=new (buf) ee16302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee16302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd6302*), ABISELECT(32,20), "ee16302");
+ check_base_class_offset(lv, (cc302*)(dd6302*), ABISELECT(16,8), "ee16302");
+ check_base_class_offset(lv, (dd6302*), ABISELECT(16,8), "ee16302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16302.e");
+ test_class_info(&lv, &cd_ee16302);
+ dp->~ee16302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16302(Test_ee16302, "ee16302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16302C1Ev();
+extern void _ZN7ee16302D1Ev();
+Name_Map name_map_ee16302[] = {
+ NSPAIR(_ZN7ee16302C1Ev),
+ NSPAIR(_ZN7ee16302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd6302;
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static Base_Class bases_ee16302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6302, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16302[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6302__7ee16302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd6302__7ee16302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd6302__7ee16302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6302__7ee16302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+static VTT_ENTRY vtt_ee16302[] = {
+ {&(_ZTV7ee16302[4]), 4,17},
+ {&(_ZTV7ee16302[9]), 9,17},
+ {&(_ZTV7ee16302[15]), 15,17},
+ {&(_tg__ZTV6dd6302__7ee16302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd6302__7ee16302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd6302__7ee16302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6302__7ee16302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16302[];
+extern VTBL_ENTRY _ZTV7ee16302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16302[];
+static VTBL_ENTRY alt_thunk_names905[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16302 = { "ee16302", // class name
+ bases_ee16302, 4,
+ &(vtc_ee16302[0]), // expected_vtbl_contents
+ &(vtt_ee16302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names905,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26302 : dd6302 {
+ int e;
+ virtual void foo(); // _ZN7ee263023fooEv
+ ~ee26302(); // tgen
+ ee26302(); // tgen
+};
+//SIG(1 ee26302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26302 ::foo(){vfunc_called(this, "_ZN7ee263023fooEv");}
+ee26302 ::~ee26302(){ note_dtor("ee26302", this);} // tgen
+ee26302 ::ee26302(){ note_ctor("ee26302", this);} // tgen
+
+static void Test_ee26302()
+{
+ extern Class_Descriptor cd_ee26302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26302, buf);
+ ee26302 *dp, &lv = *(dp=new (buf) ee26302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee26302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd6302*), ABISELECT(24,16), "ee26302");
+ check_base_class_offset(lv, (cc302*)(dd6302*), 0, "ee26302");
+ check_base_class_offset(lv, (dd6302*), 0, "ee26302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26302.e");
+ test_class_info(&lv, &cd_ee26302);
+ dp->~ee26302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26302(Test_ee26302, "ee26302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26302C1Ev();
+extern void _ZN7ee26302D1Ev();
+Name_Map name_map_ee26302[] = {
+ NSPAIR(_ZN7ee26302C1Ev),
+ NSPAIR(_ZN7ee26302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd6302;
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static Base_Class bases_ee26302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26302[];
+extern void _ZN7ee263023fooEv();
+extern void _ZN6dd63023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee263023fooEv,_ZTv0_n12_N7ee263023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee263023fooEv,_ZThn16_N7ee263023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26302[0]),
+ (VTBL_ENTRY)&_ZN7ee263023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263023fooEv,_ZTv0_n12_N7ee263023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6302__7ee26302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd6302__7ee26302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd6302__7ee26302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6302__7ee26302[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+static VTT_ENTRY vtt_ee26302[] = {
+ {&(_ZTV7ee26302[3]), 3,11},
+ {&(_tg__ZTV6dd6302__7ee26302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd6302__7ee26302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd6302__7ee26302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6302__7ee26302[4]), 4,6},
+ {&(_ZTV7ee26302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26302[];
+extern VTBL_ENTRY _ZTV7ee26302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26302[];
+static VTBL_ENTRY alt_thunk_names906[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263023fooEv,_ZTv0_n12_N7ee263023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee263023fooEv,_ZThn16_N7ee263023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26302 = { "ee26302", // class name
+ bases_ee26302, 4,
+ &(vtc_ee26302[0]), // expected_vtbl_contents
+ &(vtt_ee26302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names906,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36302 : virtual dd6302 {
+ int e;
+ virtual void foo(); // _ZN7ee363023fooEv
+ ~ee36302(); // tgen
+ ee36302(); // tgen
+};
+//SIG(1 ee36302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36302 ::foo(){vfunc_called(this, "_ZN7ee363023fooEv");}
+ee36302 ::~ee36302(){ note_dtor("ee36302", this);} // tgen
+ee36302 ::ee36302(){ note_ctor("ee36302", this);} // tgen
+
+static void Test_ee36302()
+{
+ extern Class_Descriptor cd_ee36302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36302, buf);
+ ee36302 *dp, &lv = *(dp=new (buf) ee36302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee36302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd6302*), ABISELECT(32,20), "ee36302");
+ check_base_class_offset(lv, (cc302*)(dd6302*), ABISELECT(16,8), "ee36302");
+ check_base_class_offset(lv, (dd6302*), ABISELECT(16,8), "ee36302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36302.e");
+ test_class_info(&lv, &cd_ee36302);
+ dp->~ee36302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36302(Test_ee36302, "ee36302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36302C1Ev();
+extern void _ZN7ee36302D1Ev();
+Name_Map name_map_ee36302[] = {
+ NSPAIR(_ZN7ee36302C1Ev),
+ NSPAIR(_ZN7ee36302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd6302;
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static Base_Class bases_ee36302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36302[];
+extern void _ZN7ee363023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee363023fooEv,_ZTv0_n16_N7ee363023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363023fooEv,_ZThn8_N7ee363023fooEv)() __attribute__((weak));
+extern void _ZN6dd63023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee363023fooEv,_ZTv0_n12_N7ee363023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee363023fooEv,_ZThn20_N7ee363023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36302[0]),
+ (VTBL_ENTRY)&_ZN7ee363023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee363023fooEv,_ZTv0_n16_N7ee363023fooEv),
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363023fooEv,_ZTv0_n12_N7ee363023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6302__7ee36302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd6302__7ee36302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd6302__7ee36302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6302__7ee36302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+static VTT_ENTRY vtt_ee36302[] = {
+ {&(_ZTV7ee36302[4]), 4,18},
+ {&(_ZTV7ee36302[10]), 10,18},
+ {&(_ZTV7ee36302[16]), 16,18},
+ {&(_tg__ZTV6dd6302__7ee36302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd6302__7ee36302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd6302__7ee36302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6302__7ee36302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36302[];
+extern VTBL_ENTRY _ZTV7ee36302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36302[];
+static VTBL_ENTRY alt_thunk_names907[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363023fooEv,_ZTv0_n12_N7ee363023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee363023fooEv,_ZThn20_N7ee363023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee363023fooEv,_ZTv0_n16_N7ee363023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363023fooEv,_ZThn8_N7ee363023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36302 = { "ee36302", // class name
+ bases_ee36302, 4,
+ &(vtc_ee36302[0]), // expected_vtbl_contents
+ &(vtt_ee36302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36302),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names907,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46302 : dd6302 {
+ int e;
+ virtual void bar(); // _ZN7ee463023barEv
+ ~ee46302(); // tgen
+ ee46302(); // tgen
+};
+//SIG(1 ee46302) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46302 ::bar(){vfunc_called(this, "_ZN7ee463023barEv");}
+ee46302 ::~ee46302(){ note_dtor("ee46302", this);} // tgen
+ee46302 ::ee46302(){ note_ctor("ee46302", this);} // tgen
+
+static void Test_ee46302()
+{
+ extern Class_Descriptor cd_ee46302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46302, buf);
+ ee46302 *dp, &lv = *(dp=new (buf) ee46302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee46302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd6302*), ABISELECT(24,16), "ee46302");
+ check_base_class_offset(lv, (cc302*)(dd6302*), 0, "ee46302");
+ check_base_class_offset(lv, (dd6302*), 0, "ee46302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46302.e");
+ test_class_info(&lv, &cd_ee46302);
+ dp->~ee46302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46302(Test_ee46302, "ee46302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46302C1Ev();
+extern void _ZN7ee46302D1Ev();
+Name_Map name_map_ee46302[] = {
+ NSPAIR(_ZN7ee46302C1Ev),
+ NSPAIR(_ZN7ee46302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd6302;
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static Base_Class bases_ee46302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN7ee463023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee463023barEv,_ZTv0_n16_N7ee463023barEv)();
+extern void ABISELECT(_ZThn24_N7ee463023barEv,_ZThn16_N7ee463023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN7ee463023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee463023barEv,_ZTv0_n16_N7ee463023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6302__7ee46302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd6302__7ee46302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd6302__7ee46302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6302__7ee46302[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+static VTT_ENTRY vtt_ee46302[] = {
+ {&(_ZTV7ee46302[3]), 3,11},
+ {&(_tg__ZTV6dd6302__7ee46302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd6302__7ee46302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd6302__7ee46302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6302__7ee46302[4]), 4,6},
+ {&(_ZTV7ee46302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46302[];
+extern VTBL_ENTRY _ZTV7ee46302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46302[];
+static VTBL_ENTRY alt_thunk_names908[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee463023barEv,_ZTv0_n16_N7ee463023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee463023barEv,_ZThn16_N7ee463023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46302 = { "ee46302", // class name
+ bases_ee46302, 4,
+ &(vtc_ee46302[0]), // expected_vtbl_contents
+ &(vtt_ee46302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names908,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56302 : virtual dd6302 {
+ int e;
+ virtual void bar(); // _ZN7ee563023barEv
+ ~ee56302(); // tgen
+ ee56302(); // tgen
+};
+//SIG(1 ee56302) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56302 ::bar(){vfunc_called(this, "_ZN7ee563023barEv");}
+ee56302 ::~ee56302(){ note_dtor("ee56302", this);} // tgen
+ee56302 ::ee56302(){ note_ctor("ee56302", this);} // tgen
+
+static void Test_ee56302()
+{
+ extern Class_Descriptor cd_ee56302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56302, buf);
+ ee56302 *dp, &lv = *(dp=new (buf) ee56302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee56302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd6302*), ABISELECT(32,20), "ee56302");
+ check_base_class_offset(lv, (cc302*)(dd6302*), ABISELECT(16,8), "ee56302");
+ check_base_class_offset(lv, (dd6302*), ABISELECT(16,8), "ee56302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56302.e");
+ test_class_info(&lv, &cd_ee56302);
+ dp->~ee56302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56302(Test_ee56302, "ee56302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56302C1Ev();
+extern void _ZN7ee56302D1Ev();
+Name_Map name_map_ee56302[] = {
+ NSPAIR(_ZN7ee56302C1Ev),
+ NSPAIR(_ZN7ee56302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd6302;
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static Base_Class bases_ee56302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56302[];
+extern void _ZN7ee563023barEv();
+extern void _ZN6dd63023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee563023barEv,_ZTv0_n20_N7ee563023barEv)();
+extern void ABISELECT(_ZThn16_N7ee563023barEv,_ZThn8_N7ee563023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee563023barEv,_ZTv0_n16_N7ee563023barEv)();
+extern void ABISELECT(_ZThn32_N7ee563023barEv,_ZThn20_N7ee563023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56302[0]),
+ (VTBL_ENTRY)&_ZN7ee563023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee563023barEv,_ZTv0_n20_N7ee563023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee563023barEv,_ZTv0_n16_N7ee563023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6302__7ee56302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd6302__7ee56302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd6302__7ee56302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6302__7ee56302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+static VTT_ENTRY vtt_ee56302[] = {
+ {&(_ZTV7ee56302[4]), 4,18},
+ {&(_ZTV7ee56302[10]), 10,18},
+ {&(_ZTV7ee56302[16]), 16,18},
+ {&(_tg__ZTV6dd6302__7ee56302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd6302__7ee56302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd6302__7ee56302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6302__7ee56302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56302[];
+extern VTBL_ENTRY _ZTV7ee56302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56302[];
+static VTBL_ENTRY alt_thunk_names909[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee563023barEv,_ZTv0_n16_N7ee563023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee563023barEv,_ZThn20_N7ee563023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee563023barEv,_ZTv0_n20_N7ee563023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563023barEv,_ZThn8_N7ee563023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56302 = { "ee56302", // class name
+ bases_ee56302, 4,
+ &(vtc_ee56302[0]), // expected_vtbl_contents
+ &(vtt_ee56302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56302),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names909,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66302 : dd6302 {
+ int e;
+ virtual void foo(); // _ZN7ee663023fooEv
+ virtual void bar(); // _ZN7ee663023barEv
+ ~ee66302(); // tgen
+ ee66302(); // tgen
+};
+//SIG(1 ee66302) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66302 ::foo(){vfunc_called(this, "_ZN7ee663023fooEv");}
+void ee66302 ::bar(){vfunc_called(this, "_ZN7ee663023barEv");}
+ee66302 ::~ee66302(){ note_dtor("ee66302", this);} // tgen
+ee66302 ::ee66302(){ note_ctor("ee66302", this);} // tgen
+
+static void Test_ee66302()
+{
+ extern Class_Descriptor cd_ee66302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66302, buf);
+ ee66302 *dp, &lv = *(dp=new (buf) ee66302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee66302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd6302*), ABISELECT(24,16), "ee66302");
+ check_base_class_offset(lv, (cc302*)(dd6302*), 0, "ee66302");
+ check_base_class_offset(lv, (dd6302*), 0, "ee66302");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66302.e");
+ test_class_info(&lv, &cd_ee66302);
+ dp->~ee66302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66302(Test_ee66302, "ee66302", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66302C1Ev();
+extern void _ZN7ee66302D1Ev();
+Name_Map name_map_ee66302[] = {
+ NSPAIR(_ZN7ee66302C1Ev),
+ NSPAIR(_ZN7ee66302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd6302;
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static Base_Class bases_ee66302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66302[];
+extern void _ZN7ee663023fooEv();
+extern void _ZN7ee663023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee663023fooEv,_ZTv0_n12_N7ee663023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee663023fooEv,_ZThn16_N7ee663023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee663023barEv,_ZTv0_n16_N7ee663023barEv)();
+extern void ABISELECT(_ZThn24_N7ee663023barEv,_ZThn16_N7ee663023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66302[0]),
+ (VTBL_ENTRY)&_ZN7ee663023fooEv,
+ (VTBL_ENTRY)&_ZN7ee663023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663023fooEv,_ZTv0_n12_N7ee663023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663023barEv,_ZTv0_n16_N7ee663023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6302__7ee66302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd6302__7ee66302[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd6302__7ee66302[] = {
+ 0,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6302__7ee66302[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+static VTT_ENTRY vtt_ee66302[] = {
+ {&(_ZTV7ee66302[3]), 3,11},
+ {&(_tg__ZTV6dd6302__7ee66302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd6302__7ee66302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd6302__7ee66302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6302__7ee66302[4]), 4,6},
+ {&(_ZTV7ee66302[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66302[];
+extern VTBL_ENTRY _ZTV7ee66302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66302[];
+static VTBL_ENTRY alt_thunk_names910[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023barEv,_ZThn16_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63023fooEv,_ZThn16_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc3023fooEv,_ZThn16_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee663023barEv,_ZTv0_n16_N7ee663023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663023barEv,_ZThn16_N7ee663023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663023fooEv,_ZTv0_n12_N7ee663023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663023fooEv,_ZThn16_N7ee663023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66302 = { "ee66302", // class name
+ bases_ee66302, 4,
+ &(vtc_ee66302[0]), // expected_vtbl_contents
+ &(vtt_ee66302[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66302),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66302),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names910,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76302 : virtual dd6302 {
+ int e;
+ virtual void foo(); // _ZN7ee763023fooEv
+ virtual void bar(); // _ZN7ee763023barEv
+ ~ee76302(); // tgen
+ ee76302(); // tgen
+};
+//SIG(1 ee76302) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76302 ::foo(){vfunc_called(this, "_ZN7ee763023fooEv");}
+void ee76302 ::bar(){vfunc_called(this, "_ZN7ee763023barEv");}
+ee76302 ::~ee76302(){ note_dtor("ee76302", this);} // tgen
+ee76302 ::ee76302(){ note_ctor("ee76302", this);} // tgen
+
+static void Test_ee76302()
+{
+ extern Class_Descriptor cd_ee76302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76302, buf);
+ ee76302 *dp, &lv = *(dp=new (buf) ee76302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee76302");
+ check_base_class_offset(lv, (bb02*)(cc302*)(dd6302*), ABISELECT(32,20), "ee76302");
+ check_base_class_offset(lv, (cc302*)(dd6302*), ABISELECT(16,8), "ee76302");
+ check_base_class_offset(lv, (dd6302*), ABISELECT(16,8), "ee76302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76302.e");
+ test_class_info(&lv, &cd_ee76302);
+ dp->~ee76302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76302(Test_ee76302, "ee76302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76302C1Ev();
+extern void _ZN7ee76302D1Ev();
+Name_Map name_map_ee76302[] = {
+ NSPAIR(_ZN7ee76302C1Ev),
+ NSPAIR(_ZN7ee76302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd6302;
+extern VTBL_ENTRY _ZTI6dd6302[];
+extern VTBL_ENTRY _ZTV6dd6302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6302[];
+static Base_Class bases_ee76302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76302[];
+extern void _ZN7ee763023fooEv();
+extern void _ZN7ee763023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee763023fooEv,_ZTv0_n16_N7ee763023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763023fooEv,_ZThn8_N7ee763023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee763023barEv,_ZTv0_n20_N7ee763023barEv)();
+extern void ABISELECT(_ZThn16_N7ee763023barEv,_ZThn8_N7ee763023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763023fooEv,_ZTv0_n12_N7ee763023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee763023fooEv,_ZThn20_N7ee763023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763023barEv,_ZTv0_n16_N7ee763023barEv)();
+extern void ABISELECT(_ZThn32_N7ee763023barEv,_ZThn20_N7ee763023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76302[0]),
+ (VTBL_ENTRY)&_ZN7ee763023fooEv,
+ (VTBL_ENTRY)&_ZN7ee763023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763023fooEv,_ZTv0_n16_N7ee763023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763023barEv,_ZTv0_n20_N7ee763023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763023fooEv,_ZTv0_n12_N7ee763023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763023barEv,_ZTv0_n16_N7ee763023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76302[];
+extern void _ZN6dd63023fooEv();
+extern void _ZN6dd63023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6302__7ee76302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&_ZN6dd63023fooEv,
+ (VTBL_ENTRY)&_ZN6dd63023barEv,
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3026dd6302__7ee76302[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc3026dd6302__7ee76302[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv)();
+extern void ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6302__7ee76302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv),
+};
+static VTT_ENTRY vtt_ee76302[] = {
+ {&(_ZTV7ee76302[4]), 4,19},
+ {&(_ZTV7ee76302[11]), 11,19},
+ {&(_ZTV7ee76302[17]), 17,19},
+ {&(_tg__ZTV6dd6302__7ee76302[3]), 3,5},
+ {&(_tg__ZTV5cc3026dd6302__7ee76302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc3026dd6302__7ee76302[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6302__7ee76302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76302[];
+extern VTBL_ENTRY _ZTV7ee76302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76302[];
+static VTBL_ENTRY alt_thunk_names911[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63023barEv,_ZTv0_n16_N6dd63023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023barEv,_ZThn12_N6dd63023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63023fooEv,_ZTv0_n12_N6dd63023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63023fooEv,_ZThn12_N6dd63023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn12_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763023barEv,_ZTv0_n16_N7ee763023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763023barEv,_ZThn20_N7ee763023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763023fooEv,_ZTv0_n12_N7ee763023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763023fooEv,_ZThn20_N7ee763023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763023barEv,_ZTv0_n20_N7ee763023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763023barEv,_ZThn8_N7ee763023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763023fooEv,_ZTv0_n16_N7ee763023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763023fooEv,_ZThn8_N7ee763023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76302 = { "ee76302", // class name
+ bases_ee76302, 4,
+ &(vtc_ee76302[0]), // expected_vtbl_contents
+ &(vtt_ee76302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76302),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76302),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names911,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7302 : virtual cc302 {
+ int d;
+ virtual void bar(); // _ZN6dd73023barEv
+ virtual void foo(); // _ZN6dd73023fooEv
+ ~dd7302(); // tgen
+ dd7302(); // tgen
+};
+//SIG(-1 dd7302) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7302 ::bar(){vfunc_called(this, "_ZN6dd73023barEv");}
+void dd7302 ::foo(){vfunc_called(this, "_ZN6dd73023fooEv");}
+dd7302 ::~dd7302(){ note_dtor("dd7302", this);} // tgen
+dd7302 ::dd7302(){ note_ctor("dd7302", this);} // tgen
+
+static void Test_dd7302()
+{
+ extern Class_Descriptor cd_dd7302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7302, buf);
+ dd7302 *dp, &lv = *(dp=new (buf) dd7302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd7302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,16), "dd7302");
+ check_base_class_offset(lv, (cc302*), ABISELECT(16,8), "dd7302");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7302.d");
+ test_class_info(&lv, &cd_dd7302);
+ dp->~dd7302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7302(Test_dd7302, "dd7302", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7302C1Ev();
+extern void _ZN6dd7302D1Ev();
+Name_Map name_map_dd7302[] = {
+ NSPAIR(_ZN6dd7302C1Ev),
+ NSPAIR(_ZN6dd7302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+static Base_Class bases_dd7302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, 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 _ZTI6dd7302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__6dd7302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_dd7302[] = {
+ {&(_ZTV6dd7302[4]), 4,17},
+ {&(_ZTV6dd7302[10]), 10,17},
+ {&(_ZTV6dd7302[15]), 15,17},
+ {&(_tg__ZTV5cc302__6dd7302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__6dd7302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static VTBL_ENTRY alt_thunk_names912[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7302 = { "dd7302", // class name
+ bases_dd7302, 3,
+ &(vtc_dd7302[0]), // expected_vtbl_contents
+ &(vtt_dd7302[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7302),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names912,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07302 : dd7302 {
+ int e;
+ ~ee07302(); // tgen
+ ee07302(); // tgen
+};
+//SIG(1 ee07302) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07302 ::~ee07302(){ note_dtor("ee07302", this);} // tgen
+ee07302 ::ee07302(){ note_ctor("ee07302", this);} // tgen
+
+static void Test_ee07302()
+{
+ extern Class_Descriptor cd_ee07302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07302, buf);
+ ee07302 *dp, &lv = *(dp=new (buf) ee07302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee07302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee07302");
+ check_base_class_offset(lv, (cc302*)(dd7302*), ABISELECT(16,12), "ee07302");
+ check_base_class_offset(lv, (dd7302*), 0, "ee07302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07302.e");
+ test_class_info(&lv, &cd_ee07302);
+ dp->~ee07302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07302(Test_ee07302, "ee07302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07302C1Ev();
+extern void _ZN7ee07302D1Ev();
+Name_Map name_map_ee07302[] = {
+ NSPAIR(_ZN7ee07302C1Ev),
+ NSPAIR(_ZN7ee07302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd7302;
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static Base_Class bases_ee07302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7302__7ee07302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302__7ee07302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7302__7ee07302[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee07302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee07302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee07302[] = {
+ {&(_ZTV7ee07302[4]), 4,17},
+ {&(_tg__ZTV6dd7302__7ee07302[4]), 4,6},
+ {&(_tg__ZTV5cc302__6dd7302__7ee07302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7302__7ee07302[4]), 4,6},
+ {&(_ZTV7ee07302[10]), 10,17},
+ {&(_ZTV7ee07302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee07302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee07302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07302[];
+extern VTBL_ENTRY _ZTV7ee07302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07302[];
+static VTBL_ENTRY alt_thunk_names913[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07302 = { "ee07302", // class name
+ bases_ee07302, 4,
+ &(vtc_ee07302[0]), // expected_vtbl_contents
+ &(vtt_ee07302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names913,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17302 : virtual dd7302 {
+ int e;
+ ~ee17302(); // tgen
+ ee17302(); // tgen
+};
+//SIG(1 ee17302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17302 ::~ee17302(){ note_dtor("ee17302", this);} // tgen
+ee17302 ::ee17302(){ note_ctor("ee17302", this);} // tgen
+
+static void Test_ee17302()
+{
+ extern Class_Descriptor cd_ee17302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17302, buf);
+ ee17302 *dp, &lv = *(dp=new (buf) ee17302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee17302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee17302");
+ check_base_class_offset(lv, (cc302*)(dd7302*), ABISELECT(32,16), "ee17302");
+ check_base_class_offset(lv, (dd7302*), ABISELECT(16,8), "ee17302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17302.e");
+ test_class_info(&lv, &cd_ee17302);
+ dp->~ee17302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17302(Test_ee17302, "ee17302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17302C1Ev();
+extern void _ZN7ee17302D1Ev();
+Name_Map name_map_ee17302[] = {
+ NSPAIR(_ZN7ee17302C1Ev),
+ NSPAIR(_ZN7ee17302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd7302;
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static Base_Class bases_ee17302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7302, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17302[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7302__7ee17302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302__7ee17302[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7302__7ee17302[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee17302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee17302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee17302[] = {
+ {&(_ZTV7ee17302[5]), 5,24},
+ {&(_ZTV7ee17302[11]), 11,24},
+ {&(_ZTV7ee17302[17]), 17,24},
+ {&(_ZTV7ee17302[22]), 22,24},
+ {&(_tg__ZTV6dd7302__7ee17302[4]), 4,6},
+ {&(_tg__ZTV5cc302__6dd7302__7ee17302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7302__7ee17302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee17302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee17302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17302[];
+extern VTBL_ENTRY _ZTV7ee17302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17302[];
+static VTBL_ENTRY alt_thunk_names914[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17302 = { "ee17302", // class name
+ bases_ee17302, 4,
+ &(vtc_ee17302[0]), // expected_vtbl_contents
+ &(vtt_ee17302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17302),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names914,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27302 : dd7302 {
+ int e;
+ virtual void foo(); // _ZN7ee273023fooEv
+ ~ee27302(); // tgen
+ ee27302(); // tgen
+};
+//SIG(1 ee27302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27302 ::foo(){vfunc_called(this, "_ZN7ee273023fooEv");}
+ee27302 ::~ee27302(){ note_dtor("ee27302", this);} // tgen
+ee27302 ::ee27302(){ note_ctor("ee27302", this);} // tgen
+
+static void Test_ee27302()
+{
+ extern Class_Descriptor cd_ee27302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27302, buf);
+ ee27302 *dp, &lv = *(dp=new (buf) ee27302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee27302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee27302");
+ check_base_class_offset(lv, (cc302*)(dd7302*), ABISELECT(16,12), "ee27302");
+ check_base_class_offset(lv, (dd7302*), 0, "ee27302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27302.e");
+ test_class_info(&lv, &cd_ee27302);
+ dp->~ee27302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27302(Test_ee27302, "ee27302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27302C1Ev();
+extern void _ZN7ee27302D1Ev();
+Name_Map name_map_ee27302[] = {
+ NSPAIR(_ZN7ee27302C1Ev),
+ NSPAIR(_ZN7ee27302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd7302;
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static Base_Class bases_ee27302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN7ee273023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee273023fooEv,_ZTv0_n16_N7ee273023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273023fooEv,_ZThn12_N7ee273023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273023fooEv,_ZTv0_n12_N7ee273023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee273023fooEv,_ZThn20_N7ee273023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN7ee273023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee273023fooEv,_ZTv0_n16_N7ee273023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273023fooEv,_ZTv0_n12_N7ee273023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7302__7ee27302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302__7ee27302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7302__7ee27302[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee27302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee27302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee27302[] = {
+ {&(_ZTV7ee27302[4]), 4,17},
+ {&(_tg__ZTV6dd7302__7ee27302[4]), 4,6},
+ {&(_tg__ZTV5cc302__6dd7302__7ee27302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7302__7ee27302[4]), 4,6},
+ {&(_ZTV7ee27302[10]), 10,17},
+ {&(_ZTV7ee27302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee27302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee27302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27302[];
+extern VTBL_ENTRY _ZTV7ee27302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27302[];
+static VTBL_ENTRY alt_thunk_names915[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273023fooEv,_ZTv0_n12_N7ee273023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee273023fooEv,_ZThn20_N7ee273023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee273023fooEv,_ZTv0_n16_N7ee273023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273023fooEv,_ZThn12_N7ee273023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27302 = { "ee27302", // class name
+ bases_ee27302, 4,
+ &(vtc_ee27302[0]), // expected_vtbl_contents
+ &(vtt_ee27302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names915,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37302 : virtual dd7302 {
+ int e;
+ virtual void foo(); // _ZN7ee373023fooEv
+ ~ee37302(); // tgen
+ ee37302(); // tgen
+};
+//SIG(1 ee37302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37302 ::foo(){vfunc_called(this, "_ZN7ee373023fooEv");}
+ee37302 ::~ee37302(){ note_dtor("ee37302", this);} // tgen
+ee37302 ::ee37302(){ note_ctor("ee37302", this);} // tgen
+
+static void Test_ee37302()
+{
+ extern Class_Descriptor cd_ee37302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37302, buf);
+ ee37302 *dp, &lv = *(dp=new (buf) ee37302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee37302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee37302");
+ check_base_class_offset(lv, (cc302*)(dd7302*), ABISELECT(32,16), "ee37302");
+ check_base_class_offset(lv, (dd7302*), ABISELECT(16,8), "ee37302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37302.e");
+ test_class_info(&lv, &cd_ee37302);
+ dp->~ee37302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37302(Test_ee37302, "ee37302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37302C1Ev();
+extern void _ZN7ee37302D1Ev();
+Name_Map name_map_ee37302[] = {
+ NSPAIR(_ZN7ee37302C1Ev),
+ NSPAIR(_ZN7ee37302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd7302;
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static Base_Class bases_ee37302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37302[];
+extern void _ZN7ee373023fooEv();
+extern void _ZN6dd73023barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee373023fooEv,_ZTv0_n24_N7ee373023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373023fooEv,_ZThn8_N7ee373023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee373023fooEv,_ZTv0_n16_N7ee373023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373023fooEv,_ZThn16_N7ee373023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373023fooEv,_ZTv0_n12_N7ee373023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee373023fooEv,_ZThn24_N7ee373023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37302[0]),
+ (VTBL_ENTRY)&_ZN7ee373023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee373023fooEv,_ZTv0_n24_N7ee373023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee373023fooEv,_ZTv0_n16_N7ee373023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373023fooEv,_ZTv0_n12_N7ee373023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7302__7ee37302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302__7ee37302[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7302__7ee37302[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee37302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee37302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee37302[] = {
+ {&(_ZTV7ee37302[5]), 5,25},
+ {&(_ZTV7ee37302[12]), 12,25},
+ {&(_ZTV7ee37302[18]), 18,25},
+ {&(_ZTV7ee37302[23]), 23,25},
+ {&(_tg__ZTV6dd7302__7ee37302[4]), 4,6},
+ {&(_tg__ZTV5cc302__6dd7302__7ee37302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7302__7ee37302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee37302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee37302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37302[];
+extern VTBL_ENTRY _ZTV7ee37302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37302[];
+static VTBL_ENTRY alt_thunk_names916[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373023fooEv,_ZTv0_n12_N7ee373023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee373023fooEv,_ZThn24_N7ee373023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee373023fooEv,_ZTv0_n16_N7ee373023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373023fooEv,_ZThn16_N7ee373023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee373023fooEv,_ZTv0_n24_N7ee373023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373023fooEv,_ZThn8_N7ee373023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37302 = { "ee37302", // class name
+ bases_ee37302, 4,
+ &(vtc_ee37302[0]), // expected_vtbl_contents
+ &(vtt_ee37302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37302),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names916,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47302 : dd7302 {
+ int e;
+ virtual void bar(); // _ZN7ee473023barEv
+ ~ee47302(); // tgen
+ ee47302(); // tgen
+};
+//SIG(1 ee47302) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47302 ::bar(){vfunc_called(this, "_ZN7ee473023barEv");}
+ee47302 ::~ee47302(){ note_dtor("ee47302", this);} // tgen
+ee47302 ::ee47302(){ note_ctor("ee47302", this);} // tgen
+
+static void Test_ee47302()
+{
+ extern Class_Descriptor cd_ee47302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47302, buf);
+ ee47302 *dp, &lv = *(dp=new (buf) ee47302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee47302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee47302");
+ check_base_class_offset(lv, (cc302*)(dd7302*), ABISELECT(16,12), "ee47302");
+ check_base_class_offset(lv, (dd7302*), 0, "ee47302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47302.e");
+ test_class_info(&lv, &cd_ee47302);
+ dp->~ee47302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47302(Test_ee47302, "ee47302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47302C1Ev();
+extern void _ZN7ee47302D1Ev();
+Name_Map name_map_ee47302[] = {
+ NSPAIR(_ZN7ee47302C1Ev),
+ NSPAIR(_ZN7ee47302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd7302;
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static Base_Class bases_ee47302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47302[];
+extern void _ZN7ee473023barEv();
+extern void _ZN6dd73023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee473023barEv,_ZTv0_n16_N7ee473023barEv)();
+extern void ABISELECT(_ZThn32_N7ee473023barEv,_ZThn20_N7ee473023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47302[0]),
+ (VTBL_ENTRY)&_ZN7ee473023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee473023barEv,_ZTv0_n16_N7ee473023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7302__7ee47302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302__7ee47302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7302__7ee47302[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee47302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee47302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee47302[] = {
+ {&(_ZTV7ee47302[4]), 4,17},
+ {&(_tg__ZTV6dd7302__7ee47302[4]), 4,6},
+ {&(_tg__ZTV5cc302__6dd7302__7ee47302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7302__7ee47302[4]), 4,6},
+ {&(_ZTV7ee47302[10]), 10,17},
+ {&(_ZTV7ee47302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee47302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee47302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47302[];
+extern VTBL_ENTRY _ZTV7ee47302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47302[];
+static VTBL_ENTRY alt_thunk_names917[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee473023barEv,_ZTv0_n16_N7ee473023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee473023barEv,_ZThn20_N7ee473023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47302 = { "ee47302", // class name
+ bases_ee47302, 4,
+ &(vtc_ee47302[0]), // expected_vtbl_contents
+ &(vtt_ee47302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names917,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57302 : virtual dd7302 {
+ int e;
+ virtual void bar(); // _ZN7ee573023barEv
+ ~ee57302(); // tgen
+ ee57302(); // tgen
+};
+//SIG(1 ee57302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57302 ::bar(){vfunc_called(this, "_ZN7ee573023barEv");}
+ee57302 ::~ee57302(){ note_dtor("ee57302", this);} // tgen
+ee57302 ::ee57302(){ note_ctor("ee57302", this);} // tgen
+
+static void Test_ee57302()
+{
+ extern Class_Descriptor cd_ee57302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57302, buf);
+ ee57302 *dp, &lv = *(dp=new (buf) ee57302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee57302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee57302");
+ check_base_class_offset(lv, (cc302*)(dd7302*), ABISELECT(32,16), "ee57302");
+ check_base_class_offset(lv, (dd7302*), ABISELECT(16,8), "ee57302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57302.e");
+ test_class_info(&lv, &cd_ee57302);
+ dp->~ee57302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57302(Test_ee57302, "ee57302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57302C1Ev();
+extern void _ZN7ee57302D1Ev();
+Name_Map name_map_ee57302[] = {
+ NSPAIR(_ZN7ee57302C1Ev),
+ NSPAIR(_ZN7ee57302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd7302;
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static Base_Class bases_ee57302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7302, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57302[];
+extern void _ZN7ee573023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee573023barEv,_ZTv0_n20_N7ee573023barEv)();
+extern void ABISELECT(_ZThn16_N7ee573023barEv,_ZThn8_N7ee573023barEv)() __attribute__((weak));
+extern void _ZN6dd73023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee573023barEv,_ZTv0_n16_N7ee573023barEv)();
+extern void ABISELECT(_ZThn48_N7ee573023barEv,_ZThn24_N7ee573023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57302[0]),
+ (VTBL_ENTRY)&_ZN7ee573023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee573023barEv,_ZTv0_n20_N7ee573023barEv),
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee573023barEv,_ZTv0_n16_N7ee573023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7302__7ee57302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302__7ee57302[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7302__7ee57302[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee57302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee57302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee57302[] = {
+ {&(_ZTV7ee57302[5]), 5,25},
+ {&(_ZTV7ee57302[12]), 12,25},
+ {&(_ZTV7ee57302[18]), 18,25},
+ {&(_ZTV7ee57302[23]), 23,25},
+ {&(_tg__ZTV6dd7302__7ee57302[4]), 4,6},
+ {&(_tg__ZTV5cc302__6dd7302__7ee57302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7302__7ee57302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee57302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee57302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57302[];
+extern VTBL_ENTRY _ZTV7ee57302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57302[];
+static VTBL_ENTRY alt_thunk_names918[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee573023barEv,_ZTv0_n16_N7ee573023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee573023barEv,_ZThn24_N7ee573023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee573023barEv,_ZTv0_n20_N7ee573023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573023barEv,_ZThn8_N7ee573023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57302 = { "ee57302", // class name
+ bases_ee57302, 4,
+ &(vtc_ee57302[0]), // expected_vtbl_contents
+ &(vtt_ee57302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57302),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names918,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67302 : dd7302 {
+ int e;
+ virtual void foo(); // _ZN7ee673023fooEv
+ virtual void bar(); // _ZN7ee673023barEv
+ ~ee67302(); // tgen
+ ee67302(); // tgen
+};
+//SIG(1 ee67302) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67302 ::foo(){vfunc_called(this, "_ZN7ee673023fooEv");}
+void ee67302 ::bar(){vfunc_called(this, "_ZN7ee673023barEv");}
+ee67302 ::~ee67302(){ note_dtor("ee67302", this);} // tgen
+ee67302 ::ee67302(){ note_ctor("ee67302", this);} // tgen
+
+static void Test_ee67302()
+{
+ extern Class_Descriptor cd_ee67302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67302, buf);
+ ee67302 *dp, &lv = *(dp=new (buf) ee67302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee67302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(32,20), "ee67302");
+ check_base_class_offset(lv, (cc302*)(dd7302*), ABISELECT(16,12), "ee67302");
+ check_base_class_offset(lv, (dd7302*), 0, "ee67302");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67302.e");
+ test_class_info(&lv, &cd_ee67302);
+ dp->~ee67302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67302(Test_ee67302, "ee67302", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67302C1Ev();
+extern void _ZN7ee67302D1Ev();
+Name_Map name_map_ee67302[] = {
+ NSPAIR(_ZN7ee67302C1Ev),
+ NSPAIR(_ZN7ee67302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd7302;
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static Base_Class bases_ee67302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7302, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67302[];
+extern void _ZN7ee673023barEv();
+extern void _ZN7ee673023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee673023fooEv,_ZTv0_n16_N7ee673023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673023fooEv,_ZThn12_N7ee673023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673023fooEv,_ZTv0_n12_N7ee673023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee673023fooEv,_ZThn20_N7ee673023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673023barEv,_ZTv0_n16_N7ee673023barEv)();
+extern void ABISELECT(_ZThn32_N7ee673023barEv,_ZThn20_N7ee673023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67302[0]),
+ (VTBL_ENTRY)&_ZN7ee673023barEv,
+ (VTBL_ENTRY)&_ZN7ee673023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673023fooEv,_ZTv0_n16_N7ee673023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673023fooEv,_ZTv0_n12_N7ee673023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673023barEv,_ZTv0_n16_N7ee673023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7302__7ee67302[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302__7ee67302[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7302__7ee67302[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee67302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee67302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee67302[] = {
+ {&(_ZTV7ee67302[4]), 4,17},
+ {&(_tg__ZTV6dd7302__7ee67302[4]), 4,6},
+ {&(_tg__ZTV5cc302__6dd7302__7ee67302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7302__7ee67302[4]), 4,6},
+ {&(_ZTV7ee67302[10]), 10,17},
+ {&(_ZTV7ee67302[15]), 15,17},
+ {&(_tg__ZTV5cc302__7ee67302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee67302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67302[];
+extern VTBL_ENTRY _ZTV7ee67302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67302[];
+static VTBL_ENTRY alt_thunk_names919[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn20_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn20_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn12_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673023barEv,_ZTv0_n16_N7ee673023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673023barEv,_ZThn20_N7ee673023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673023fooEv,_ZTv0_n12_N7ee673023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673023fooEv,_ZThn20_N7ee673023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673023fooEv,_ZTv0_n16_N7ee673023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673023fooEv,_ZThn12_N7ee673023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67302 = { "ee67302", // class name
+ bases_ee67302, 4,
+ &(vtc_ee67302[0]), // expected_vtbl_contents
+ &(vtt_ee67302[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67302),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67302),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67302),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names919,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77302 : virtual dd7302 {
+ int e;
+ virtual void foo(); // _ZN7ee773023fooEv
+ virtual void bar(); // _ZN7ee773023barEv
+ ~ee77302(); // tgen
+ ee77302(); // tgen
+};
+//SIG(1 ee77302) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77302 ::foo(){vfunc_called(this, "_ZN7ee773023fooEv");}
+void ee77302 ::bar(){vfunc_called(this, "_ZN7ee773023barEv");}
+ee77302 ::~ee77302(){ note_dtor("ee77302", this);} // tgen
+ee77302 ::ee77302(){ note_ctor("ee77302", this);} // tgen
+
+static void Test_ee77302()
+{
+ extern Class_Descriptor cd_ee77302;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77302, buf);
+ ee77302 *dp, &lv = *(dp=new (buf) ee77302());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77302)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77302)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee77302");
+ check_base_class_offset(lv, (bb02*)(cc302*), ABISELECT(48,24), "ee77302");
+ check_base_class_offset(lv, (cc302*)(dd7302*), ABISELECT(32,16), "ee77302");
+ check_base_class_offset(lv, (dd7302*), ABISELECT(16,8), "ee77302");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77302.e");
+ test_class_info(&lv, &cd_ee77302);
+ dp->~ee77302();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77302(Test_ee77302, "ee77302", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77302C1Ev();
+extern void _ZN7ee77302D1Ev();
+Name_Map name_map_ee77302[] = {
+ NSPAIR(_ZN7ee77302C1Ev),
+ NSPAIR(_ZN7ee77302D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc302;
+extern VTBL_ENTRY _ZTI5cc302[];
+extern VTBL_ENTRY _ZTV5cc302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc302[];
+extern Class_Descriptor cd_dd7302;
+extern VTBL_ENTRY _ZTI6dd7302[];
+extern VTBL_ENTRY _ZTV6dd7302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7302[];
+static Base_Class bases_ee77302[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc302, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7302, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77302[];
+extern void _ZN7ee773023fooEv();
+extern void _ZN7ee773023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee773023barEv,_ZTv0_n20_N7ee773023barEv)();
+extern void ABISELECT(_ZThn16_N7ee773023barEv,_ZThn8_N7ee773023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee773023fooEv,_ZTv0_n24_N7ee773023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773023fooEv,_ZThn8_N7ee773023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773023fooEv,_ZTv0_n16_N7ee773023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773023fooEv,_ZThn16_N7ee773023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773023fooEv,_ZTv0_n12_N7ee773023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee773023fooEv,_ZThn24_N7ee773023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773023barEv,_ZTv0_n16_N7ee773023barEv)();
+extern void ABISELECT(_ZThn48_N7ee773023barEv,_ZThn24_N7ee773023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77302[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77302[0]),
+ (VTBL_ENTRY)&_ZN7ee773023fooEv,
+ (VTBL_ENTRY)&_ZN7ee773023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773023barEv,_ZTv0_n20_N7ee773023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773023fooEv,_ZTv0_n24_N7ee773023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773023fooEv,_ZTv0_n16_N7ee773023fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773023fooEv,_ZTv0_n12_N7ee773023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773023barEv,_ZTv0_n16_N7ee773023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77302[];
+extern void _ZN6dd73023barEv();
+extern void _ZN6dd73023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7302__7ee77302[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&_ZN6dd73023barEv,
+ (VTBL_ENTRY)&_ZN6dd73023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc302__6dd7302__7ee77302[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv)();
+extern void ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7302__7ee77302[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv),
+};
+extern void _ZN5cc3023fooEv();
+static VTBL_ENTRY _tg__ZTV5cc302__7ee77302[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&_ZN5cc3023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv)() __attribute__((weak));
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc302__7ee77302[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc302[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv),
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+static VTT_ENTRY vtt_ee77302[] = {
+ {&(_ZTV7ee77302[5]), 5,26},
+ {&(_ZTV7ee77302[13]), 13,26},
+ {&(_ZTV7ee77302[19]), 19,26},
+ {&(_ZTV7ee77302[24]), 24,26},
+ {&(_tg__ZTV6dd7302__7ee77302[4]), 4,6},
+ {&(_tg__ZTV5cc302__6dd7302__7ee77302[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7302__7ee77302[4]), 4,6},
+ {&(_tg__ZTV5cc302__7ee77302[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc302__7ee77302[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77302[];
+extern VTBL_ENTRY _ZTV7ee77302[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77302[];
+static VTBL_ENTRY alt_thunk_names920[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3023fooEv,_ZTv0_n12_N5cc3023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc3023fooEv,_ZThn8_N5cc3023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023barEv,_ZTv0_n16_N6dd73023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023barEv,_ZThn16_N6dd73023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73023fooEv,_ZTv0_n12_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73023fooEv,_ZThn16_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73023fooEv,_ZTv0_n16_N6dd73023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73023fooEv,_ZThn8_N6dd73023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773023barEv,_ZTv0_n16_N7ee773023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773023barEv,_ZThn24_N7ee773023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773023fooEv,_ZTv0_n12_N7ee773023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773023fooEv,_ZThn24_N7ee773023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773023fooEv,_ZTv0_n16_N7ee773023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773023fooEv,_ZThn16_N7ee773023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773023fooEv,_ZTv0_n24_N7ee773023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773023fooEv,_ZThn8_N7ee773023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773023barEv,_ZTv0_n20_N7ee773023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773023barEv,_ZThn8_N7ee773023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77302 = { "ee77302", // class name
+ bases_ee77302, 4,
+ &(vtc_ee77302[0]), // expected_vtbl_contents
+ &(vtt_ee77302[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77302),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77302),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77302),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names920,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc402 : bb02 {
+ int c;
+ virtual void bar(); // _ZN5cc4023barEv
+ ~cc402(); // tgen
+ cc402(); // tgen
+};
+//SIG(-1 cc402) C1{ BC2{ BC3{ v2 v1 Fi} Fi} v1 Fi}
+
+
+void cc402 ::bar(){vfunc_called(this, "_ZN5cc4023barEv");}
+cc402 ::~cc402(){ note_dtor("cc402", this);} // tgen
+cc402 ::cc402(){ note_ctor("cc402", this);} // tgen
+
+static void Test_cc402()
+{
+ extern Class_Descriptor cd_cc402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc402, buf);
+ cc402 *dp, &lv = *(dp=new (buf) cc402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc402)");
+ check_base_class_offset(lv, (aa2*)(bb02*), 0, "cc402");
+ check_base_class_offset(lv, (bb02*), 0, "cc402");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc402.c");
+ test_class_info(&lv, &cd_cc402);
+ dp->~cc402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc402(Test_cc402, "cc402", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc402C1Ev();
+extern void _ZN5cc402D1Ev();
+Name_Map name_map_cc402[] = {
+ NSPAIR(_ZN5cc402C1Ev),
+ NSPAIR(_ZN5cc402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+static Base_Class bases_cc402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_cc402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+Class_Descriptor cd_cc402 = { "cc402", // class name
+ bases_cc402, 2,
+ &(vtc_cc402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0402 : cc402 {
+ int d;
+ ~dd0402(); // tgen
+ dd0402(); // tgen
+};
+//SIG(-1 dd0402) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+dd0402 ::~dd0402(){ note_dtor("dd0402", this);} // tgen
+dd0402 ::dd0402(){ note_ctor("dd0402", this);} // tgen
+
+static void Test_dd0402()
+{
+ extern Class_Descriptor cd_dd0402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0402, buf);
+ dd0402 *dp, &lv = *(dp=new (buf) dd0402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), 0, "dd0402");
+ check_base_class_offset(lv, (bb02*)(cc402*), 0, "dd0402");
+ check_base_class_offset(lv, (cc402*), 0, "dd0402");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0402.d");
+ test_class_info(&lv, &cd_dd0402);
+ dp->~dd0402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0402(Test_dd0402, "dd0402", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0402C1Ev();
+extern void _ZN6dd0402D1Ev();
+Name_Map name_map_dd0402[] = {
+ NSPAIR(_ZN6dd0402C1Ev),
+ NSPAIR(_ZN6dd0402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+static Base_Class bases_dd0402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_dd0402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+Class_Descriptor cd_dd0402 = { "dd0402", // class name
+ bases_dd0402, 3,
+ &(vtc_dd0402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00402 : dd0402 {
+ int e;
+ ~ee00402(); // tgen
+ ee00402(); // tgen
+};
+//SIG(1 ee00402) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00402 ::~ee00402(){ note_dtor("ee00402", this);} // tgen
+ee00402 ::ee00402(){ note_ctor("ee00402", this);} // tgen
+
+static void Test_ee00402()
+{
+ extern Class_Descriptor cd_ee00402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00402, buf);
+ ee00402 *dp, &lv = *(dp=new (buf) ee00402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd0402*), 0, "ee00402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd0402*), 0, "ee00402");
+ check_base_class_offset(lv, (cc402*)(dd0402*), 0, "ee00402");
+ check_base_class_offset(lv, (dd0402*), 0, "ee00402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00402.e");
+ test_class_info(&lv, &cd_ee00402);
+ dp->~ee00402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00402(Test_ee00402, "ee00402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00402C1Ev();
+extern void _ZN7ee00402D1Ev();
+Name_Map name_map_ee00402[] = {
+ NSPAIR(_ZN7ee00402C1Ev),
+ NSPAIR(_ZN7ee00402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd0402;
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+static Base_Class bases_ee00402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee00402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00402[];
+extern VTBL_ENTRY _ZTV7ee00402[];
+Class_Descriptor cd_ee00402 = { "ee00402", // class name
+ bases_ee00402, 4,
+ &(vtc_ee00402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10402 : virtual dd0402 {
+ int e;
+ ~ee10402(); // tgen
+ ee10402(); // tgen
+};
+//SIG(1 ee10402) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10402 ::~ee10402(){ note_dtor("ee10402", this);} // tgen
+ee10402 ::ee10402(){ note_ctor("ee10402", this);} // tgen
+
+static void Test_ee10402()
+{
+ extern Class_Descriptor cd_ee10402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10402, buf);
+ ee10402 *dp, &lv = *(dp=new (buf) ee10402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd0402*), ABISELECT(16,8), "ee10402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd0402*), ABISELECT(16,8), "ee10402");
+ check_base_class_offset(lv, (cc402*)(dd0402*), ABISELECT(16,8), "ee10402");
+ check_base_class_offset(lv, (dd0402*), ABISELECT(16,8), "ee10402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10402.e");
+ test_class_info(&lv, &cd_ee10402);
+ dp->~ee10402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10402(Test_ee10402, "ee10402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10402C1Ev();
+extern void _ZN7ee10402D1Ev();
+Name_Map name_map_ee10402[] = {
+ NSPAIR(_ZN7ee10402C1Ev),
+ NSPAIR(_ZN7ee10402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd0402;
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+static Base_Class bases_ee10402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee10402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10402[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10402[];
+static VTT_ENTRY vtt_ee10402[] = {
+ {&(_ZTV7ee10402[3]), 3,9},
+ {&(_ZTV7ee10402[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10402[];
+extern VTBL_ENTRY _ZTV7ee10402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10402[];
+Class_Descriptor cd_ee10402 = { "ee10402", // class name
+ bases_ee10402, 4,
+ &(vtc_ee10402[0]), // expected_vtbl_contents
+ &(vtt_ee10402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10402),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20402 : dd0402 {
+ int e;
+ virtual void foo(); // _ZN7ee204023fooEv
+ ~ee20402(); // tgen
+ ee20402(); // tgen
+};
+//SIG(1 ee20402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20402 ::foo(){vfunc_called(this, "_ZN7ee204023fooEv");}
+ee20402 ::~ee20402(){ note_dtor("ee20402", this);} // tgen
+ee20402 ::ee20402(){ note_ctor("ee20402", this);} // tgen
+
+static void Test_ee20402()
+{
+ extern Class_Descriptor cd_ee20402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20402, buf);
+ ee20402 *dp, &lv = *(dp=new (buf) ee20402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd0402*), 0, "ee20402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd0402*), 0, "ee20402");
+ check_base_class_offset(lv, (cc402*)(dd0402*), 0, "ee20402");
+ check_base_class_offset(lv, (dd0402*), 0, "ee20402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20402.e");
+ test_class_info(&lv, &cd_ee20402);
+ dp->~ee20402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20402(Test_ee20402, "ee20402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20402C1Ev();
+extern void _ZN7ee20402D1Ev();
+Name_Map name_map_ee20402[] = {
+ NSPAIR(_ZN7ee20402C1Ev),
+ NSPAIR(_ZN7ee20402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd0402;
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+static Base_Class bases_ee20402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20402[];
+extern void _ZN7ee204023fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee20402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20402[0]),
+ (VTBL_ENTRY)&_ZN7ee204023fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20402[];
+extern VTBL_ENTRY _ZTV7ee20402[];
+Class_Descriptor cd_ee20402 = { "ee20402", // class name
+ bases_ee20402, 4,
+ &(vtc_ee20402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30402 : virtual dd0402 {
+ int e;
+ virtual void foo(); // _ZN7ee304023fooEv
+ ~ee30402(); // tgen
+ ee30402(); // tgen
+};
+//SIG(1 ee30402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30402 ::foo(){vfunc_called(this, "_ZN7ee304023fooEv");}
+ee30402 ::~ee30402(){ note_dtor("ee30402", this);} // tgen
+ee30402 ::ee30402(){ note_ctor("ee30402", this);} // tgen
+
+static void Test_ee30402()
+{
+ extern Class_Descriptor cd_ee30402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30402, buf);
+ ee30402 *dp, &lv = *(dp=new (buf) ee30402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd0402*), ABISELECT(16,8), "ee30402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd0402*), ABISELECT(16,8), "ee30402");
+ check_base_class_offset(lv, (cc402*)(dd0402*), ABISELECT(16,8), "ee30402");
+ check_base_class_offset(lv, (dd0402*), ABISELECT(16,8), "ee30402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30402.e");
+ test_class_info(&lv, &cd_ee30402);
+ dp->~ee30402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30402(Test_ee30402, "ee30402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30402C1Ev();
+extern void _ZN7ee30402D1Ev();
+Name_Map name_map_ee30402[] = {
+ NSPAIR(_ZN7ee30402C1Ev),
+ NSPAIR(_ZN7ee30402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd0402;
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+static Base_Class bases_ee30402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30402[];
+extern void _ZN7ee304023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304023fooEv,_ZTv0_n12_N7ee304023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee304023fooEv,_ZThn8_N7ee304023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee30402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30402[0]),
+ (VTBL_ENTRY)&_ZN7ee304023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304023fooEv,_ZTv0_n12_N7ee304023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30402[];
+static VTT_ENTRY vtt_ee30402[] = {
+ {&(_ZTV7ee30402[3]), 3,10},
+ {&(_ZTV7ee30402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30402[];
+extern VTBL_ENTRY _ZTV7ee30402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30402[];
+static VTBL_ENTRY alt_thunk_names921[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304023fooEv,_ZTv0_n12_N7ee304023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee304023fooEv,_ZThn8_N7ee304023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30402 = { "ee30402", // class name
+ bases_ee30402, 4,
+ &(vtc_ee30402[0]), // expected_vtbl_contents
+ &(vtt_ee30402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names921,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40402 : dd0402 {
+ int e;
+ virtual void bar(); // _ZN7ee404023barEv
+ ~ee40402(); // tgen
+ ee40402(); // tgen
+};
+//SIG(1 ee40402) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40402 ::bar(){vfunc_called(this, "_ZN7ee404023barEv");}
+ee40402 ::~ee40402(){ note_dtor("ee40402", this);} // tgen
+ee40402 ::ee40402(){ note_ctor("ee40402", this);} // tgen
+
+static void Test_ee40402()
+{
+ extern Class_Descriptor cd_ee40402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40402, buf);
+ ee40402 *dp, &lv = *(dp=new (buf) ee40402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd0402*), 0, "ee40402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd0402*), 0, "ee40402");
+ check_base_class_offset(lv, (cc402*)(dd0402*), 0, "ee40402");
+ check_base_class_offset(lv, (dd0402*), 0, "ee40402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40402.e");
+ test_class_info(&lv, &cd_ee40402);
+ dp->~ee40402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40402(Test_ee40402, "ee40402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40402C1Ev();
+extern void _ZN7ee40402D1Ev();
+Name_Map name_map_ee40402[] = {
+ NSPAIR(_ZN7ee40402C1Ev),
+ NSPAIR(_ZN7ee40402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd0402;
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+static Base_Class bases_ee40402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN7ee404023barEv();
+static VTBL_ENTRY vtc_ee40402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN7ee404023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40402[];
+extern VTBL_ENTRY _ZTV7ee40402[];
+Class_Descriptor cd_ee40402 = { "ee40402", // class name
+ bases_ee40402, 4,
+ &(vtc_ee40402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50402 : virtual dd0402 {
+ int e;
+ virtual void bar(); // _ZN7ee504023barEv
+ ~ee50402(); // tgen
+ ee50402(); // tgen
+};
+//SIG(1 ee50402) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50402 ::bar(){vfunc_called(this, "_ZN7ee504023barEv");}
+ee50402 ::~ee50402(){ note_dtor("ee50402", this);} // tgen
+ee50402 ::ee50402(){ note_ctor("ee50402", this);} // tgen
+
+static void Test_ee50402()
+{
+ extern Class_Descriptor cd_ee50402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50402, buf);
+ ee50402 *dp, &lv = *(dp=new (buf) ee50402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd0402*), ABISELECT(16,8), "ee50402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd0402*), ABISELECT(16,8), "ee50402");
+ check_base_class_offset(lv, (cc402*)(dd0402*), ABISELECT(16,8), "ee50402");
+ check_base_class_offset(lv, (dd0402*), ABISELECT(16,8), "ee50402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50402.e");
+ test_class_info(&lv, &cd_ee50402);
+ dp->~ee50402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50402(Test_ee50402, "ee50402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50402C1Ev();
+extern void _ZN7ee50402D1Ev();
+Name_Map name_map_ee50402[] = {
+ NSPAIR(_ZN7ee50402C1Ev),
+ NSPAIR(_ZN7ee50402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd0402;
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+static Base_Class bases_ee50402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50402[];
+extern void _ZN7ee504023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504023barEv,_ZTv0_n16_N7ee504023barEv)();
+extern void ABISELECT(_ZThn16_N7ee504023barEv,_ZThn8_N7ee504023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50402[0]),
+ (VTBL_ENTRY)&_ZN7ee504023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504023barEv,_ZTv0_n16_N7ee504023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50402[];
+static VTT_ENTRY vtt_ee50402[] = {
+ {&(_ZTV7ee50402[3]), 3,10},
+ {&(_ZTV7ee50402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50402[];
+extern VTBL_ENTRY _ZTV7ee50402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50402[];
+static VTBL_ENTRY alt_thunk_names922[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504023barEv,_ZTv0_n16_N7ee504023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504023barEv,_ZThn8_N7ee504023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50402 = { "ee50402", // class name
+ bases_ee50402, 4,
+ &(vtc_ee50402[0]), // expected_vtbl_contents
+ &(vtt_ee50402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names922,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60402 : dd0402 {
+ int e;
+ virtual void foo(); // _ZN7ee604023fooEv
+ virtual void bar(); // _ZN7ee604023barEv
+ ~ee60402(); // tgen
+ ee60402(); // tgen
+};
+//SIG(1 ee60402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60402 ::foo(){vfunc_called(this, "_ZN7ee604023fooEv");}
+void ee60402 ::bar(){vfunc_called(this, "_ZN7ee604023barEv");}
+ee60402 ::~ee60402(){ note_dtor("ee60402", this);} // tgen
+ee60402 ::ee60402(){ note_ctor("ee60402", this);} // tgen
+
+static void Test_ee60402()
+{
+ extern Class_Descriptor cd_ee60402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60402, buf);
+ ee60402 *dp, &lv = *(dp=new (buf) ee60402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd0402*), 0, "ee60402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd0402*), 0, "ee60402");
+ check_base_class_offset(lv, (cc402*)(dd0402*), 0, "ee60402");
+ check_base_class_offset(lv, (dd0402*), 0, "ee60402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60402.e");
+ test_class_info(&lv, &cd_ee60402);
+ dp->~ee60402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60402(Test_ee60402, "ee60402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60402C1Ev();
+extern void _ZN7ee60402D1Ev();
+Name_Map name_map_ee60402[] = {
+ NSPAIR(_ZN7ee60402C1Ev),
+ NSPAIR(_ZN7ee60402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd0402;
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+static Base_Class bases_ee60402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60402[];
+extern void _ZN7ee604023fooEv();
+extern void _ZN7ee604023barEv();
+static VTBL_ENTRY vtc_ee60402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60402[0]),
+ (VTBL_ENTRY)&_ZN7ee604023fooEv,
+ (VTBL_ENTRY)&_ZN7ee604023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60402[];
+extern VTBL_ENTRY _ZTV7ee60402[];
+Class_Descriptor cd_ee60402 = { "ee60402", // class name
+ bases_ee60402, 4,
+ &(vtc_ee60402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70402 : virtual dd0402 {
+ int e;
+ virtual void foo(); // _ZN7ee704023fooEv
+ virtual void bar(); // _ZN7ee704023barEv
+ ~ee70402(); // tgen
+ ee70402(); // tgen
+};
+//SIG(1 ee70402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70402 ::foo(){vfunc_called(this, "_ZN7ee704023fooEv");}
+void ee70402 ::bar(){vfunc_called(this, "_ZN7ee704023barEv");}
+ee70402 ::~ee70402(){ note_dtor("ee70402", this);} // tgen
+ee70402 ::ee70402(){ note_ctor("ee70402", this);} // tgen
+
+static void Test_ee70402()
+{
+ extern Class_Descriptor cd_ee70402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70402, buf);
+ ee70402 *dp, &lv = *(dp=new (buf) ee70402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd0402*), ABISELECT(16,8), "ee70402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd0402*), ABISELECT(16,8), "ee70402");
+ check_base_class_offset(lv, (cc402*)(dd0402*), ABISELECT(16,8), "ee70402");
+ check_base_class_offset(lv, (dd0402*), ABISELECT(16,8), "ee70402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70402.e");
+ test_class_info(&lv, &cd_ee70402);
+ dp->~ee70402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70402(Test_ee70402, "ee70402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70402C1Ev();
+extern void _ZN7ee70402D1Ev();
+Name_Map name_map_ee70402[] = {
+ NSPAIR(_ZN7ee70402C1Ev),
+ NSPAIR(_ZN7ee70402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd0402;
+extern VTBL_ENTRY _ZTI6dd0402[];
+extern VTBL_ENTRY _ZTV6dd0402[];
+static Base_Class bases_ee70402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70402[];
+extern void _ZN7ee704023fooEv();
+extern void _ZN7ee704023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee704023fooEv,_ZTv0_n12_N7ee704023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee704023fooEv,_ZThn8_N7ee704023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704023barEv,_ZTv0_n16_N7ee704023barEv)();
+extern void ABISELECT(_ZThn16_N7ee704023barEv,_ZThn8_N7ee704023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70402[0]),
+ (VTBL_ENTRY)&_ZN7ee704023fooEv,
+ (VTBL_ENTRY)&_ZN7ee704023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704023fooEv,_ZTv0_n12_N7ee704023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704023barEv,_ZTv0_n16_N7ee704023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70402[];
+static VTT_ENTRY vtt_ee70402[] = {
+ {&(_ZTV7ee70402[3]), 3,11},
+ {&(_ZTV7ee70402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70402[];
+extern VTBL_ENTRY _ZTV7ee70402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70402[];
+static VTBL_ENTRY alt_thunk_names923[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704023barEv,_ZTv0_n16_N7ee704023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704023barEv,_ZThn8_N7ee704023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704023fooEv,_ZTv0_n12_N7ee704023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704023fooEv,_ZThn8_N7ee704023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70402 = { "ee70402", // class name
+ bases_ee70402, 4,
+ &(vtc_ee70402[0]), // expected_vtbl_contents
+ &(vtt_ee70402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names923,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1402 : virtual cc402 {
+ int d;
+ ~dd1402(); // tgen
+ dd1402(); // tgen
+};
+//SIG(-1 dd1402) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+dd1402 ::~dd1402(){ note_dtor("dd1402", this);} // tgen
+dd1402 ::dd1402(){ note_ctor("dd1402", this);} // tgen
+
+static void Test_dd1402()
+{
+ extern Class_Descriptor cd_dd1402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1402, buf);
+ dd1402 *dp, &lv = *(dp=new (buf) dd1402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,8), "dd1402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,8), "dd1402");
+ check_base_class_offset(lv, (cc402*), ABISELECT(16,8), "dd1402");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1402.d");
+ test_class_info(&lv, &cd_dd1402);
+ dp->~dd1402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1402(Test_dd1402, "dd1402", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1402C1Ev();
+extern void _ZN6dd1402D1Ev();
+Name_Map name_map_dd1402[] = {
+ NSPAIR(_ZN6dd1402C1Ev),
+ NSPAIR(_ZN6dd1402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+static Base_Class bases_dd1402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_dd1402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1402[];
+static VTT_ENTRY vtt_dd1402[] = {
+ {&(_ZTV6dd1402[3]), 3,9},
+ {&(_ZTV6dd1402[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+Class_Descriptor cd_dd1402 = { "dd1402", // class name
+ bases_dd1402, 3,
+ &(vtc_dd1402[0]), // expected_vtbl_contents
+ &(vtt_dd1402[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1402),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1402),2, //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 ee01402 : dd1402 {
+ int e;
+ ~ee01402(); // tgen
+ ee01402(); // tgen
+};
+//SIG(1 ee01402) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01402 ::~ee01402(){ note_dtor("ee01402", this);} // tgen
+ee01402 ::ee01402(){ note_ctor("ee01402", this);} // tgen
+
+static void Test_ee01402()
+{
+ extern Class_Descriptor cd_ee01402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01402, buf);
+ ee01402 *dp, &lv = *(dp=new (buf) ee01402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee01402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee01402");
+ check_base_class_offset(lv, (cc402*)(dd1402*), ABISELECT(16,12), "ee01402");
+ check_base_class_offset(lv, (dd1402*), 0, "ee01402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01402.e");
+ test_class_info(&lv, &cd_ee01402);
+ dp->~ee01402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01402(Test_ee01402, "ee01402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01402C1Ev();
+extern void _ZN7ee01402D1Ev();
+Name_Map name_map_ee01402[] = {
+ NSPAIR(_ZN7ee01402C1Ev),
+ NSPAIR(_ZN7ee01402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd1402;
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+static Base_Class bases_ee01402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee01402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01402[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01402[];
+static VTBL_ENTRY _tg__ZTV6dd1402__7ee01402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd1402__7ee01402[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee01402[] = {
+ {&(_ZTV7ee01402[3]), 3,9},
+ {&(_tg__ZTV6dd1402__7ee01402[3]), 3,3},
+ {&(_tg__ZTV5cc402__6dd1402__7ee01402[4]), 4,6},
+ {&(_ZTV7ee01402[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01402[];
+extern VTBL_ENTRY _ZTV7ee01402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01402[];
+Class_Descriptor cd_ee01402 = { "ee01402", // class name
+ bases_ee01402, 4,
+ &(vtc_ee01402[0]), // expected_vtbl_contents
+ &(vtt_ee01402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01402),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11402 : virtual dd1402 {
+ int e;
+ ~ee11402(); // tgen
+ ee11402(); // tgen
+};
+//SIG(1 ee11402) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11402 ::~ee11402(){ note_dtor("ee11402", this);} // tgen
+ee11402 ::ee11402(){ note_ctor("ee11402", this);} // tgen
+
+static void Test_ee11402()
+{
+ extern Class_Descriptor cd_ee11402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11402, buf);
+ ee11402 *dp, &lv = *(dp=new (buf) ee11402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee11402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee11402");
+ check_base_class_offset(lv, (cc402*)(dd1402*), ABISELECT(32,16), "ee11402");
+ check_base_class_offset(lv, (dd1402*), ABISELECT(16,8), "ee11402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11402.e");
+ test_class_info(&lv, &cd_ee11402);
+ dp->~ee11402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11402(Test_ee11402, "ee11402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11402C1Ev();
+extern void _ZN7ee11402D1Ev();
+Name_Map name_map_ee11402[] = {
+ NSPAIR(_ZN7ee11402C1Ev),
+ NSPAIR(_ZN7ee11402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd1402;
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+static Base_Class bases_ee11402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee11402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11402[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11402[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11402[];
+static VTBL_ENTRY _tg__ZTV6dd1402__7ee11402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd1402__7ee11402[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee11402[] = {
+ {&(_ZTV7ee11402[4]), 4,13},
+ {&(_ZTV7ee11402[7]), 7,13},
+ {&(_ZTV7ee11402[11]), 11,13},
+ {&(_tg__ZTV6dd1402__7ee11402[3]), 3,3},
+ {&(_tg__ZTV5cc402__6dd1402__7ee11402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11402[];
+extern VTBL_ENTRY _ZTV7ee11402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11402[];
+Class_Descriptor cd_ee11402 = { "ee11402", // class name
+ bases_ee11402, 4,
+ &(vtc_ee11402[0]), // expected_vtbl_contents
+ &(vtt_ee11402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11402),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21402 : dd1402 {
+ int e;
+ virtual void foo(); // _ZN7ee214023fooEv
+ ~ee21402(); // tgen
+ ee21402(); // tgen
+};
+//SIG(1 ee21402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21402 ::foo(){vfunc_called(this, "_ZN7ee214023fooEv");}
+ee21402 ::~ee21402(){ note_dtor("ee21402", this);} // tgen
+ee21402 ::ee21402(){ note_ctor("ee21402", this);} // tgen
+
+static void Test_ee21402()
+{
+ extern Class_Descriptor cd_ee21402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21402, buf);
+ ee21402 *dp, &lv = *(dp=new (buf) ee21402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee21402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee21402");
+ check_base_class_offset(lv, (cc402*)(dd1402*), ABISELECT(16,12), "ee21402");
+ check_base_class_offset(lv, (dd1402*), 0, "ee21402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21402.e");
+ test_class_info(&lv, &cd_ee21402);
+ dp->~ee21402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21402(Test_ee21402, "ee21402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21402C1Ev();
+extern void _ZN7ee21402D1Ev();
+Name_Map name_map_ee21402[] = {
+ NSPAIR(_ZN7ee21402C1Ev),
+ NSPAIR(_ZN7ee21402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd1402;
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+static Base_Class bases_ee21402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21402[];
+extern void _ZN7ee214023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214023fooEv,_ZTv0_n12_N7ee214023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee214023fooEv,_ZThn12_N7ee214023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee21402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21402[0]),
+ (VTBL_ENTRY)&_ZN7ee214023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214023fooEv,_ZTv0_n12_N7ee214023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21402[];
+static VTBL_ENTRY _tg__ZTV6dd1402__7ee21402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd1402__7ee21402[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee21402[] = {
+ {&(_ZTV7ee21402[3]), 3,10},
+ {&(_tg__ZTV6dd1402__7ee21402[3]), 3,3},
+ {&(_tg__ZTV5cc402__6dd1402__7ee21402[4]), 4,6},
+ {&(_ZTV7ee21402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21402[];
+extern VTBL_ENTRY _ZTV7ee21402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21402[];
+static VTBL_ENTRY alt_thunk_names924[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214023fooEv,_ZTv0_n12_N7ee214023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee214023fooEv,_ZThn12_N7ee214023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21402 = { "ee21402", // class name
+ bases_ee21402, 4,
+ &(vtc_ee21402[0]), // expected_vtbl_contents
+ &(vtt_ee21402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names924,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31402 : virtual dd1402 {
+ int e;
+ virtual void foo(); // _ZN7ee314023fooEv
+ ~ee31402(); // tgen
+ ee31402(); // tgen
+};
+//SIG(1 ee31402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31402 ::foo(){vfunc_called(this, "_ZN7ee314023fooEv");}
+ee31402 ::~ee31402(){ note_dtor("ee31402", this);} // tgen
+ee31402 ::ee31402(){ note_ctor("ee31402", this);} // tgen
+
+static void Test_ee31402()
+{
+ extern Class_Descriptor cd_ee31402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31402, buf);
+ ee31402 *dp, &lv = *(dp=new (buf) ee31402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee31402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee31402");
+ check_base_class_offset(lv, (cc402*)(dd1402*), ABISELECT(32,16), "ee31402");
+ check_base_class_offset(lv, (dd1402*), ABISELECT(16,8), "ee31402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31402.e");
+ test_class_info(&lv, &cd_ee31402);
+ dp->~ee31402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31402(Test_ee31402, "ee31402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31402C1Ev();
+extern void _ZN7ee31402D1Ev();
+Name_Map name_map_ee31402[] = {
+ NSPAIR(_ZN7ee31402C1Ev),
+ NSPAIR(_ZN7ee31402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd1402;
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+static Base_Class bases_ee31402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31402[];
+extern void _ZN7ee314023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314023fooEv,_ZTv0_n12_N7ee314023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee314023fooEv,_ZThn16_N7ee314023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee31402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31402[0]),
+ (VTBL_ENTRY)&_ZN7ee314023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31402[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314023fooEv,_ZTv0_n12_N7ee314023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31402[];
+static VTBL_ENTRY _tg__ZTV6dd1402__7ee31402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd1402__7ee31402[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee31402[] = {
+ {&(_ZTV7ee31402[4]), 4,14},
+ {&(_ZTV7ee31402[8]), 8,14},
+ {&(_ZTV7ee31402[12]), 12,14},
+ {&(_tg__ZTV6dd1402__7ee31402[3]), 3,3},
+ {&(_tg__ZTV5cc402__6dd1402__7ee31402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31402[];
+extern VTBL_ENTRY _ZTV7ee31402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31402[];
+static VTBL_ENTRY alt_thunk_names925[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314023fooEv,_ZTv0_n12_N7ee314023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee314023fooEv,_ZThn16_N7ee314023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31402 = { "ee31402", // class name
+ bases_ee31402, 4,
+ &(vtc_ee31402[0]), // expected_vtbl_contents
+ &(vtt_ee31402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31402),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names925,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41402 : dd1402 {
+ int e;
+ virtual void bar(); // _ZN7ee414023barEv
+ ~ee41402(); // tgen
+ ee41402(); // tgen
+};
+//SIG(1 ee41402) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41402 ::bar(){vfunc_called(this, "_ZN7ee414023barEv");}
+ee41402 ::~ee41402(){ note_dtor("ee41402", this);} // tgen
+ee41402 ::ee41402(){ note_ctor("ee41402", this);} // tgen
+
+static void Test_ee41402()
+{
+ extern Class_Descriptor cd_ee41402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41402, buf);
+ ee41402 *dp, &lv = *(dp=new (buf) ee41402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee41402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee41402");
+ check_base_class_offset(lv, (cc402*)(dd1402*), ABISELECT(16,12), "ee41402");
+ check_base_class_offset(lv, (dd1402*), 0, "ee41402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41402.e");
+ test_class_info(&lv, &cd_ee41402);
+ dp->~ee41402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41402(Test_ee41402, "ee41402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41402C1Ev();
+extern void _ZN7ee41402D1Ev();
+Name_Map name_map_ee41402[] = {
+ NSPAIR(_ZN7ee41402C1Ev),
+ NSPAIR(_ZN7ee41402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd1402;
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+static Base_Class bases_ee41402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41402[];
+extern void _ZN7ee414023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414023barEv,_ZTv0_n16_N7ee414023barEv)();
+extern void ABISELECT(_ZThn16_N7ee414023barEv,_ZThn12_N7ee414023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41402[0]),
+ (VTBL_ENTRY)&_ZN7ee414023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414023barEv,_ZTv0_n16_N7ee414023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41402[];
+static VTBL_ENTRY _tg__ZTV6dd1402__7ee41402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd1402__7ee41402[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee41402[] = {
+ {&(_ZTV7ee41402[3]), 3,10},
+ {&(_tg__ZTV6dd1402__7ee41402[3]), 3,3},
+ {&(_tg__ZTV5cc402__6dd1402__7ee41402[4]), 4,6},
+ {&(_ZTV7ee41402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41402[];
+extern VTBL_ENTRY _ZTV7ee41402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41402[];
+static VTBL_ENTRY alt_thunk_names926[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414023barEv,_ZTv0_n16_N7ee414023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414023barEv,_ZThn12_N7ee414023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41402 = { "ee41402", // class name
+ bases_ee41402, 4,
+ &(vtc_ee41402[0]), // expected_vtbl_contents
+ &(vtt_ee41402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names926,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51402 : virtual dd1402 {
+ int e;
+ virtual void bar(); // _ZN7ee514023barEv
+ ~ee51402(); // tgen
+ ee51402(); // tgen
+};
+//SIG(1 ee51402) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51402 ::bar(){vfunc_called(this, "_ZN7ee514023barEv");}
+ee51402 ::~ee51402(){ note_dtor("ee51402", this);} // tgen
+ee51402 ::ee51402(){ note_ctor("ee51402", this);} // tgen
+
+static void Test_ee51402()
+{
+ extern Class_Descriptor cd_ee51402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51402, buf);
+ ee51402 *dp, &lv = *(dp=new (buf) ee51402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee51402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee51402");
+ check_base_class_offset(lv, (cc402*)(dd1402*), ABISELECT(32,16), "ee51402");
+ check_base_class_offset(lv, (dd1402*), ABISELECT(16,8), "ee51402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51402.e");
+ test_class_info(&lv, &cd_ee51402);
+ dp->~ee51402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51402(Test_ee51402, "ee51402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51402C1Ev();
+extern void _ZN7ee51402D1Ev();
+Name_Map name_map_ee51402[] = {
+ NSPAIR(_ZN7ee51402C1Ev),
+ NSPAIR(_ZN7ee51402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd1402;
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+static Base_Class bases_ee51402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51402[];
+extern void _ZN7ee514023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514023barEv,_ZTv0_n16_N7ee514023barEv)();
+extern void ABISELECT(_ZThn32_N7ee514023barEv,_ZThn16_N7ee514023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51402[0]),
+ (VTBL_ENTRY)&_ZN7ee514023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51402[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514023barEv,_ZTv0_n16_N7ee514023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51402[];
+static VTBL_ENTRY _tg__ZTV6dd1402__7ee51402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd1402__7ee51402[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee51402[] = {
+ {&(_ZTV7ee51402[4]), 4,14},
+ {&(_ZTV7ee51402[8]), 8,14},
+ {&(_ZTV7ee51402[12]), 12,14},
+ {&(_tg__ZTV6dd1402__7ee51402[3]), 3,3},
+ {&(_tg__ZTV5cc402__6dd1402__7ee51402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51402[];
+extern VTBL_ENTRY _ZTV7ee51402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51402[];
+static VTBL_ENTRY alt_thunk_names927[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514023barEv,_ZTv0_n16_N7ee514023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514023barEv,_ZThn16_N7ee514023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51402 = { "ee51402", // class name
+ bases_ee51402, 4,
+ &(vtc_ee51402[0]), // expected_vtbl_contents
+ &(vtt_ee51402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51402),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names927,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61402 : dd1402 {
+ int e;
+ virtual void foo(); // _ZN7ee614023fooEv
+ virtual void bar(); // _ZN7ee614023barEv
+ ~ee61402(); // tgen
+ ee61402(); // tgen
+};
+//SIG(1 ee61402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61402 ::foo(){vfunc_called(this, "_ZN7ee614023fooEv");}
+void ee61402 ::bar(){vfunc_called(this, "_ZN7ee614023barEv");}
+ee61402 ::~ee61402(){ note_dtor("ee61402", this);} // tgen
+ee61402 ::ee61402(){ note_ctor("ee61402", this);} // tgen
+
+static void Test_ee61402()
+{
+ extern Class_Descriptor cd_ee61402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61402, buf);
+ ee61402 *dp, &lv = *(dp=new (buf) ee61402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee61402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee61402");
+ check_base_class_offset(lv, (cc402*)(dd1402*), ABISELECT(16,12), "ee61402");
+ check_base_class_offset(lv, (dd1402*), 0, "ee61402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61402.e");
+ test_class_info(&lv, &cd_ee61402);
+ dp->~ee61402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61402(Test_ee61402, "ee61402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61402C1Ev();
+extern void _ZN7ee61402D1Ev();
+Name_Map name_map_ee61402[] = {
+ NSPAIR(_ZN7ee61402C1Ev),
+ NSPAIR(_ZN7ee61402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd1402;
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+static Base_Class bases_ee61402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61402[];
+extern void _ZN7ee614023fooEv();
+extern void _ZN7ee614023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee614023fooEv,_ZTv0_n12_N7ee614023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee614023fooEv,_ZThn12_N7ee614023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614023barEv,_ZTv0_n16_N7ee614023barEv)();
+extern void ABISELECT(_ZThn16_N7ee614023barEv,_ZThn12_N7ee614023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61402[0]),
+ (VTBL_ENTRY)&_ZN7ee614023fooEv,
+ (VTBL_ENTRY)&_ZN7ee614023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614023fooEv,_ZTv0_n12_N7ee614023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614023barEv,_ZTv0_n16_N7ee614023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61402[];
+static VTBL_ENTRY _tg__ZTV6dd1402__7ee61402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd1402__7ee61402[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee61402[] = {
+ {&(_ZTV7ee61402[3]), 3,11},
+ {&(_tg__ZTV6dd1402__7ee61402[3]), 3,3},
+ {&(_tg__ZTV5cc402__6dd1402__7ee61402[4]), 4,6},
+ {&(_ZTV7ee61402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61402[];
+extern VTBL_ENTRY _ZTV7ee61402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61402[];
+static VTBL_ENTRY alt_thunk_names928[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614023barEv,_ZTv0_n16_N7ee614023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614023barEv,_ZThn12_N7ee614023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614023fooEv,_ZTv0_n12_N7ee614023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614023fooEv,_ZThn12_N7ee614023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61402 = { "ee61402", // class name
+ bases_ee61402, 4,
+ &(vtc_ee61402[0]), // expected_vtbl_contents
+ &(vtt_ee61402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names928,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71402 : virtual dd1402 {
+ int e;
+ virtual void foo(); // _ZN7ee714023fooEv
+ virtual void bar(); // _ZN7ee714023barEv
+ ~ee71402(); // tgen
+ ee71402(); // tgen
+};
+//SIG(1 ee71402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71402 ::foo(){vfunc_called(this, "_ZN7ee714023fooEv");}
+void ee71402 ::bar(){vfunc_called(this, "_ZN7ee714023barEv");}
+ee71402 ::~ee71402(){ note_dtor("ee71402", this);} // tgen
+ee71402 ::ee71402(){ note_ctor("ee71402", this);} // tgen
+
+static void Test_ee71402()
+{
+ extern Class_Descriptor cd_ee71402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71402, buf);
+ ee71402 *dp, &lv = *(dp=new (buf) ee71402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee71402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee71402");
+ check_base_class_offset(lv, (cc402*)(dd1402*), ABISELECT(32,16), "ee71402");
+ check_base_class_offset(lv, (dd1402*), ABISELECT(16,8), "ee71402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71402.e");
+ test_class_info(&lv, &cd_ee71402);
+ dp->~ee71402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71402(Test_ee71402, "ee71402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71402C1Ev();
+extern void _ZN7ee71402D1Ev();
+Name_Map name_map_ee71402[] = {
+ NSPAIR(_ZN7ee71402C1Ev),
+ NSPAIR(_ZN7ee71402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd1402;
+extern VTBL_ENTRY _ZTI6dd1402[];
+extern VTBL_ENTRY _ZTV6dd1402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1402[];
+static Base_Class bases_ee71402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1402, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71402[];
+extern void _ZN7ee714023fooEv();
+extern void _ZN7ee714023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee714023fooEv,_ZTv0_n12_N7ee714023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee714023fooEv,_ZThn16_N7ee714023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714023barEv,_ZTv0_n16_N7ee714023barEv)();
+extern void ABISELECT(_ZThn32_N7ee714023barEv,_ZThn16_N7ee714023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71402[0]),
+ (VTBL_ENTRY)&_ZN7ee714023fooEv,
+ (VTBL_ENTRY)&_ZN7ee714023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71402[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714023fooEv,_ZTv0_n12_N7ee714023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714023barEv,_ZTv0_n16_N7ee714023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71402[];
+static VTBL_ENTRY _tg__ZTV6dd1402__7ee71402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+};
+extern void _ZN3aa23fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd1402__7ee71402[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee71402[] = {
+ {&(_ZTV7ee71402[4]), 4,15},
+ {&(_ZTV7ee71402[9]), 9,15},
+ {&(_ZTV7ee71402[13]), 13,15},
+ {&(_tg__ZTV6dd1402__7ee71402[3]), 3,3},
+ {&(_tg__ZTV5cc402__6dd1402__7ee71402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71402[];
+extern VTBL_ENTRY _ZTV7ee71402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71402[];
+static VTBL_ENTRY alt_thunk_names929[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714023barEv,_ZTv0_n16_N7ee714023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714023barEv,_ZThn16_N7ee714023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714023fooEv,_ZTv0_n12_N7ee714023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714023fooEv,_ZThn16_N7ee714023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71402 = { "ee71402", // class name
+ bases_ee71402, 4,
+ &(vtc_ee71402[0]), // expected_vtbl_contents
+ &(vtt_ee71402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71402),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names929,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2402 : cc402 {
+ int d;
+ virtual void foo(); // _ZN6dd24023fooEv
+ ~dd2402(); // tgen
+ dd2402(); // tgen
+};
+//SIG(-1 dd2402) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd2402 ::foo(){vfunc_called(this, "_ZN6dd24023fooEv");}
+dd2402 ::~dd2402(){ note_dtor("dd2402", this);} // tgen
+dd2402 ::dd2402(){ note_ctor("dd2402", this);} // tgen
+
+static void Test_dd2402()
+{
+ extern Class_Descriptor cd_dd2402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2402, buf);
+ dd2402 *dp, &lv = *(dp=new (buf) dd2402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), 0, "dd2402");
+ check_base_class_offset(lv, (bb02*)(cc402*), 0, "dd2402");
+ check_base_class_offset(lv, (cc402*), 0, "dd2402");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2402.d");
+ test_class_info(&lv, &cd_dd2402);
+ dp->~dd2402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2402(Test_dd2402, "dd2402", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2402C1Ev();
+extern void _ZN6dd2402D1Ev();
+Name_Map name_map_dd2402[] = {
+ NSPAIR(_ZN6dd2402C1Ev),
+ NSPAIR(_ZN6dd2402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+static Base_Class bases_dd2402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern void _ZN6dd24023fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_dd2402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2402[0]),
+ (VTBL_ENTRY)&_ZN6dd24023fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+Class_Descriptor cd_dd2402 = { "dd2402", // class name
+ bases_dd2402, 3,
+ &(vtc_dd2402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02402 : dd2402 {
+ int e;
+ ~ee02402(); // tgen
+ ee02402(); // tgen
+};
+//SIG(1 ee02402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02402 ::~ee02402(){ note_dtor("ee02402", this);} // tgen
+ee02402 ::ee02402(){ note_ctor("ee02402", this);} // tgen
+
+static void Test_ee02402()
+{
+ extern Class_Descriptor cd_ee02402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02402, buf);
+ ee02402 *dp, &lv = *(dp=new (buf) ee02402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd2402*), 0, "ee02402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd2402*), 0, "ee02402");
+ check_base_class_offset(lv, (cc402*)(dd2402*), 0, "ee02402");
+ check_base_class_offset(lv, (dd2402*), 0, "ee02402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02402.e");
+ test_class_info(&lv, &cd_ee02402);
+ dp->~ee02402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02402(Test_ee02402, "ee02402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02402C1Ev();
+extern void _ZN7ee02402D1Ev();
+Name_Map name_map_ee02402[] = {
+ NSPAIR(_ZN7ee02402C1Ev),
+ NSPAIR(_ZN7ee02402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd2402;
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+static Base_Class bases_ee02402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2402, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02402[];
+extern void _ZN6dd24023fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee02402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02402[0]),
+ (VTBL_ENTRY)&_ZN6dd24023fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02402[];
+extern VTBL_ENTRY _ZTV7ee02402[];
+Class_Descriptor cd_ee02402 = { "ee02402", // class name
+ bases_ee02402, 4,
+ &(vtc_ee02402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12402 : virtual dd2402 {
+ int e;
+ ~ee12402(); // tgen
+ ee12402(); // tgen
+};
+//SIG(1 ee12402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12402 ::~ee12402(){ note_dtor("ee12402", this);} // tgen
+ee12402 ::ee12402(){ note_ctor("ee12402", this);} // tgen
+
+static void Test_ee12402()
+{
+ extern Class_Descriptor cd_ee12402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12402, buf);
+ ee12402 *dp, &lv = *(dp=new (buf) ee12402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd2402*), ABISELECT(16,8), "ee12402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd2402*), ABISELECT(16,8), "ee12402");
+ check_base_class_offset(lv, (cc402*)(dd2402*), ABISELECT(16,8), "ee12402");
+ check_base_class_offset(lv, (dd2402*), ABISELECT(16,8), "ee12402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12402.e");
+ test_class_info(&lv, &cd_ee12402);
+ dp->~ee12402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12402(Test_ee12402, "ee12402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12402C1Ev();
+extern void _ZN7ee12402D1Ev();
+Name_Map name_map_ee12402[] = {
+ NSPAIR(_ZN7ee12402C1Ev),
+ NSPAIR(_ZN7ee12402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd2402;
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+static Base_Class bases_ee12402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2402, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12402[];
+extern void _ZN6dd24023fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee12402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12402[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12402[0]),
+ (VTBL_ENTRY)&_ZN6dd24023fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12402[];
+static VTT_ENTRY vtt_ee12402[] = {
+ {&(_ZTV7ee12402[3]), 3,9},
+ {&(_ZTV7ee12402[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12402[];
+extern VTBL_ENTRY _ZTV7ee12402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12402[];
+Class_Descriptor cd_ee12402 = { "ee12402", // class name
+ bases_ee12402, 4,
+ &(vtc_ee12402[0]), // expected_vtbl_contents
+ &(vtt_ee12402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12402),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22402 : dd2402 {
+ int e;
+ virtual void foo(); // _ZN7ee224023fooEv
+ ~ee22402(); // tgen
+ ee22402(); // tgen
+};
+//SIG(1 ee22402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22402 ::foo(){vfunc_called(this, "_ZN7ee224023fooEv");}
+ee22402 ::~ee22402(){ note_dtor("ee22402", this);} // tgen
+ee22402 ::ee22402(){ note_ctor("ee22402", this);} // tgen
+
+static void Test_ee22402()
+{
+ extern Class_Descriptor cd_ee22402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22402, buf);
+ ee22402 *dp, &lv = *(dp=new (buf) ee22402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd2402*), 0, "ee22402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd2402*), 0, "ee22402");
+ check_base_class_offset(lv, (cc402*)(dd2402*), 0, "ee22402");
+ check_base_class_offset(lv, (dd2402*), 0, "ee22402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22402.e");
+ test_class_info(&lv, &cd_ee22402);
+ dp->~ee22402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22402(Test_ee22402, "ee22402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22402C1Ev();
+extern void _ZN7ee22402D1Ev();
+Name_Map name_map_ee22402[] = {
+ NSPAIR(_ZN7ee22402C1Ev),
+ NSPAIR(_ZN7ee22402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd2402;
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+static Base_Class bases_ee22402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22402[];
+extern void _ZN7ee224023fooEv();
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee22402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22402[0]),
+ (VTBL_ENTRY)&_ZN7ee224023fooEv,
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22402[];
+extern VTBL_ENTRY _ZTV7ee22402[];
+Class_Descriptor cd_ee22402 = { "ee22402", // class name
+ bases_ee22402, 4,
+ &(vtc_ee22402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32402 : virtual dd2402 {
+ int e;
+ virtual void foo(); // _ZN7ee324023fooEv
+ ~ee32402(); // tgen
+ ee32402(); // tgen
+};
+//SIG(1 ee32402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32402 ::foo(){vfunc_called(this, "_ZN7ee324023fooEv");}
+ee32402 ::~ee32402(){ note_dtor("ee32402", this);} // tgen
+ee32402 ::ee32402(){ note_ctor("ee32402", this);} // tgen
+
+static void Test_ee32402()
+{
+ extern Class_Descriptor cd_ee32402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32402, buf);
+ ee32402 *dp, &lv = *(dp=new (buf) ee32402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd2402*), ABISELECT(16,8), "ee32402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd2402*), ABISELECT(16,8), "ee32402");
+ check_base_class_offset(lv, (cc402*)(dd2402*), ABISELECT(16,8), "ee32402");
+ check_base_class_offset(lv, (dd2402*), ABISELECT(16,8), "ee32402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32402.e");
+ test_class_info(&lv, &cd_ee32402);
+ dp->~ee32402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32402(Test_ee32402, "ee32402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32402C1Ev();
+extern void _ZN7ee32402D1Ev();
+Name_Map name_map_ee32402[] = {
+ NSPAIR(_ZN7ee32402C1Ev),
+ NSPAIR(_ZN7ee32402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd2402;
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+static Base_Class bases_ee32402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32402[];
+extern void _ZN7ee324023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee324023fooEv,_ZTv0_n12_N7ee324023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324023fooEv,_ZThn8_N7ee324023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee32402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32402[0]),
+ (VTBL_ENTRY)&_ZN7ee324023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324023fooEv,_ZTv0_n12_N7ee324023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32402[];
+static VTT_ENTRY vtt_ee32402[] = {
+ {&(_ZTV7ee32402[3]), 3,10},
+ {&(_ZTV7ee32402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32402[];
+extern VTBL_ENTRY _ZTV7ee32402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32402[];
+static VTBL_ENTRY alt_thunk_names930[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324023fooEv,_ZTv0_n12_N7ee324023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324023fooEv,_ZThn8_N7ee324023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32402 = { "ee32402", // class name
+ bases_ee32402, 4,
+ &(vtc_ee32402[0]), // expected_vtbl_contents
+ &(vtt_ee32402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names930,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42402 : dd2402 {
+ int e;
+ virtual void bar(); // _ZN7ee424023barEv
+ ~ee42402(); // tgen
+ ee42402(); // tgen
+};
+//SIG(1 ee42402) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42402 ::bar(){vfunc_called(this, "_ZN7ee424023barEv");}
+ee42402 ::~ee42402(){ note_dtor("ee42402", this);} // tgen
+ee42402 ::ee42402(){ note_ctor("ee42402", this);} // tgen
+
+static void Test_ee42402()
+{
+ extern Class_Descriptor cd_ee42402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42402, buf);
+ ee42402 *dp, &lv = *(dp=new (buf) ee42402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd2402*), 0, "ee42402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd2402*), 0, "ee42402");
+ check_base_class_offset(lv, (cc402*)(dd2402*), 0, "ee42402");
+ check_base_class_offset(lv, (dd2402*), 0, "ee42402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42402.e");
+ test_class_info(&lv, &cd_ee42402);
+ dp->~ee42402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42402(Test_ee42402, "ee42402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42402C1Ev();
+extern void _ZN7ee42402D1Ev();
+Name_Map name_map_ee42402[] = {
+ NSPAIR(_ZN7ee42402C1Ev),
+ NSPAIR(_ZN7ee42402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd2402;
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+static Base_Class bases_ee42402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42402[];
+extern void _ZN6dd24023fooEv();
+extern void _ZN7ee424023barEv();
+static VTBL_ENTRY vtc_ee42402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42402[0]),
+ (VTBL_ENTRY)&_ZN6dd24023fooEv,
+ (VTBL_ENTRY)&_ZN7ee424023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42402[];
+extern VTBL_ENTRY _ZTV7ee42402[];
+Class_Descriptor cd_ee42402 = { "ee42402", // class name
+ bases_ee42402, 4,
+ &(vtc_ee42402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52402 : virtual dd2402 {
+ int e;
+ virtual void bar(); // _ZN7ee524023barEv
+ ~ee52402(); // tgen
+ ee52402(); // tgen
+};
+//SIG(1 ee52402) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52402 ::bar(){vfunc_called(this, "_ZN7ee524023barEv");}
+ee52402 ::~ee52402(){ note_dtor("ee52402", this);} // tgen
+ee52402 ::ee52402(){ note_ctor("ee52402", this);} // tgen
+
+static void Test_ee52402()
+{
+ extern Class_Descriptor cd_ee52402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52402, buf);
+ ee52402 *dp, &lv = *(dp=new (buf) ee52402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd2402*), ABISELECT(16,8), "ee52402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd2402*), ABISELECT(16,8), "ee52402");
+ check_base_class_offset(lv, (cc402*)(dd2402*), ABISELECT(16,8), "ee52402");
+ check_base_class_offset(lv, (dd2402*), ABISELECT(16,8), "ee52402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52402.e");
+ test_class_info(&lv, &cd_ee52402);
+ dp->~ee52402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52402(Test_ee52402, "ee52402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52402C1Ev();
+extern void _ZN7ee52402D1Ev();
+Name_Map name_map_ee52402[] = {
+ NSPAIR(_ZN7ee52402C1Ev),
+ NSPAIR(_ZN7ee52402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd2402;
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+static Base_Class bases_ee52402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52402[];
+extern void _ZN7ee524023barEv();
+extern void _ZN6dd24023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524023barEv,_ZTv0_n16_N7ee524023barEv)();
+extern void ABISELECT(_ZThn16_N7ee524023barEv,_ZThn8_N7ee524023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52402[0]),
+ (VTBL_ENTRY)&_ZN7ee524023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52402[0]),
+ (VTBL_ENTRY)&_ZN6dd24023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524023barEv,_ZTv0_n16_N7ee524023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52402[];
+static VTT_ENTRY vtt_ee52402[] = {
+ {&(_ZTV7ee52402[3]), 3,10},
+ {&(_ZTV7ee52402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52402[];
+extern VTBL_ENTRY _ZTV7ee52402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52402[];
+static VTBL_ENTRY alt_thunk_names931[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524023barEv,_ZTv0_n16_N7ee524023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524023barEv,_ZThn8_N7ee524023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52402 = { "ee52402", // class name
+ bases_ee52402, 4,
+ &(vtc_ee52402[0]), // expected_vtbl_contents
+ &(vtt_ee52402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names931,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62402 : dd2402 {
+ int e;
+ virtual void foo(); // _ZN7ee624023fooEv
+ virtual void bar(); // _ZN7ee624023barEv
+ ~ee62402(); // tgen
+ ee62402(); // tgen
+};
+//SIG(1 ee62402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62402 ::foo(){vfunc_called(this, "_ZN7ee624023fooEv");}
+void ee62402 ::bar(){vfunc_called(this, "_ZN7ee624023barEv");}
+ee62402 ::~ee62402(){ note_dtor("ee62402", this);} // tgen
+ee62402 ::ee62402(){ note_ctor("ee62402", this);} // tgen
+
+static void Test_ee62402()
+{
+ extern Class_Descriptor cd_ee62402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62402, buf);
+ ee62402 *dp, &lv = *(dp=new (buf) ee62402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd2402*), 0, "ee62402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd2402*), 0, "ee62402");
+ check_base_class_offset(lv, (cc402*)(dd2402*), 0, "ee62402");
+ check_base_class_offset(lv, (dd2402*), 0, "ee62402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62402.e");
+ test_class_info(&lv, &cd_ee62402);
+ dp->~ee62402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62402(Test_ee62402, "ee62402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62402C1Ev();
+extern void _ZN7ee62402D1Ev();
+Name_Map name_map_ee62402[] = {
+ NSPAIR(_ZN7ee62402C1Ev),
+ NSPAIR(_ZN7ee62402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd2402;
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+static Base_Class bases_ee62402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62402[];
+extern void _ZN7ee624023fooEv();
+extern void _ZN7ee624023barEv();
+static VTBL_ENTRY vtc_ee62402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62402[0]),
+ (VTBL_ENTRY)&_ZN7ee624023fooEv,
+ (VTBL_ENTRY)&_ZN7ee624023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62402[];
+extern VTBL_ENTRY _ZTV7ee62402[];
+Class_Descriptor cd_ee62402 = { "ee62402", // class name
+ bases_ee62402, 4,
+ &(vtc_ee62402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72402 : virtual dd2402 {
+ int e;
+ virtual void foo(); // _ZN7ee724023fooEv
+ virtual void bar(); // _ZN7ee724023barEv
+ ~ee72402(); // tgen
+ ee72402(); // tgen
+};
+//SIG(1 ee72402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72402 ::foo(){vfunc_called(this, "_ZN7ee724023fooEv");}
+void ee72402 ::bar(){vfunc_called(this, "_ZN7ee724023barEv");}
+ee72402 ::~ee72402(){ note_dtor("ee72402", this);} // tgen
+ee72402 ::ee72402(){ note_ctor("ee72402", this);} // tgen
+
+static void Test_ee72402()
+{
+ extern Class_Descriptor cd_ee72402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72402, buf);
+ ee72402 *dp, &lv = *(dp=new (buf) ee72402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd2402*), ABISELECT(16,8), "ee72402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd2402*), ABISELECT(16,8), "ee72402");
+ check_base_class_offset(lv, (cc402*)(dd2402*), ABISELECT(16,8), "ee72402");
+ check_base_class_offset(lv, (dd2402*), ABISELECT(16,8), "ee72402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72402.e");
+ test_class_info(&lv, &cd_ee72402);
+ dp->~ee72402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72402(Test_ee72402, "ee72402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72402C1Ev();
+extern void _ZN7ee72402D1Ev();
+Name_Map name_map_ee72402[] = {
+ NSPAIR(_ZN7ee72402C1Ev),
+ NSPAIR(_ZN7ee72402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd2402;
+extern VTBL_ENTRY _ZTI6dd2402[];
+extern VTBL_ENTRY _ZTV6dd2402[];
+static Base_Class bases_ee72402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72402[];
+extern void _ZN7ee724023fooEv();
+extern void _ZN7ee724023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee724023fooEv,_ZTv0_n12_N7ee724023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724023fooEv,_ZThn8_N7ee724023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724023barEv,_ZTv0_n16_N7ee724023barEv)();
+extern void ABISELECT(_ZThn16_N7ee724023barEv,_ZThn8_N7ee724023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72402[0]),
+ (VTBL_ENTRY)&_ZN7ee724023fooEv,
+ (VTBL_ENTRY)&_ZN7ee724023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724023fooEv,_ZTv0_n12_N7ee724023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724023barEv,_ZTv0_n16_N7ee724023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72402[];
+static VTT_ENTRY vtt_ee72402[] = {
+ {&(_ZTV7ee72402[3]), 3,11},
+ {&(_ZTV7ee72402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72402[];
+extern VTBL_ENTRY _ZTV7ee72402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72402[];
+static VTBL_ENTRY alt_thunk_names932[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724023barEv,_ZTv0_n16_N7ee724023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724023barEv,_ZThn8_N7ee724023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724023fooEv,_ZTv0_n12_N7ee724023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724023fooEv,_ZThn8_N7ee724023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72402 = { "ee72402", // class name
+ bases_ee72402, 4,
+ &(vtc_ee72402[0]), // expected_vtbl_contents
+ &(vtt_ee72402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names932,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3402 : virtual cc402 {
+ int d;
+ virtual void foo(); // _ZN6dd34023fooEv
+ ~dd3402(); // tgen
+ dd3402(); // tgen
+};
+//SIG(-1 dd3402) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd3402 ::foo(){vfunc_called(this, "_ZN6dd34023fooEv");}
+dd3402 ::~dd3402(){ note_dtor("dd3402", this);} // tgen
+dd3402 ::dd3402(){ note_ctor("dd3402", this);} // tgen
+
+static void Test_dd3402()
+{
+ extern Class_Descriptor cd_dd3402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3402, buf);
+ dd3402 *dp, &lv = *(dp=new (buf) dd3402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,8), "dd3402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,8), "dd3402");
+ check_base_class_offset(lv, (cc402*), ABISELECT(16,8), "dd3402");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3402.d");
+ test_class_info(&lv, &cd_dd3402);
+ dp->~dd3402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3402(Test_dd3402, "dd3402", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3402C1Ev();
+extern void _ZN6dd3402D1Ev();
+Name_Map name_map_dd3402[] = {
+ NSPAIR(_ZN6dd3402C1Ev),
+ NSPAIR(_ZN6dd3402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+static Base_Class bases_dd3402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern void _ZN6dd34023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_dd3402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3402[];
+static VTT_ENTRY vtt_dd3402[] = {
+ {&(_ZTV6dd3402[3]), 3,10},
+ {&(_ZTV6dd3402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static VTBL_ENTRY alt_thunk_names933[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3402 = { "dd3402", // class name
+ bases_dd3402, 3,
+ &(vtc_dd3402[0]), // expected_vtbl_contents
+ &(vtt_dd3402[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3402),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names933,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03402 : dd3402 {
+ int e;
+ ~ee03402(); // tgen
+ ee03402(); // tgen
+};
+//SIG(1 ee03402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03402 ::~ee03402(){ note_dtor("ee03402", this);} // tgen
+ee03402 ::ee03402(){ note_ctor("ee03402", this);} // tgen
+
+static void Test_ee03402()
+{
+ extern Class_Descriptor cd_ee03402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03402, buf);
+ ee03402 *dp, &lv = *(dp=new (buf) ee03402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee03402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee03402");
+ check_base_class_offset(lv, (cc402*)(dd3402*), ABISELECT(16,12), "ee03402");
+ check_base_class_offset(lv, (dd3402*), 0, "ee03402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03402.e");
+ test_class_info(&lv, &cd_ee03402);
+ dp->~ee03402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03402(Test_ee03402, "ee03402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03402C1Ev();
+extern void _ZN7ee03402D1Ev();
+Name_Map name_map_ee03402[] = {
+ NSPAIR(_ZN7ee03402C1Ev),
+ NSPAIR(_ZN7ee03402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd3402;
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static Base_Class bases_ee03402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03402[];
+extern void _ZN6dd34023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee03402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03402[];
+extern void _ZN6dd34023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3402__7ee03402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd3402__7ee03402[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee03402[] = {
+ {&(_ZTV7ee03402[3]), 3,10},
+ {&(_tg__ZTV6dd3402__7ee03402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd3402__7ee03402[4]), 4,6},
+ {&(_ZTV7ee03402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03402[];
+extern VTBL_ENTRY _ZTV7ee03402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03402[];
+static VTBL_ENTRY alt_thunk_names934[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03402 = { "ee03402", // class name
+ bases_ee03402, 4,
+ &(vtc_ee03402[0]), // expected_vtbl_contents
+ &(vtt_ee03402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names934,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13402 : virtual dd3402 {
+ int e;
+ ~ee13402(); // tgen
+ ee13402(); // tgen
+};
+//SIG(1 ee13402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13402 ::~ee13402(){ note_dtor("ee13402", this);} // tgen
+ee13402 ::ee13402(){ note_ctor("ee13402", this);} // tgen
+
+static void Test_ee13402()
+{
+ extern Class_Descriptor cd_ee13402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13402, buf);
+ ee13402 *dp, &lv = *(dp=new (buf) ee13402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee13402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee13402");
+ check_base_class_offset(lv, (cc402*)(dd3402*), ABISELECT(32,16), "ee13402");
+ check_base_class_offset(lv, (dd3402*), ABISELECT(16,8), "ee13402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13402.e");
+ test_class_info(&lv, &cd_ee13402);
+ dp->~ee13402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13402(Test_ee13402, "ee13402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13402C1Ev();
+extern void _ZN7ee13402D1Ev();
+Name_Map name_map_ee13402[] = {
+ NSPAIR(_ZN7ee13402C1Ev),
+ NSPAIR(_ZN7ee13402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd3402;
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static Base_Class bases_ee13402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13402[];
+extern void _ZN6dd34023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee13402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13402[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13402[];
+extern void _ZN6dd34023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3402__7ee13402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd3402__7ee13402[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee13402[] = {
+ {&(_ZTV7ee13402[4]), 4,15},
+ {&(_ZTV7ee13402[8]), 8,15},
+ {&(_ZTV7ee13402[13]), 13,15},
+ {&(_tg__ZTV6dd3402__7ee13402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd3402__7ee13402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13402[];
+extern VTBL_ENTRY _ZTV7ee13402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13402[];
+static VTBL_ENTRY alt_thunk_names935[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13402 = { "ee13402", // class name
+ bases_ee13402, 4,
+ &(vtc_ee13402[0]), // expected_vtbl_contents
+ &(vtt_ee13402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13402),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names935,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23402 : dd3402 {
+ int e;
+ virtual void foo(); // _ZN7ee234023fooEv
+ ~ee23402(); // tgen
+ ee23402(); // tgen
+};
+//SIG(1 ee23402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23402 ::foo(){vfunc_called(this, "_ZN7ee234023fooEv");}
+ee23402 ::~ee23402(){ note_dtor("ee23402", this);} // tgen
+ee23402 ::ee23402(){ note_ctor("ee23402", this);} // tgen
+
+static void Test_ee23402()
+{
+ extern Class_Descriptor cd_ee23402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23402, buf);
+ ee23402 *dp, &lv = *(dp=new (buf) ee23402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee23402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee23402");
+ check_base_class_offset(lv, (cc402*)(dd3402*), ABISELECT(16,12), "ee23402");
+ check_base_class_offset(lv, (dd3402*), 0, "ee23402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23402.e");
+ test_class_info(&lv, &cd_ee23402);
+ dp->~ee23402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23402(Test_ee23402, "ee23402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23402C1Ev();
+extern void _ZN7ee23402D1Ev();
+Name_Map name_map_ee23402[] = {
+ NSPAIR(_ZN7ee23402C1Ev),
+ NSPAIR(_ZN7ee23402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd3402;
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static Base_Class bases_ee23402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23402[];
+extern void _ZN7ee234023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234023fooEv,_ZTv0_n12_N7ee234023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee234023fooEv,_ZThn12_N7ee234023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee23402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23402[0]),
+ (VTBL_ENTRY)&_ZN7ee234023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234023fooEv,_ZTv0_n12_N7ee234023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23402[];
+extern void _ZN6dd34023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3402__7ee23402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd3402__7ee23402[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee23402[] = {
+ {&(_ZTV7ee23402[3]), 3,10},
+ {&(_tg__ZTV6dd3402__7ee23402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd3402__7ee23402[4]), 4,6},
+ {&(_ZTV7ee23402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23402[];
+extern VTBL_ENTRY _ZTV7ee23402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23402[];
+static VTBL_ENTRY alt_thunk_names936[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234023fooEv,_ZTv0_n12_N7ee234023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee234023fooEv,_ZThn12_N7ee234023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23402 = { "ee23402", // class name
+ bases_ee23402, 4,
+ &(vtc_ee23402[0]), // expected_vtbl_contents
+ &(vtt_ee23402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names936,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33402 : virtual dd3402 {
+ int e;
+ virtual void foo(); // _ZN7ee334023fooEv
+ ~ee33402(); // tgen
+ ee33402(); // tgen
+};
+//SIG(1 ee33402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33402 ::foo(){vfunc_called(this, "_ZN7ee334023fooEv");}
+ee33402 ::~ee33402(){ note_dtor("ee33402", this);} // tgen
+ee33402 ::ee33402(){ note_ctor("ee33402", this);} // tgen
+
+static void Test_ee33402()
+{
+ extern Class_Descriptor cd_ee33402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33402, buf);
+ ee33402 *dp, &lv = *(dp=new (buf) ee33402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee33402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee33402");
+ check_base_class_offset(lv, (cc402*)(dd3402*), ABISELECT(32,16), "ee33402");
+ check_base_class_offset(lv, (dd3402*), ABISELECT(16,8), "ee33402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33402.e");
+ test_class_info(&lv, &cd_ee33402);
+ dp->~ee33402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33402(Test_ee33402, "ee33402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33402C1Ev();
+extern void _ZN7ee33402D1Ev();
+Name_Map name_map_ee33402[] = {
+ NSPAIR(_ZN7ee33402C1Ev),
+ NSPAIR(_ZN7ee33402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd3402;
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static Base_Class bases_ee33402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33402[];
+extern void _ZN7ee334023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee334023fooEv,_ZTv0_n16_N7ee334023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334023fooEv,_ZThn8_N7ee334023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee334023fooEv,_ZTv0_n12_N7ee334023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee334023fooEv,_ZThn16_N7ee334023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY vtc_ee33402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33402[0]),
+ (VTBL_ENTRY)&_ZN7ee334023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee334023fooEv,_ZTv0_n16_N7ee334023fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334023fooEv,_ZTv0_n12_N7ee334023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33402[];
+extern void _ZN6dd34023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3402__7ee33402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd3402__7ee33402[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee33402[] = {
+ {&(_ZTV7ee33402[4]), 4,16},
+ {&(_ZTV7ee33402[9]), 9,16},
+ {&(_ZTV7ee33402[14]), 14,16},
+ {&(_tg__ZTV6dd3402__7ee33402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd3402__7ee33402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33402[];
+extern VTBL_ENTRY _ZTV7ee33402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33402[];
+static VTBL_ENTRY alt_thunk_names937[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334023fooEv,_ZTv0_n12_N7ee334023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee334023fooEv,_ZThn16_N7ee334023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee334023fooEv,_ZTv0_n16_N7ee334023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334023fooEv,_ZThn8_N7ee334023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33402 = { "ee33402", // class name
+ bases_ee33402, 4,
+ &(vtc_ee33402[0]), // expected_vtbl_contents
+ &(vtt_ee33402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33402),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names937,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43402 : dd3402 {
+ int e;
+ virtual void bar(); // _ZN7ee434023barEv
+ ~ee43402(); // tgen
+ ee43402(); // tgen
+};
+//SIG(1 ee43402) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43402 ::bar(){vfunc_called(this, "_ZN7ee434023barEv");}
+ee43402 ::~ee43402(){ note_dtor("ee43402", this);} // tgen
+ee43402 ::ee43402(){ note_ctor("ee43402", this);} // tgen
+
+static void Test_ee43402()
+{
+ extern Class_Descriptor cd_ee43402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43402, buf);
+ ee43402 *dp, &lv = *(dp=new (buf) ee43402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee43402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee43402");
+ check_base_class_offset(lv, (cc402*)(dd3402*), ABISELECT(16,12), "ee43402");
+ check_base_class_offset(lv, (dd3402*), 0, "ee43402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43402.e");
+ test_class_info(&lv, &cd_ee43402);
+ dp->~ee43402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43402(Test_ee43402, "ee43402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43402C1Ev();
+extern void _ZN7ee43402D1Ev();
+Name_Map name_map_ee43402[] = {
+ NSPAIR(_ZN7ee43402C1Ev),
+ NSPAIR(_ZN7ee43402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd3402;
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static Base_Class bases_ee43402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43402[];
+extern void _ZN6dd34023fooEv();
+extern void _ZN7ee434023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee434023barEv,_ZTv0_n16_N7ee434023barEv)();
+extern void ABISELECT(_ZThn16_N7ee434023barEv,_ZThn12_N7ee434023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+ (VTBL_ENTRY)&_ZN7ee434023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434023barEv,_ZTv0_n16_N7ee434023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43402[];
+extern void _ZN6dd34023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3402__7ee43402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd3402__7ee43402[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee43402[] = {
+ {&(_ZTV7ee43402[3]), 3,11},
+ {&(_tg__ZTV6dd3402__7ee43402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd3402__7ee43402[4]), 4,6},
+ {&(_ZTV7ee43402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43402[];
+extern VTBL_ENTRY _ZTV7ee43402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43402[];
+static VTBL_ENTRY alt_thunk_names938[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434023barEv,_ZTv0_n16_N7ee434023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434023barEv,_ZThn12_N7ee434023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43402 = { "ee43402", // class name
+ bases_ee43402, 4,
+ &(vtc_ee43402[0]), // expected_vtbl_contents
+ &(vtt_ee43402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names938,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53402 : virtual dd3402 {
+ int e;
+ virtual void bar(); // _ZN7ee534023barEv
+ ~ee53402(); // tgen
+ ee53402(); // tgen
+};
+//SIG(1 ee53402) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53402 ::bar(){vfunc_called(this, "_ZN7ee534023barEv");}
+ee53402 ::~ee53402(){ note_dtor("ee53402", this);} // tgen
+ee53402 ::ee53402(){ note_ctor("ee53402", this);} // tgen
+
+static void Test_ee53402()
+{
+ extern Class_Descriptor cd_ee53402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53402, buf);
+ ee53402 *dp, &lv = *(dp=new (buf) ee53402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee53402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee53402");
+ check_base_class_offset(lv, (cc402*)(dd3402*), ABISELECT(32,16), "ee53402");
+ check_base_class_offset(lv, (dd3402*), ABISELECT(16,8), "ee53402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53402.e");
+ test_class_info(&lv, &cd_ee53402);
+ dp->~ee53402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53402(Test_ee53402, "ee53402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53402C1Ev();
+extern void _ZN7ee53402D1Ev();
+Name_Map name_map_ee53402[] = {
+ NSPAIR(_ZN7ee53402C1Ev),
+ NSPAIR(_ZN7ee53402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd3402;
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static Base_Class bases_ee53402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53402[];
+extern void _ZN7ee534023barEv();
+extern void _ZN6dd34023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee534023barEv,_ZTv0_n16_N7ee534023barEv)();
+extern void ABISELECT(_ZThn32_N7ee534023barEv,_ZThn16_N7ee534023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53402[0]),
+ (VTBL_ENTRY)&_ZN7ee534023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534023barEv,_ZTv0_n16_N7ee534023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53402[];
+extern void _ZN6dd34023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3402__7ee53402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd3402__7ee53402[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee53402[] = {
+ {&(_ZTV7ee53402[4]), 4,16},
+ {&(_ZTV7ee53402[9]), 9,16},
+ {&(_ZTV7ee53402[14]), 14,16},
+ {&(_tg__ZTV6dd3402__7ee53402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd3402__7ee53402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53402[];
+extern VTBL_ENTRY _ZTV7ee53402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53402[];
+static VTBL_ENTRY alt_thunk_names939[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534023barEv,_ZTv0_n16_N7ee534023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534023barEv,_ZThn16_N7ee534023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53402 = { "ee53402", // class name
+ bases_ee53402, 4,
+ &(vtc_ee53402[0]), // expected_vtbl_contents
+ &(vtt_ee53402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53402),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names939,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63402 : dd3402 {
+ int e;
+ virtual void foo(); // _ZN7ee634023fooEv
+ virtual void bar(); // _ZN7ee634023barEv
+ ~ee63402(); // tgen
+ ee63402(); // tgen
+};
+//SIG(1 ee63402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63402 ::foo(){vfunc_called(this, "_ZN7ee634023fooEv");}
+void ee63402 ::bar(){vfunc_called(this, "_ZN7ee634023barEv");}
+ee63402 ::~ee63402(){ note_dtor("ee63402", this);} // tgen
+ee63402 ::ee63402(){ note_ctor("ee63402", this);} // tgen
+
+static void Test_ee63402()
+{
+ extern Class_Descriptor cd_ee63402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63402, buf);
+ ee63402 *dp, &lv = *(dp=new (buf) ee63402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee63402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee63402");
+ check_base_class_offset(lv, (cc402*)(dd3402*), ABISELECT(16,12), "ee63402");
+ check_base_class_offset(lv, (dd3402*), 0, "ee63402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63402.e");
+ test_class_info(&lv, &cd_ee63402);
+ dp->~ee63402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63402(Test_ee63402, "ee63402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63402C1Ev();
+extern void _ZN7ee63402D1Ev();
+Name_Map name_map_ee63402[] = {
+ NSPAIR(_ZN7ee63402C1Ev),
+ NSPAIR(_ZN7ee63402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd3402;
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static Base_Class bases_ee63402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63402[];
+extern void _ZN7ee634023fooEv();
+extern void _ZN7ee634023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee634023fooEv,_ZTv0_n12_N7ee634023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee634023fooEv,_ZThn12_N7ee634023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634023barEv,_ZTv0_n16_N7ee634023barEv)();
+extern void ABISELECT(_ZThn16_N7ee634023barEv,_ZThn12_N7ee634023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63402[0]),
+ (VTBL_ENTRY)&_ZN7ee634023fooEv,
+ (VTBL_ENTRY)&_ZN7ee634023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634023fooEv,_ZTv0_n12_N7ee634023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634023barEv,_ZTv0_n16_N7ee634023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63402[];
+extern void _ZN6dd34023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3402__7ee63402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd3402__7ee63402[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee63402[] = {
+ {&(_ZTV7ee63402[3]), 3,11},
+ {&(_tg__ZTV6dd3402__7ee63402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd3402__7ee63402[4]), 4,6},
+ {&(_ZTV7ee63402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63402[];
+extern VTBL_ENTRY _ZTV7ee63402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63402[];
+static VTBL_ENTRY alt_thunk_names940[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn12_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634023barEv,_ZTv0_n16_N7ee634023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634023barEv,_ZThn12_N7ee634023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634023fooEv,_ZTv0_n12_N7ee634023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634023fooEv,_ZThn12_N7ee634023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63402 = { "ee63402", // class name
+ bases_ee63402, 4,
+ &(vtc_ee63402[0]), // expected_vtbl_contents
+ &(vtt_ee63402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names940,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73402 : virtual dd3402 {
+ int e;
+ virtual void foo(); // _ZN7ee734023fooEv
+ virtual void bar(); // _ZN7ee734023barEv
+ ~ee73402(); // tgen
+ ee73402(); // tgen
+};
+//SIG(1 ee73402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73402 ::foo(){vfunc_called(this, "_ZN7ee734023fooEv");}
+void ee73402 ::bar(){vfunc_called(this, "_ZN7ee734023barEv");}
+ee73402 ::~ee73402(){ note_dtor("ee73402", this);} // tgen
+ee73402 ::ee73402(){ note_ctor("ee73402", this);} // tgen
+
+static void Test_ee73402()
+{
+ extern Class_Descriptor cd_ee73402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73402, buf);
+ ee73402 *dp, &lv = *(dp=new (buf) ee73402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee73402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee73402");
+ check_base_class_offset(lv, (cc402*)(dd3402*), ABISELECT(32,16), "ee73402");
+ check_base_class_offset(lv, (dd3402*), ABISELECT(16,8), "ee73402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73402.e");
+ test_class_info(&lv, &cd_ee73402);
+ dp->~ee73402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73402(Test_ee73402, "ee73402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73402C1Ev();
+extern void _ZN7ee73402D1Ev();
+Name_Map name_map_ee73402[] = {
+ NSPAIR(_ZN7ee73402C1Ev),
+ NSPAIR(_ZN7ee73402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd3402;
+extern VTBL_ENTRY _ZTI6dd3402[];
+extern VTBL_ENTRY _ZTV6dd3402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3402[];
+static Base_Class bases_ee73402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3402, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73402[];
+extern void _ZN7ee734023fooEv();
+extern void _ZN7ee734023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee734023fooEv,_ZTv0_n16_N7ee734023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734023fooEv,_ZThn8_N7ee734023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734023fooEv,_ZTv0_n12_N7ee734023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee734023fooEv,_ZThn16_N7ee734023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734023barEv,_ZTv0_n16_N7ee734023barEv)();
+extern void ABISELECT(_ZThn32_N7ee734023barEv,_ZThn16_N7ee734023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73402[0]),
+ (VTBL_ENTRY)&_ZN7ee734023fooEv,
+ (VTBL_ENTRY)&_ZN7ee734023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734023fooEv,_ZTv0_n16_N7ee734023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734023fooEv,_ZTv0_n12_N7ee734023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734023barEv,_ZTv0_n16_N7ee734023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73402[];
+extern void _ZN6dd34023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3402__7ee73402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&_ZN6dd34023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv)() __attribute__((weak));
+extern void _ZN5cc4023barEv();
+static VTBL_ENTRY _tg__ZTV5cc402__6dd3402__7ee73402[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv),
+ (VTBL_ENTRY)&_ZN5cc4023barEv,
+};
+static VTT_ENTRY vtt_ee73402[] = {
+ {&(_ZTV7ee73402[4]), 4,17},
+ {&(_ZTV7ee73402[10]), 10,17},
+ {&(_ZTV7ee73402[15]), 15,17},
+ {&(_tg__ZTV6dd3402__7ee73402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd3402__7ee73402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73402[];
+extern VTBL_ENTRY _ZTV7ee73402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73402[];
+static VTBL_ENTRY alt_thunk_names941[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34023fooEv,_ZTv0_n12_N6dd34023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd34023fooEv,_ZThn8_N6dd34023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734023barEv,_ZTv0_n16_N7ee734023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734023barEv,_ZThn16_N7ee734023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734023fooEv,_ZTv0_n12_N7ee734023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734023fooEv,_ZThn16_N7ee734023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734023fooEv,_ZTv0_n16_N7ee734023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734023fooEv,_ZThn8_N7ee734023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73402 = { "ee73402", // class name
+ bases_ee73402, 4,
+ &(vtc_ee73402[0]), // expected_vtbl_contents
+ &(vtt_ee73402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73402),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names941,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4402 : cc402 {
+ int d;
+ virtual void bar(); // _ZN6dd44023barEv
+ ~dd4402(); // tgen
+ dd4402(); // tgen
+};
+//SIG(-1 dd4402) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd4402 ::bar(){vfunc_called(this, "_ZN6dd44023barEv");}
+dd4402 ::~dd4402(){ note_dtor("dd4402", this);} // tgen
+dd4402 ::dd4402(){ note_ctor("dd4402", this);} // tgen
+
+static void Test_dd4402()
+{
+ extern Class_Descriptor cd_dd4402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4402, buf);
+ dd4402 *dp, &lv = *(dp=new (buf) dd4402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), 0, "dd4402");
+ check_base_class_offset(lv, (bb02*)(cc402*), 0, "dd4402");
+ check_base_class_offset(lv, (cc402*), 0, "dd4402");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4402.d");
+ test_class_info(&lv, &cd_dd4402);
+ dp->~dd4402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4402(Test_dd4402, "dd4402", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4402C1Ev();
+extern void _ZN6dd4402D1Ev();
+Name_Map name_map_dd4402[] = {
+ NSPAIR(_ZN6dd4402C1Ev),
+ NSPAIR(_ZN6dd4402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+static Base_Class bases_dd4402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN6dd44023barEv();
+static VTBL_ENTRY vtc_dd4402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN6dd44023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+Class_Descriptor cd_dd4402 = { "dd4402", // class name
+ bases_dd4402, 3,
+ &(vtc_dd4402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04402 : dd4402 {
+ int e;
+ ~ee04402(); // tgen
+ ee04402(); // tgen
+};
+//SIG(1 ee04402) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04402 ::~ee04402(){ note_dtor("ee04402", this);} // tgen
+ee04402 ::ee04402(){ note_ctor("ee04402", this);} // tgen
+
+static void Test_ee04402()
+{
+ extern Class_Descriptor cd_ee04402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04402, buf);
+ ee04402 *dp, &lv = *(dp=new (buf) ee04402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd4402*), 0, "ee04402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd4402*), 0, "ee04402");
+ check_base_class_offset(lv, (cc402*)(dd4402*), 0, "ee04402");
+ check_base_class_offset(lv, (dd4402*), 0, "ee04402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04402.e");
+ test_class_info(&lv, &cd_ee04402);
+ dp->~ee04402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04402(Test_ee04402, "ee04402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04402C1Ev();
+extern void _ZN7ee04402D1Ev();
+Name_Map name_map_ee04402[] = {
+ NSPAIR(_ZN7ee04402C1Ev),
+ NSPAIR(_ZN7ee04402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd4402;
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+static Base_Class bases_ee04402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4402, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN6dd44023barEv();
+static VTBL_ENTRY vtc_ee04402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN6dd44023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04402[];
+extern VTBL_ENTRY _ZTV7ee04402[];
+Class_Descriptor cd_ee04402 = { "ee04402", // class name
+ bases_ee04402, 4,
+ &(vtc_ee04402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14402 : virtual dd4402 {
+ int e;
+ ~ee14402(); // tgen
+ ee14402(); // tgen
+};
+//SIG(1 ee14402) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14402 ::~ee14402(){ note_dtor("ee14402", this);} // tgen
+ee14402 ::ee14402(){ note_ctor("ee14402", this);} // tgen
+
+static void Test_ee14402()
+{
+ extern Class_Descriptor cd_ee14402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14402, buf);
+ ee14402 *dp, &lv = *(dp=new (buf) ee14402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd4402*), ABISELECT(16,8), "ee14402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd4402*), ABISELECT(16,8), "ee14402");
+ check_base_class_offset(lv, (cc402*)(dd4402*), ABISELECT(16,8), "ee14402");
+ check_base_class_offset(lv, (dd4402*), ABISELECT(16,8), "ee14402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14402.e");
+ test_class_info(&lv, &cd_ee14402);
+ dp->~ee14402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14402(Test_ee14402, "ee14402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14402C1Ev();
+extern void _ZN7ee14402D1Ev();
+Name_Map name_map_ee14402[] = {
+ NSPAIR(_ZN7ee14402C1Ev),
+ NSPAIR(_ZN7ee14402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd4402;
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+static Base_Class bases_ee14402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4402, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN6dd44023barEv();
+static VTBL_ENTRY vtc_ee14402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14402[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN6dd44023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14402[];
+static VTT_ENTRY vtt_ee14402[] = {
+ {&(_ZTV7ee14402[3]), 3,9},
+ {&(_ZTV7ee14402[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14402[];
+extern VTBL_ENTRY _ZTV7ee14402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14402[];
+Class_Descriptor cd_ee14402 = { "ee14402", // class name
+ bases_ee14402, 4,
+ &(vtc_ee14402[0]), // expected_vtbl_contents
+ &(vtt_ee14402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14402),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24402 : dd4402 {
+ int e;
+ virtual void foo(); // _ZN7ee244023fooEv
+ ~ee24402(); // tgen
+ ee24402(); // tgen
+};
+//SIG(1 ee24402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24402 ::foo(){vfunc_called(this, "_ZN7ee244023fooEv");}
+ee24402 ::~ee24402(){ note_dtor("ee24402", this);} // tgen
+ee24402 ::ee24402(){ note_ctor("ee24402", this);} // tgen
+
+static void Test_ee24402()
+{
+ extern Class_Descriptor cd_ee24402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24402, buf);
+ ee24402 *dp, &lv = *(dp=new (buf) ee24402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd4402*), 0, "ee24402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd4402*), 0, "ee24402");
+ check_base_class_offset(lv, (cc402*)(dd4402*), 0, "ee24402");
+ check_base_class_offset(lv, (dd4402*), 0, "ee24402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24402.e");
+ test_class_info(&lv, &cd_ee24402);
+ dp->~ee24402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24402(Test_ee24402, "ee24402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24402C1Ev();
+extern void _ZN7ee24402D1Ev();
+Name_Map name_map_ee24402[] = {
+ NSPAIR(_ZN7ee24402C1Ev),
+ NSPAIR(_ZN7ee24402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd4402;
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+static Base_Class bases_ee24402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24402[];
+extern void _ZN7ee244023fooEv();
+extern void _ZN6dd44023barEv();
+static VTBL_ENTRY vtc_ee24402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24402[0]),
+ (VTBL_ENTRY)&_ZN7ee244023fooEv,
+ (VTBL_ENTRY)&_ZN6dd44023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24402[];
+extern VTBL_ENTRY _ZTV7ee24402[];
+Class_Descriptor cd_ee24402 = { "ee24402", // class name
+ bases_ee24402, 4,
+ &(vtc_ee24402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34402 : virtual dd4402 {
+ int e;
+ virtual void foo(); // _ZN7ee344023fooEv
+ ~ee34402(); // tgen
+ ee34402(); // tgen
+};
+//SIG(1 ee34402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34402 ::foo(){vfunc_called(this, "_ZN7ee344023fooEv");}
+ee34402 ::~ee34402(){ note_dtor("ee34402", this);} // tgen
+ee34402 ::ee34402(){ note_ctor("ee34402", this);} // tgen
+
+static void Test_ee34402()
+{
+ extern Class_Descriptor cd_ee34402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34402, buf);
+ ee34402 *dp, &lv = *(dp=new (buf) ee34402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd4402*), ABISELECT(16,8), "ee34402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd4402*), ABISELECT(16,8), "ee34402");
+ check_base_class_offset(lv, (cc402*)(dd4402*), ABISELECT(16,8), "ee34402");
+ check_base_class_offset(lv, (dd4402*), ABISELECT(16,8), "ee34402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34402.e");
+ test_class_info(&lv, &cd_ee34402);
+ dp->~ee34402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34402(Test_ee34402, "ee34402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34402C1Ev();
+extern void _ZN7ee34402D1Ev();
+Name_Map name_map_ee34402[] = {
+ NSPAIR(_ZN7ee34402C1Ev),
+ NSPAIR(_ZN7ee34402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd4402;
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+static Base_Class bases_ee34402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34402[];
+extern void _ZN7ee344023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344023fooEv,_ZTv0_n12_N7ee344023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee344023fooEv,_ZThn8_N7ee344023fooEv)() __attribute__((weak));
+extern void _ZN6dd44023barEv();
+static VTBL_ENTRY vtc_ee34402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34402[0]),
+ (VTBL_ENTRY)&_ZN7ee344023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344023fooEv,_ZTv0_n12_N7ee344023fooEv),
+ (VTBL_ENTRY)&_ZN6dd44023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34402[];
+static VTT_ENTRY vtt_ee34402[] = {
+ {&(_ZTV7ee34402[3]), 3,10},
+ {&(_ZTV7ee34402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34402[];
+extern VTBL_ENTRY _ZTV7ee34402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34402[];
+static VTBL_ENTRY alt_thunk_names942[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344023fooEv,_ZTv0_n12_N7ee344023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee344023fooEv,_ZThn8_N7ee344023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34402 = { "ee34402", // class name
+ bases_ee34402, 4,
+ &(vtc_ee34402[0]), // expected_vtbl_contents
+ &(vtt_ee34402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names942,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44402 : dd4402 {
+ int e;
+ virtual void bar(); // _ZN7ee444023barEv
+ ~ee44402(); // tgen
+ ee44402(); // tgen
+};
+//SIG(1 ee44402) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44402 ::bar(){vfunc_called(this, "_ZN7ee444023barEv");}
+ee44402 ::~ee44402(){ note_dtor("ee44402", this);} // tgen
+ee44402 ::ee44402(){ note_ctor("ee44402", this);} // tgen
+
+static void Test_ee44402()
+{
+ extern Class_Descriptor cd_ee44402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44402, buf);
+ ee44402 *dp, &lv = *(dp=new (buf) ee44402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd4402*), 0, "ee44402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd4402*), 0, "ee44402");
+ check_base_class_offset(lv, (cc402*)(dd4402*), 0, "ee44402");
+ check_base_class_offset(lv, (dd4402*), 0, "ee44402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44402.e");
+ test_class_info(&lv, &cd_ee44402);
+ dp->~ee44402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44402(Test_ee44402, "ee44402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44402C1Ev();
+extern void _ZN7ee44402D1Ev();
+Name_Map name_map_ee44402[] = {
+ NSPAIR(_ZN7ee44402C1Ev),
+ NSPAIR(_ZN7ee44402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd4402;
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+static Base_Class bases_ee44402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44402[];
+extern void _ZN3aa23fooEv();
+extern void _ZN7ee444023barEv();
+static VTBL_ENTRY vtc_ee44402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN7ee444023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44402[];
+extern VTBL_ENTRY _ZTV7ee44402[];
+Class_Descriptor cd_ee44402 = { "ee44402", // class name
+ bases_ee44402, 4,
+ &(vtc_ee44402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54402 : virtual dd4402 {
+ int e;
+ virtual void bar(); // _ZN7ee544023barEv
+ ~ee54402(); // tgen
+ ee54402(); // tgen
+};
+//SIG(1 ee54402) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54402 ::bar(){vfunc_called(this, "_ZN7ee544023barEv");}
+ee54402 ::~ee54402(){ note_dtor("ee54402", this);} // tgen
+ee54402 ::ee54402(){ note_ctor("ee54402", this);} // tgen
+
+static void Test_ee54402()
+{
+ extern Class_Descriptor cd_ee54402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54402, buf);
+ ee54402 *dp, &lv = *(dp=new (buf) ee54402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd4402*), ABISELECT(16,8), "ee54402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd4402*), ABISELECT(16,8), "ee54402");
+ check_base_class_offset(lv, (cc402*)(dd4402*), ABISELECT(16,8), "ee54402");
+ check_base_class_offset(lv, (dd4402*), ABISELECT(16,8), "ee54402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54402.e");
+ test_class_info(&lv, &cd_ee54402);
+ dp->~ee54402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54402(Test_ee54402, "ee54402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54402C1Ev();
+extern void _ZN7ee54402D1Ev();
+Name_Map name_map_ee54402[] = {
+ NSPAIR(_ZN7ee54402C1Ev),
+ NSPAIR(_ZN7ee54402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd4402;
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+static Base_Class bases_ee54402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54402[];
+extern void _ZN7ee544023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544023barEv,_ZTv0_n16_N7ee544023barEv)();
+extern void ABISELECT(_ZThn16_N7ee544023barEv,_ZThn8_N7ee544023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54402[0]),
+ (VTBL_ENTRY)&_ZN7ee544023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544023barEv,_ZTv0_n16_N7ee544023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54402[];
+static VTT_ENTRY vtt_ee54402[] = {
+ {&(_ZTV7ee54402[3]), 3,10},
+ {&(_ZTV7ee54402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54402[];
+extern VTBL_ENTRY _ZTV7ee54402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54402[];
+static VTBL_ENTRY alt_thunk_names943[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544023barEv,_ZTv0_n16_N7ee544023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544023barEv,_ZThn8_N7ee544023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54402 = { "ee54402", // class name
+ bases_ee54402, 4,
+ &(vtc_ee54402[0]), // expected_vtbl_contents
+ &(vtt_ee54402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names943,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64402 : dd4402 {
+ int e;
+ virtual void foo(); // _ZN7ee644023fooEv
+ virtual void bar(); // _ZN7ee644023barEv
+ ~ee64402(); // tgen
+ ee64402(); // tgen
+};
+//SIG(1 ee64402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64402 ::foo(){vfunc_called(this, "_ZN7ee644023fooEv");}
+void ee64402 ::bar(){vfunc_called(this, "_ZN7ee644023barEv");}
+ee64402 ::~ee64402(){ note_dtor("ee64402", this);} // tgen
+ee64402 ::ee64402(){ note_ctor("ee64402", this);} // tgen
+
+static void Test_ee64402()
+{
+ extern Class_Descriptor cd_ee64402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64402, buf);
+ ee64402 *dp, &lv = *(dp=new (buf) ee64402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd4402*), 0, "ee64402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd4402*), 0, "ee64402");
+ check_base_class_offset(lv, (cc402*)(dd4402*), 0, "ee64402");
+ check_base_class_offset(lv, (dd4402*), 0, "ee64402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64402.e");
+ test_class_info(&lv, &cd_ee64402);
+ dp->~ee64402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64402(Test_ee64402, "ee64402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64402C1Ev();
+extern void _ZN7ee64402D1Ev();
+Name_Map name_map_ee64402[] = {
+ NSPAIR(_ZN7ee64402C1Ev),
+ NSPAIR(_ZN7ee64402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd4402;
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+static Base_Class bases_ee64402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64402[];
+extern void _ZN7ee644023fooEv();
+extern void _ZN7ee644023barEv();
+static VTBL_ENTRY vtc_ee64402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64402[0]),
+ (VTBL_ENTRY)&_ZN7ee644023fooEv,
+ (VTBL_ENTRY)&_ZN7ee644023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64402[];
+extern VTBL_ENTRY _ZTV7ee64402[];
+Class_Descriptor cd_ee64402 = { "ee64402", // class name
+ bases_ee64402, 4,
+ &(vtc_ee64402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74402 : virtual dd4402 {
+ int e;
+ virtual void foo(); // _ZN7ee744023fooEv
+ virtual void bar(); // _ZN7ee744023barEv
+ ~ee74402(); // tgen
+ ee74402(); // tgen
+};
+//SIG(1 ee74402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74402 ::foo(){vfunc_called(this, "_ZN7ee744023fooEv");}
+void ee74402 ::bar(){vfunc_called(this, "_ZN7ee744023barEv");}
+ee74402 ::~ee74402(){ note_dtor("ee74402", this);} // tgen
+ee74402 ::ee74402(){ note_ctor("ee74402", this);} // tgen
+
+static void Test_ee74402()
+{
+ extern Class_Descriptor cd_ee74402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74402, buf);
+ ee74402 *dp, &lv = *(dp=new (buf) ee74402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd4402*), ABISELECT(16,8), "ee74402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd4402*), ABISELECT(16,8), "ee74402");
+ check_base_class_offset(lv, (cc402*)(dd4402*), ABISELECT(16,8), "ee74402");
+ check_base_class_offset(lv, (dd4402*), ABISELECT(16,8), "ee74402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74402.e");
+ test_class_info(&lv, &cd_ee74402);
+ dp->~ee74402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74402(Test_ee74402, "ee74402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74402C1Ev();
+extern void _ZN7ee74402D1Ev();
+Name_Map name_map_ee74402[] = {
+ NSPAIR(_ZN7ee74402C1Ev),
+ NSPAIR(_ZN7ee74402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd4402;
+extern VTBL_ENTRY _ZTI6dd4402[];
+extern VTBL_ENTRY _ZTV6dd4402[];
+static Base_Class bases_ee74402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74402[];
+extern void _ZN7ee744023fooEv();
+extern void _ZN7ee744023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee744023fooEv,_ZTv0_n12_N7ee744023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee744023fooEv,_ZThn8_N7ee744023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744023barEv,_ZTv0_n16_N7ee744023barEv)();
+extern void ABISELECT(_ZThn16_N7ee744023barEv,_ZThn8_N7ee744023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74402[0]),
+ (VTBL_ENTRY)&_ZN7ee744023fooEv,
+ (VTBL_ENTRY)&_ZN7ee744023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744023fooEv,_ZTv0_n12_N7ee744023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744023barEv,_ZTv0_n16_N7ee744023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74402[];
+static VTT_ENTRY vtt_ee74402[] = {
+ {&(_ZTV7ee74402[3]), 3,11},
+ {&(_ZTV7ee74402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74402[];
+extern VTBL_ENTRY _ZTV7ee74402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74402[];
+static VTBL_ENTRY alt_thunk_names944[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744023barEv,_ZTv0_n16_N7ee744023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744023barEv,_ZThn8_N7ee744023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744023fooEv,_ZTv0_n12_N7ee744023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744023fooEv,_ZThn8_N7ee744023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74402 = { "ee74402", // class name
+ bases_ee74402, 4,
+ &(vtc_ee74402[0]), // expected_vtbl_contents
+ &(vtt_ee74402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names944,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5402 : virtual cc402 {
+ int d;
+ virtual void bar(); // _ZN6dd54023barEv
+ ~dd5402(); // tgen
+ dd5402(); // tgen
+};
+//SIG(-1 dd5402) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd5402 ::bar(){vfunc_called(this, "_ZN6dd54023barEv");}
+dd5402 ::~dd5402(){ note_dtor("dd5402", this);} // tgen
+dd5402 ::dd5402(){ note_ctor("dd5402", this);} // tgen
+
+static void Test_dd5402()
+{
+ extern Class_Descriptor cd_dd5402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5402, buf);
+ dd5402 *dp, &lv = *(dp=new (buf) dd5402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,8), "dd5402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,8), "dd5402");
+ check_base_class_offset(lv, (cc402*), ABISELECT(16,8), "dd5402");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5402.d");
+ test_class_info(&lv, &cd_dd5402);
+ dp->~dd5402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5402(Test_dd5402, "dd5402", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5402C1Ev();
+extern void _ZN6dd5402D1Ev();
+Name_Map name_map_dd5402[] = {
+ NSPAIR(_ZN6dd5402C1Ev),
+ NSPAIR(_ZN6dd5402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+static Base_Class bases_dd5402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern void _ZN6dd54023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5402[];
+static VTT_ENTRY vtt_dd5402[] = {
+ {&(_ZTV6dd5402[3]), 3,10},
+ {&(_ZTV6dd5402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static VTBL_ENTRY alt_thunk_names945[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5402 = { "dd5402", // class name
+ bases_dd5402, 3,
+ &(vtc_dd5402[0]), // expected_vtbl_contents
+ &(vtt_dd5402[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5402),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names945,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05402 : dd5402 {
+ int e;
+ ~ee05402(); // tgen
+ ee05402(); // tgen
+};
+//SIG(1 ee05402) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05402 ::~ee05402(){ note_dtor("ee05402", this);} // tgen
+ee05402 ::ee05402(){ note_ctor("ee05402", this);} // tgen
+
+static void Test_ee05402()
+{
+ extern Class_Descriptor cd_ee05402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05402, buf);
+ ee05402 *dp, &lv = *(dp=new (buf) ee05402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee05402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee05402");
+ check_base_class_offset(lv, (cc402*)(dd5402*), ABISELECT(16,12), "ee05402");
+ check_base_class_offset(lv, (dd5402*), 0, "ee05402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05402.e");
+ test_class_info(&lv, &cd_ee05402);
+ dp->~ee05402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05402(Test_ee05402, "ee05402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05402C1Ev();
+extern void _ZN7ee05402D1Ev();
+Name_Map name_map_ee05402[] = {
+ NSPAIR(_ZN7ee05402C1Ev),
+ NSPAIR(_ZN7ee05402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd5402;
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static Base_Class bases_ee05402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05402[];
+extern void _ZN6dd54023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05402[];
+extern void _ZN6dd54023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5402__7ee05402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd5402__7ee05402[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+static VTT_ENTRY vtt_ee05402[] = {
+ {&(_ZTV7ee05402[3]), 3,10},
+ {&(_tg__ZTV6dd5402__7ee05402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd5402__7ee05402[4]), 4,6},
+ {&(_ZTV7ee05402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05402[];
+extern VTBL_ENTRY _ZTV7ee05402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05402[];
+static VTBL_ENTRY alt_thunk_names946[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05402 = { "ee05402", // class name
+ bases_ee05402, 4,
+ &(vtc_ee05402[0]), // expected_vtbl_contents
+ &(vtt_ee05402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names946,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15402 : virtual dd5402 {
+ int e;
+ ~ee15402(); // tgen
+ ee15402(); // tgen
+};
+//SIG(1 ee15402) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15402 ::~ee15402(){ note_dtor("ee15402", this);} // tgen
+ee15402 ::ee15402(){ note_ctor("ee15402", this);} // tgen
+
+static void Test_ee15402()
+{
+ extern Class_Descriptor cd_ee15402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15402, buf);
+ ee15402 *dp, &lv = *(dp=new (buf) ee15402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee15402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee15402");
+ check_base_class_offset(lv, (cc402*)(dd5402*), ABISELECT(32,16), "ee15402");
+ check_base_class_offset(lv, (dd5402*), ABISELECT(16,8), "ee15402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15402.e");
+ test_class_info(&lv, &cd_ee15402);
+ dp->~ee15402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15402(Test_ee15402, "ee15402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15402C1Ev();
+extern void _ZN7ee15402D1Ev();
+Name_Map name_map_ee15402[] = {
+ NSPAIR(_ZN7ee15402C1Ev),
+ NSPAIR(_ZN7ee15402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd5402;
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static Base_Class bases_ee15402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15402[];
+extern void _ZN6dd54023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15402[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15402[];
+extern void _ZN6dd54023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5402__7ee15402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd5402__7ee15402[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+static VTT_ENTRY vtt_ee15402[] = {
+ {&(_ZTV7ee15402[4]), 4,15},
+ {&(_ZTV7ee15402[8]), 8,15},
+ {&(_ZTV7ee15402[13]), 13,15},
+ {&(_tg__ZTV6dd5402__7ee15402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd5402__7ee15402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15402[];
+extern VTBL_ENTRY _ZTV7ee15402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15402[];
+static VTBL_ENTRY alt_thunk_names947[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15402 = { "ee15402", // class name
+ bases_ee15402, 4,
+ &(vtc_ee15402[0]), // expected_vtbl_contents
+ &(vtt_ee15402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15402),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names947,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25402 : dd5402 {
+ int e;
+ virtual void foo(); // _ZN7ee254023fooEv
+ ~ee25402(); // tgen
+ ee25402(); // tgen
+};
+//SIG(1 ee25402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25402 ::foo(){vfunc_called(this, "_ZN7ee254023fooEv");}
+ee25402 ::~ee25402(){ note_dtor("ee25402", this);} // tgen
+ee25402 ::ee25402(){ note_ctor("ee25402", this);} // tgen
+
+static void Test_ee25402()
+{
+ extern Class_Descriptor cd_ee25402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25402, buf);
+ ee25402 *dp, &lv = *(dp=new (buf) ee25402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee25402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee25402");
+ check_base_class_offset(lv, (cc402*)(dd5402*), ABISELECT(16,12), "ee25402");
+ check_base_class_offset(lv, (dd5402*), 0, "ee25402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25402.e");
+ test_class_info(&lv, &cd_ee25402);
+ dp->~ee25402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25402(Test_ee25402, "ee25402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25402C1Ev();
+extern void _ZN7ee25402D1Ev();
+Name_Map name_map_ee25402[] = {
+ NSPAIR(_ZN7ee25402C1Ev),
+ NSPAIR(_ZN7ee25402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd5402;
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static Base_Class bases_ee25402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25402[];
+extern void _ZN6dd54023barEv();
+extern void _ZN7ee254023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee254023fooEv,_ZTv0_n12_N7ee254023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee254023fooEv,_ZThn12_N7ee254023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+ (VTBL_ENTRY)&_ZN7ee254023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254023fooEv,_ZTv0_n12_N7ee254023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25402[];
+extern void _ZN6dd54023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5402__7ee25402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd5402__7ee25402[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+static VTT_ENTRY vtt_ee25402[] = {
+ {&(_ZTV7ee25402[3]), 3,11},
+ {&(_tg__ZTV6dd5402__7ee25402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd5402__7ee25402[4]), 4,6},
+ {&(_ZTV7ee25402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25402[];
+extern VTBL_ENTRY _ZTV7ee25402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25402[];
+static VTBL_ENTRY alt_thunk_names948[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254023fooEv,_ZTv0_n12_N7ee254023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee254023fooEv,_ZThn12_N7ee254023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25402 = { "ee25402", // class name
+ bases_ee25402, 4,
+ &(vtc_ee25402[0]), // expected_vtbl_contents
+ &(vtt_ee25402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names948,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35402 : virtual dd5402 {
+ int e;
+ virtual void foo(); // _ZN7ee354023fooEv
+ ~ee35402(); // tgen
+ ee35402(); // tgen
+};
+//SIG(1 ee35402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35402 ::foo(){vfunc_called(this, "_ZN7ee354023fooEv");}
+ee35402 ::~ee35402(){ note_dtor("ee35402", this);} // tgen
+ee35402 ::ee35402(){ note_ctor("ee35402", this);} // tgen
+
+static void Test_ee35402()
+{
+ extern Class_Descriptor cd_ee35402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35402, buf);
+ ee35402 *dp, &lv = *(dp=new (buf) ee35402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee35402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee35402");
+ check_base_class_offset(lv, (cc402*)(dd5402*), ABISELECT(32,16), "ee35402");
+ check_base_class_offset(lv, (dd5402*), ABISELECT(16,8), "ee35402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35402.e");
+ test_class_info(&lv, &cd_ee35402);
+ dp->~ee35402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35402(Test_ee35402, "ee35402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35402C1Ev();
+extern void _ZN7ee35402D1Ev();
+Name_Map name_map_ee35402[] = {
+ NSPAIR(_ZN7ee35402C1Ev),
+ NSPAIR(_ZN7ee35402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd5402;
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static Base_Class bases_ee35402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35402[];
+extern void _ZN7ee354023fooEv();
+extern void _ZN6dd54023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee354023fooEv,_ZTv0_n12_N7ee354023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee354023fooEv,_ZThn16_N7ee354023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35402[0]),
+ (VTBL_ENTRY)&_ZN7ee354023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354023fooEv,_ZTv0_n12_N7ee354023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35402[];
+extern void _ZN6dd54023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5402__7ee35402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd5402__7ee35402[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+static VTT_ENTRY vtt_ee35402[] = {
+ {&(_ZTV7ee35402[4]), 4,16},
+ {&(_ZTV7ee35402[9]), 9,16},
+ {&(_ZTV7ee35402[14]), 14,16},
+ {&(_tg__ZTV6dd5402__7ee35402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd5402__7ee35402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35402[];
+extern VTBL_ENTRY _ZTV7ee35402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35402[];
+static VTBL_ENTRY alt_thunk_names949[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354023fooEv,_ZTv0_n12_N7ee354023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee354023fooEv,_ZThn16_N7ee354023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35402 = { "ee35402", // class name
+ bases_ee35402, 4,
+ &(vtc_ee35402[0]), // expected_vtbl_contents
+ &(vtt_ee35402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35402),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names949,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45402 : dd5402 {
+ int e;
+ virtual void bar(); // _ZN7ee454023barEv
+ ~ee45402(); // tgen
+ ee45402(); // tgen
+};
+//SIG(1 ee45402) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45402 ::bar(){vfunc_called(this, "_ZN7ee454023barEv");}
+ee45402 ::~ee45402(){ note_dtor("ee45402", this);} // tgen
+ee45402 ::ee45402(){ note_ctor("ee45402", this);} // tgen
+
+static void Test_ee45402()
+{
+ extern Class_Descriptor cd_ee45402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45402, buf);
+ ee45402 *dp, &lv = *(dp=new (buf) ee45402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee45402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee45402");
+ check_base_class_offset(lv, (cc402*)(dd5402*), ABISELECT(16,12), "ee45402");
+ check_base_class_offset(lv, (dd5402*), 0, "ee45402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45402.e");
+ test_class_info(&lv, &cd_ee45402);
+ dp->~ee45402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45402(Test_ee45402, "ee45402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45402C1Ev();
+extern void _ZN7ee45402D1Ev();
+Name_Map name_map_ee45402[] = {
+ NSPAIR(_ZN7ee45402C1Ev),
+ NSPAIR(_ZN7ee45402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd5402;
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static Base_Class bases_ee45402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45402[];
+extern void _ZN7ee454023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454023barEv,_ZTv0_n16_N7ee454023barEv)();
+extern void ABISELECT(_ZThn16_N7ee454023barEv,_ZThn12_N7ee454023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45402[0]),
+ (VTBL_ENTRY)&_ZN7ee454023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454023barEv,_ZTv0_n16_N7ee454023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45402[];
+extern void _ZN6dd54023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5402__7ee45402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd5402__7ee45402[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+static VTT_ENTRY vtt_ee45402[] = {
+ {&(_ZTV7ee45402[3]), 3,10},
+ {&(_tg__ZTV6dd5402__7ee45402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd5402__7ee45402[4]), 4,6},
+ {&(_ZTV7ee45402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45402[];
+extern VTBL_ENTRY _ZTV7ee45402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45402[];
+static VTBL_ENTRY alt_thunk_names950[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454023barEv,_ZTv0_n16_N7ee454023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454023barEv,_ZThn12_N7ee454023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45402 = { "ee45402", // class name
+ bases_ee45402, 4,
+ &(vtc_ee45402[0]), // expected_vtbl_contents
+ &(vtt_ee45402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names950,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55402 : virtual dd5402 {
+ int e;
+ virtual void bar(); // _ZN7ee554023barEv
+ ~ee55402(); // tgen
+ ee55402(); // tgen
+};
+//SIG(1 ee55402) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55402 ::bar(){vfunc_called(this, "_ZN7ee554023barEv");}
+ee55402 ::~ee55402(){ note_dtor("ee55402", this);} // tgen
+ee55402 ::ee55402(){ note_ctor("ee55402", this);} // tgen
+
+static void Test_ee55402()
+{
+ extern Class_Descriptor cd_ee55402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55402, buf);
+ ee55402 *dp, &lv = *(dp=new (buf) ee55402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee55402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee55402");
+ check_base_class_offset(lv, (cc402*)(dd5402*), ABISELECT(32,16), "ee55402");
+ check_base_class_offset(lv, (dd5402*), ABISELECT(16,8), "ee55402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55402.e");
+ test_class_info(&lv, &cd_ee55402);
+ dp->~ee55402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55402(Test_ee55402, "ee55402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55402C1Ev();
+extern void _ZN7ee55402D1Ev();
+Name_Map name_map_ee55402[] = {
+ NSPAIR(_ZN7ee55402C1Ev),
+ NSPAIR(_ZN7ee55402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd5402;
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static Base_Class bases_ee55402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55402[];
+extern void _ZN7ee554023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554023barEv,_ZTv0_n16_N7ee554023barEv)();
+extern void ABISELECT(_ZThn16_N7ee554023barEv,_ZThn8_N7ee554023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554023barEv,_ZTv0_n16_N7ee554023barEv)();
+extern void ABISELECT(_ZThn32_N7ee554023barEv,_ZThn16_N7ee554023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55402[0]),
+ (VTBL_ENTRY)&_ZN7ee554023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554023barEv,_ZTv0_n16_N7ee554023barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554023barEv,_ZTv0_n16_N7ee554023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55402[];
+extern void _ZN6dd54023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5402__7ee55402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd5402__7ee55402[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+static VTT_ENTRY vtt_ee55402[] = {
+ {&(_ZTV7ee55402[4]), 4,16},
+ {&(_ZTV7ee55402[9]), 9,16},
+ {&(_ZTV7ee55402[14]), 14,16},
+ {&(_tg__ZTV6dd5402__7ee55402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd5402__7ee55402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55402[];
+extern VTBL_ENTRY _ZTV7ee55402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55402[];
+static VTBL_ENTRY alt_thunk_names951[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554023barEv,_ZTv0_n16_N7ee554023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554023barEv,_ZThn16_N7ee554023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554023barEv,_ZThn8_N7ee554023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55402 = { "ee55402", // class name
+ bases_ee55402, 4,
+ &(vtc_ee55402[0]), // expected_vtbl_contents
+ &(vtt_ee55402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55402),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names951,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65402 : dd5402 {
+ int e;
+ virtual void foo(); // _ZN7ee654023fooEv
+ virtual void bar(); // _ZN7ee654023barEv
+ ~ee65402(); // tgen
+ ee65402(); // tgen
+};
+//SIG(1 ee65402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65402 ::foo(){vfunc_called(this, "_ZN7ee654023fooEv");}
+void ee65402 ::bar(){vfunc_called(this, "_ZN7ee654023barEv");}
+ee65402 ::~ee65402(){ note_dtor("ee65402", this);} // tgen
+ee65402 ::ee65402(){ note_ctor("ee65402", this);} // tgen
+
+static void Test_ee65402()
+{
+ extern Class_Descriptor cd_ee65402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65402, buf);
+ ee65402 *dp, &lv = *(dp=new (buf) ee65402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee65402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee65402");
+ check_base_class_offset(lv, (cc402*)(dd5402*), ABISELECT(16,12), "ee65402");
+ check_base_class_offset(lv, (dd5402*), 0, "ee65402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65402.e");
+ test_class_info(&lv, &cd_ee65402);
+ dp->~ee65402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65402(Test_ee65402, "ee65402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65402C1Ev();
+extern void _ZN7ee65402D1Ev();
+Name_Map name_map_ee65402[] = {
+ NSPAIR(_ZN7ee65402C1Ev),
+ NSPAIR(_ZN7ee65402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd5402;
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static Base_Class bases_ee65402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65402[];
+extern void _ZN7ee654023barEv();
+extern void _ZN7ee654023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee654023fooEv,_ZTv0_n12_N7ee654023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee654023fooEv,_ZThn12_N7ee654023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654023barEv,_ZTv0_n16_N7ee654023barEv)();
+extern void ABISELECT(_ZThn16_N7ee654023barEv,_ZThn12_N7ee654023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65402[0]),
+ (VTBL_ENTRY)&_ZN7ee654023barEv,
+ (VTBL_ENTRY)&_ZN7ee654023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654023fooEv,_ZTv0_n12_N7ee654023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654023barEv,_ZTv0_n16_N7ee654023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65402[];
+extern void _ZN6dd54023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5402__7ee65402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd5402__7ee65402[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+static VTT_ENTRY vtt_ee65402[] = {
+ {&(_ZTV7ee65402[3]), 3,11},
+ {&(_tg__ZTV6dd5402__7ee65402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd5402__7ee65402[4]), 4,6},
+ {&(_ZTV7ee65402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65402[];
+extern VTBL_ENTRY _ZTV7ee65402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65402[];
+static VTBL_ENTRY alt_thunk_names952[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn12_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654023barEv,_ZTv0_n16_N7ee654023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654023barEv,_ZThn12_N7ee654023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654023fooEv,_ZTv0_n12_N7ee654023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654023fooEv,_ZThn12_N7ee654023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65402 = { "ee65402", // class name
+ bases_ee65402, 4,
+ &(vtc_ee65402[0]), // expected_vtbl_contents
+ &(vtt_ee65402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names952,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75402 : virtual dd5402 {
+ int e;
+ virtual void foo(); // _ZN7ee754023fooEv
+ virtual void bar(); // _ZN7ee754023barEv
+ ~ee75402(); // tgen
+ ee75402(); // tgen
+};
+//SIG(1 ee75402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75402 ::foo(){vfunc_called(this, "_ZN7ee754023fooEv");}
+void ee75402 ::bar(){vfunc_called(this, "_ZN7ee754023barEv");}
+ee75402 ::~ee75402(){ note_dtor("ee75402", this);} // tgen
+ee75402 ::ee75402(){ note_ctor("ee75402", this);} // tgen
+
+static void Test_ee75402()
+{
+ extern Class_Descriptor cd_ee75402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75402, buf);
+ ee75402 *dp, &lv = *(dp=new (buf) ee75402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee75402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee75402");
+ check_base_class_offset(lv, (cc402*)(dd5402*), ABISELECT(32,16), "ee75402");
+ check_base_class_offset(lv, (dd5402*), ABISELECT(16,8), "ee75402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75402.e");
+ test_class_info(&lv, &cd_ee75402);
+ dp->~ee75402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75402(Test_ee75402, "ee75402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75402C1Ev();
+extern void _ZN7ee75402D1Ev();
+Name_Map name_map_ee75402[] = {
+ NSPAIR(_ZN7ee75402C1Ev),
+ NSPAIR(_ZN7ee75402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd5402;
+extern VTBL_ENTRY _ZTI6dd5402[];
+extern VTBL_ENTRY _ZTV6dd5402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5402[];
+static Base_Class bases_ee75402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5402, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75402[];
+extern void _ZN7ee754023fooEv();
+extern void _ZN7ee754023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee754023barEv,_ZTv0_n16_N7ee754023barEv)();
+extern void ABISELECT(_ZThn16_N7ee754023barEv,_ZThn8_N7ee754023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754023fooEv,_ZTv0_n12_N7ee754023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee754023fooEv,_ZThn16_N7ee754023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754023barEv,_ZTv0_n16_N7ee754023barEv)();
+extern void ABISELECT(_ZThn32_N7ee754023barEv,_ZThn16_N7ee754023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75402[0]),
+ (VTBL_ENTRY)&_ZN7ee754023fooEv,
+ (VTBL_ENTRY)&_ZN7ee754023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754023barEv,_ZTv0_n16_N7ee754023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754023fooEv,_ZTv0_n12_N7ee754023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754023barEv,_ZTv0_n16_N7ee754023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75402[];
+extern void _ZN6dd54023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5402__7ee75402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN6dd54023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv)();
+extern void ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd5402__7ee75402[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5402[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv),
+};
+static VTT_ENTRY vtt_ee75402[] = {
+ {&(_ZTV7ee75402[4]), 4,17},
+ {&(_ZTV7ee75402[10]), 10,17},
+ {&(_ZTV7ee75402[15]), 15,17},
+ {&(_tg__ZTV6dd5402__7ee75402[3]), 3,4},
+ {&(_tg__ZTV5cc402__6dd5402__7ee75402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75402[];
+extern VTBL_ENTRY _ZTV7ee75402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75402[];
+static VTBL_ENTRY alt_thunk_names953[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54023barEv,_ZTv0_n16_N6dd54023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54023barEv,_ZThn8_N6dd54023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754023fooEv,_ZTv0_n12_N7ee754023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754023fooEv,_ZThn16_N7ee754023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754023barEv,_ZTv0_n16_N7ee754023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754023barEv,_ZThn16_N7ee754023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754023barEv,_ZThn8_N7ee754023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75402 = { "ee75402", // class name
+ bases_ee75402, 4,
+ &(vtc_ee75402[0]), // expected_vtbl_contents
+ &(vtt_ee75402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75402),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names953,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6402 : cc402 {
+ int d;
+ virtual void bar(); // _ZN6dd64023barEv
+ virtual void foo(); // _ZN6dd64023fooEv
+ ~dd6402(); // tgen
+ dd6402(); // tgen
+};
+//SIG(-1 dd6402) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6402 ::bar(){vfunc_called(this, "_ZN6dd64023barEv");}
+void dd6402 ::foo(){vfunc_called(this, "_ZN6dd64023fooEv");}
+dd6402 ::~dd6402(){ note_dtor("dd6402", this);} // tgen
+dd6402 ::dd6402(){ note_ctor("dd6402", this);} // tgen
+
+static void Test_dd6402()
+{
+ extern Class_Descriptor cd_dd6402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6402, buf);
+ dd6402 *dp, &lv = *(dp=new (buf) dd6402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), 0, "dd6402");
+ check_base_class_offset(lv, (bb02*)(cc402*), 0, "dd6402");
+ check_base_class_offset(lv, (cc402*), 0, "dd6402");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6402.d");
+ test_class_info(&lv, &cd_dd6402);
+ dp->~dd6402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6402(Test_dd6402, "dd6402", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6402C1Ev();
+extern void _ZN6dd6402D1Ev();
+Name_Map name_map_dd6402[] = {
+ NSPAIR(_ZN6dd6402C1Ev),
+ NSPAIR(_ZN6dd6402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+static Base_Class bases_dd6402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern void _ZN6dd64023fooEv();
+extern void _ZN6dd64023barEv();
+static VTBL_ENTRY vtc_dd6402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6402[0]),
+ (VTBL_ENTRY)&_ZN6dd64023fooEv,
+ (VTBL_ENTRY)&_ZN6dd64023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+Class_Descriptor cd_dd6402 = { "dd6402", // class name
+ bases_dd6402, 3,
+ &(vtc_dd6402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06402 : dd6402 {
+ int e;
+ ~ee06402(); // tgen
+ ee06402(); // tgen
+};
+//SIG(1 ee06402) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06402 ::~ee06402(){ note_dtor("ee06402", this);} // tgen
+ee06402 ::ee06402(){ note_ctor("ee06402", this);} // tgen
+
+static void Test_ee06402()
+{
+ extern Class_Descriptor cd_ee06402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06402, buf);
+ ee06402 *dp, &lv = *(dp=new (buf) ee06402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd6402*), 0, "ee06402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd6402*), 0, "ee06402");
+ check_base_class_offset(lv, (cc402*)(dd6402*), 0, "ee06402");
+ check_base_class_offset(lv, (dd6402*), 0, "ee06402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06402.e");
+ test_class_info(&lv, &cd_ee06402);
+ dp->~ee06402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06402(Test_ee06402, "ee06402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06402C1Ev();
+extern void _ZN7ee06402D1Ev();
+Name_Map name_map_ee06402[] = {
+ NSPAIR(_ZN7ee06402C1Ev),
+ NSPAIR(_ZN7ee06402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd6402;
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+static Base_Class bases_ee06402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6402, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06402[];
+extern void _ZN6dd64023fooEv();
+extern void _ZN6dd64023barEv();
+static VTBL_ENTRY vtc_ee06402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06402[0]),
+ (VTBL_ENTRY)&_ZN6dd64023fooEv,
+ (VTBL_ENTRY)&_ZN6dd64023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06402[];
+extern VTBL_ENTRY _ZTV7ee06402[];
+Class_Descriptor cd_ee06402 = { "ee06402", // class name
+ bases_ee06402, 4,
+ &(vtc_ee06402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16402 : virtual dd6402 {
+ int e;
+ ~ee16402(); // tgen
+ ee16402(); // tgen
+};
+//SIG(1 ee16402) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16402 ::~ee16402(){ note_dtor("ee16402", this);} // tgen
+ee16402 ::ee16402(){ note_ctor("ee16402", this);} // tgen
+
+static void Test_ee16402()
+{
+ extern Class_Descriptor cd_ee16402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16402, buf);
+ ee16402 *dp, &lv = *(dp=new (buf) ee16402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd6402*), ABISELECT(16,8), "ee16402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd6402*), ABISELECT(16,8), "ee16402");
+ check_base_class_offset(lv, (cc402*)(dd6402*), ABISELECT(16,8), "ee16402");
+ check_base_class_offset(lv, (dd6402*), ABISELECT(16,8), "ee16402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16402.e");
+ test_class_info(&lv, &cd_ee16402);
+ dp->~ee16402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16402(Test_ee16402, "ee16402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16402C1Ev();
+extern void _ZN7ee16402D1Ev();
+Name_Map name_map_ee16402[] = {
+ NSPAIR(_ZN7ee16402C1Ev),
+ NSPAIR(_ZN7ee16402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd6402;
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+static Base_Class bases_ee16402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6402, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16402[];
+extern void _ZN6dd64023fooEv();
+extern void _ZN6dd64023barEv();
+static VTBL_ENTRY vtc_ee16402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16402[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16402[0]),
+ (VTBL_ENTRY)&_ZN6dd64023fooEv,
+ (VTBL_ENTRY)&_ZN6dd64023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16402[];
+static VTT_ENTRY vtt_ee16402[] = {
+ {&(_ZTV7ee16402[3]), 3,9},
+ {&(_ZTV7ee16402[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16402[];
+extern VTBL_ENTRY _ZTV7ee16402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16402[];
+Class_Descriptor cd_ee16402 = { "ee16402", // class name
+ bases_ee16402, 4,
+ &(vtc_ee16402[0]), // expected_vtbl_contents
+ &(vtt_ee16402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16402),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26402 : dd6402 {
+ int e;
+ virtual void foo(); // _ZN7ee264023fooEv
+ ~ee26402(); // tgen
+ ee26402(); // tgen
+};
+//SIG(1 ee26402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26402 ::foo(){vfunc_called(this, "_ZN7ee264023fooEv");}
+ee26402 ::~ee26402(){ note_dtor("ee26402", this);} // tgen
+ee26402 ::ee26402(){ note_ctor("ee26402", this);} // tgen
+
+static void Test_ee26402()
+{
+ extern Class_Descriptor cd_ee26402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26402, buf);
+ ee26402 *dp, &lv = *(dp=new (buf) ee26402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd6402*), 0, "ee26402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd6402*), 0, "ee26402");
+ check_base_class_offset(lv, (cc402*)(dd6402*), 0, "ee26402");
+ check_base_class_offset(lv, (dd6402*), 0, "ee26402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26402.e");
+ test_class_info(&lv, &cd_ee26402);
+ dp->~ee26402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26402(Test_ee26402, "ee26402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26402C1Ev();
+extern void _ZN7ee26402D1Ev();
+Name_Map name_map_ee26402[] = {
+ NSPAIR(_ZN7ee26402C1Ev),
+ NSPAIR(_ZN7ee26402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd6402;
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+static Base_Class bases_ee26402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26402[];
+extern void _ZN7ee264023fooEv();
+extern void _ZN6dd64023barEv();
+static VTBL_ENTRY vtc_ee26402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26402[0]),
+ (VTBL_ENTRY)&_ZN7ee264023fooEv,
+ (VTBL_ENTRY)&_ZN6dd64023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26402[];
+extern VTBL_ENTRY _ZTV7ee26402[];
+Class_Descriptor cd_ee26402 = { "ee26402", // class name
+ bases_ee26402, 4,
+ &(vtc_ee26402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36402 : virtual dd6402 {
+ int e;
+ virtual void foo(); // _ZN7ee364023fooEv
+ ~ee36402(); // tgen
+ ee36402(); // tgen
+};
+//SIG(1 ee36402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36402 ::foo(){vfunc_called(this, "_ZN7ee364023fooEv");}
+ee36402 ::~ee36402(){ note_dtor("ee36402", this);} // tgen
+ee36402 ::ee36402(){ note_ctor("ee36402", this);} // tgen
+
+static void Test_ee36402()
+{
+ extern Class_Descriptor cd_ee36402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36402, buf);
+ ee36402 *dp, &lv = *(dp=new (buf) ee36402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd6402*), ABISELECT(16,8), "ee36402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd6402*), ABISELECT(16,8), "ee36402");
+ check_base_class_offset(lv, (cc402*)(dd6402*), ABISELECT(16,8), "ee36402");
+ check_base_class_offset(lv, (dd6402*), ABISELECT(16,8), "ee36402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36402.e");
+ test_class_info(&lv, &cd_ee36402);
+ dp->~ee36402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36402(Test_ee36402, "ee36402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36402C1Ev();
+extern void _ZN7ee36402D1Ev();
+Name_Map name_map_ee36402[] = {
+ NSPAIR(_ZN7ee36402C1Ev),
+ NSPAIR(_ZN7ee36402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd6402;
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+static Base_Class bases_ee36402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36402[];
+extern void _ZN7ee364023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee364023fooEv,_ZTv0_n12_N7ee364023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364023fooEv,_ZThn8_N7ee364023fooEv)() __attribute__((weak));
+extern void _ZN6dd64023barEv();
+static VTBL_ENTRY vtc_ee36402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36402[0]),
+ (VTBL_ENTRY)&_ZN7ee364023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364023fooEv,_ZTv0_n12_N7ee364023fooEv),
+ (VTBL_ENTRY)&_ZN6dd64023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36402[];
+static VTT_ENTRY vtt_ee36402[] = {
+ {&(_ZTV7ee36402[3]), 3,10},
+ {&(_ZTV7ee36402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36402[];
+extern VTBL_ENTRY _ZTV7ee36402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36402[];
+static VTBL_ENTRY alt_thunk_names954[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364023fooEv,_ZTv0_n12_N7ee364023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364023fooEv,_ZThn8_N7ee364023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36402 = { "ee36402", // class name
+ bases_ee36402, 4,
+ &(vtc_ee36402[0]), // expected_vtbl_contents
+ &(vtt_ee36402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names954,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46402 : dd6402 {
+ int e;
+ virtual void bar(); // _ZN7ee464023barEv
+ ~ee46402(); // tgen
+ ee46402(); // tgen
+};
+//SIG(1 ee46402) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46402 ::bar(){vfunc_called(this, "_ZN7ee464023barEv");}
+ee46402 ::~ee46402(){ note_dtor("ee46402", this);} // tgen
+ee46402 ::ee46402(){ note_ctor("ee46402", this);} // tgen
+
+static void Test_ee46402()
+{
+ extern Class_Descriptor cd_ee46402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46402, buf);
+ ee46402 *dp, &lv = *(dp=new (buf) ee46402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd6402*), 0, "ee46402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd6402*), 0, "ee46402");
+ check_base_class_offset(lv, (cc402*)(dd6402*), 0, "ee46402");
+ check_base_class_offset(lv, (dd6402*), 0, "ee46402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46402.e");
+ test_class_info(&lv, &cd_ee46402);
+ dp->~ee46402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46402(Test_ee46402, "ee46402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46402C1Ev();
+extern void _ZN7ee46402D1Ev();
+Name_Map name_map_ee46402[] = {
+ NSPAIR(_ZN7ee46402C1Ev),
+ NSPAIR(_ZN7ee46402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd6402;
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+static Base_Class bases_ee46402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46402[];
+extern void _ZN6dd64023fooEv();
+extern void _ZN7ee464023barEv();
+static VTBL_ENTRY vtc_ee46402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46402[0]),
+ (VTBL_ENTRY)&_ZN6dd64023fooEv,
+ (VTBL_ENTRY)&_ZN7ee464023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46402[];
+extern VTBL_ENTRY _ZTV7ee46402[];
+Class_Descriptor cd_ee46402 = { "ee46402", // class name
+ bases_ee46402, 4,
+ &(vtc_ee46402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56402 : virtual dd6402 {
+ int e;
+ virtual void bar(); // _ZN7ee564023barEv
+ ~ee56402(); // tgen
+ ee56402(); // tgen
+};
+//SIG(1 ee56402) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56402 ::bar(){vfunc_called(this, "_ZN7ee564023barEv");}
+ee56402 ::~ee56402(){ note_dtor("ee56402", this);} // tgen
+ee56402 ::ee56402(){ note_ctor("ee56402", this);} // tgen
+
+static void Test_ee56402()
+{
+ extern Class_Descriptor cd_ee56402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56402, buf);
+ ee56402 *dp, &lv = *(dp=new (buf) ee56402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd6402*), ABISELECT(16,8), "ee56402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd6402*), ABISELECT(16,8), "ee56402");
+ check_base_class_offset(lv, (cc402*)(dd6402*), ABISELECT(16,8), "ee56402");
+ check_base_class_offset(lv, (dd6402*), ABISELECT(16,8), "ee56402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56402.e");
+ test_class_info(&lv, &cd_ee56402);
+ dp->~ee56402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56402(Test_ee56402, "ee56402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56402C1Ev();
+extern void _ZN7ee56402D1Ev();
+Name_Map name_map_ee56402[] = {
+ NSPAIR(_ZN7ee56402C1Ev),
+ NSPAIR(_ZN7ee56402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd6402;
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+static Base_Class bases_ee56402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56402[];
+extern void _ZN7ee564023barEv();
+extern void _ZN6dd64023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564023barEv,_ZTv0_n16_N7ee564023barEv)();
+extern void ABISELECT(_ZThn16_N7ee564023barEv,_ZThn8_N7ee564023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56402[0]),
+ (VTBL_ENTRY)&_ZN7ee564023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56402[0]),
+ (VTBL_ENTRY)&_ZN6dd64023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564023barEv,_ZTv0_n16_N7ee564023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56402[];
+static VTT_ENTRY vtt_ee56402[] = {
+ {&(_ZTV7ee56402[3]), 3,10},
+ {&(_ZTV7ee56402[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56402[];
+extern VTBL_ENTRY _ZTV7ee56402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56402[];
+static VTBL_ENTRY alt_thunk_names955[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564023barEv,_ZTv0_n16_N7ee564023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564023barEv,_ZThn8_N7ee564023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56402 = { "ee56402", // class name
+ bases_ee56402, 4,
+ &(vtc_ee56402[0]), // expected_vtbl_contents
+ &(vtt_ee56402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56402),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names955,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66402 : dd6402 {
+ int e;
+ virtual void foo(); // _ZN7ee664023fooEv
+ virtual void bar(); // _ZN7ee664023barEv
+ ~ee66402(); // tgen
+ ee66402(); // tgen
+};
+//SIG(1 ee66402) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66402 ::foo(){vfunc_called(this, "_ZN7ee664023fooEv");}
+void ee66402 ::bar(){vfunc_called(this, "_ZN7ee664023barEv");}
+ee66402 ::~ee66402(){ note_dtor("ee66402", this);} // tgen
+ee66402 ::ee66402(){ note_ctor("ee66402", this);} // tgen
+
+static void Test_ee66402()
+{
+ extern Class_Descriptor cd_ee66402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66402, buf);
+ ee66402 *dp, &lv = *(dp=new (buf) ee66402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd6402*), 0, "ee66402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd6402*), 0, "ee66402");
+ check_base_class_offset(lv, (cc402*)(dd6402*), 0, "ee66402");
+ check_base_class_offset(lv, (dd6402*), 0, "ee66402");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66402.e");
+ test_class_info(&lv, &cd_ee66402);
+ dp->~ee66402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66402(Test_ee66402, "ee66402", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66402C1Ev();
+extern void _ZN7ee66402D1Ev();
+Name_Map name_map_ee66402[] = {
+ NSPAIR(_ZN7ee66402C1Ev),
+ NSPAIR(_ZN7ee66402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd6402;
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+static Base_Class bases_ee66402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66402[];
+extern void _ZN7ee664023fooEv();
+extern void _ZN7ee664023barEv();
+static VTBL_ENTRY vtc_ee66402[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66402[0]),
+ (VTBL_ENTRY)&_ZN7ee664023fooEv,
+ (VTBL_ENTRY)&_ZN7ee664023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66402[];
+extern VTBL_ENTRY _ZTV7ee66402[];
+Class_Descriptor cd_ee66402 = { "ee66402", // class name
+ bases_ee66402, 4,
+ &(vtc_ee66402[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66402),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76402 : virtual dd6402 {
+ int e;
+ virtual void foo(); // _ZN7ee764023fooEv
+ virtual void bar(); // _ZN7ee764023barEv
+ ~ee76402(); // tgen
+ ee76402(); // tgen
+};
+//SIG(1 ee76402) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76402 ::foo(){vfunc_called(this, "_ZN7ee764023fooEv");}
+void ee76402 ::bar(){vfunc_called(this, "_ZN7ee764023barEv");}
+ee76402 ::~ee76402(){ note_dtor("ee76402", this);} // tgen
+ee76402 ::ee76402(){ note_ctor("ee76402", this);} // tgen
+
+static void Test_ee76402()
+{
+ extern Class_Descriptor cd_ee76402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76402, buf);
+ ee76402 *dp, &lv = *(dp=new (buf) ee76402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*)(dd6402*), ABISELECT(16,8), "ee76402");
+ check_base_class_offset(lv, (bb02*)(cc402*)(dd6402*), ABISELECT(16,8), "ee76402");
+ check_base_class_offset(lv, (cc402*)(dd6402*), ABISELECT(16,8), "ee76402");
+ check_base_class_offset(lv, (dd6402*), ABISELECT(16,8), "ee76402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76402.e");
+ test_class_info(&lv, &cd_ee76402);
+ dp->~ee76402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76402(Test_ee76402, "ee76402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76402C1Ev();
+extern void _ZN7ee76402D1Ev();
+Name_Map name_map_ee76402[] = {
+ NSPAIR(_ZN7ee76402C1Ev),
+ NSPAIR(_ZN7ee76402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd6402;
+extern VTBL_ENTRY _ZTI6dd6402[];
+extern VTBL_ENTRY _ZTV6dd6402[];
+static Base_Class bases_ee76402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76402[];
+extern void _ZN7ee764023fooEv();
+extern void _ZN7ee764023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee764023fooEv,_ZTv0_n12_N7ee764023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764023fooEv,_ZThn8_N7ee764023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764023barEv,_ZTv0_n16_N7ee764023barEv)();
+extern void ABISELECT(_ZThn16_N7ee764023barEv,_ZThn8_N7ee764023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76402[0]),
+ (VTBL_ENTRY)&_ZN7ee764023fooEv,
+ (VTBL_ENTRY)&_ZN7ee764023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764023fooEv,_ZTv0_n12_N7ee764023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764023barEv,_ZTv0_n16_N7ee764023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76402[];
+static VTT_ENTRY vtt_ee76402[] = {
+ {&(_ZTV7ee76402[3]), 3,11},
+ {&(_ZTV7ee76402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76402[];
+extern VTBL_ENTRY _ZTV7ee76402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76402[];
+static VTBL_ENTRY alt_thunk_names956[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764023barEv,_ZTv0_n16_N7ee764023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764023barEv,_ZThn8_N7ee764023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764023fooEv,_ZTv0_n12_N7ee764023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764023fooEv,_ZThn8_N7ee764023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76402 = { "ee76402", // class name
+ bases_ee76402, 4,
+ &(vtc_ee76402[0]), // expected_vtbl_contents
+ &(vtt_ee76402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76402),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names956,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7402 : virtual cc402 {
+ int d;
+ virtual void bar(); // _ZN6dd74023barEv
+ virtual void foo(); // _ZN6dd74023fooEv
+ ~dd7402(); // tgen
+ dd7402(); // tgen
+};
+//SIG(-1 dd7402) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7402 ::bar(){vfunc_called(this, "_ZN6dd74023barEv");}
+void dd7402 ::foo(){vfunc_called(this, "_ZN6dd74023fooEv");}
+dd7402 ::~dd7402(){ note_dtor("dd7402", this);} // tgen
+dd7402 ::dd7402(){ note_ctor("dd7402", this);} // tgen
+
+static void Test_dd7402()
+{
+ extern Class_Descriptor cd_dd7402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7402, buf);
+ dd7402 *dp, &lv = *(dp=new (buf) dd7402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,8), "dd7402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,8), "dd7402");
+ check_base_class_offset(lv, (cc402*), ABISELECT(16,8), "dd7402");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7402.d");
+ test_class_info(&lv, &cd_dd7402);
+ dp->~dd7402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7402(Test_dd7402, "dd7402", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7402C1Ev();
+extern void _ZN6dd7402D1Ev();
+Name_Map name_map_dd7402[] = {
+ NSPAIR(_ZN6dd7402C1Ev),
+ NSPAIR(_ZN6dd7402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+static Base_Class bases_dd7402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7402[];
+static VTT_ENTRY vtt_dd7402[] = {
+ {&(_ZTV6dd7402[3]), 3,11},
+ {&(_ZTV6dd7402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static VTBL_ENTRY alt_thunk_names957[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7402 = { "dd7402", // class name
+ bases_dd7402, 3,
+ &(vtc_dd7402[0]), // expected_vtbl_contents
+ &(vtt_dd7402[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7402),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names957,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07402 : dd7402 {
+ int e;
+ ~ee07402(); // tgen
+ ee07402(); // tgen
+};
+//SIG(1 ee07402) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07402 ::~ee07402(){ note_dtor("ee07402", this);} // tgen
+ee07402 ::ee07402(){ note_ctor("ee07402", this);} // tgen
+
+static void Test_ee07402()
+{
+ extern Class_Descriptor cd_ee07402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07402, buf);
+ ee07402 *dp, &lv = *(dp=new (buf) ee07402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee07402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee07402");
+ check_base_class_offset(lv, (cc402*)(dd7402*), ABISELECT(16,12), "ee07402");
+ check_base_class_offset(lv, (dd7402*), 0, "ee07402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07402.e");
+ test_class_info(&lv, &cd_ee07402);
+ dp->~ee07402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07402(Test_ee07402, "ee07402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07402C1Ev();
+extern void _ZN7ee07402D1Ev();
+Name_Map name_map_ee07402[] = {
+ NSPAIR(_ZN7ee07402C1Ev),
+ NSPAIR(_ZN7ee07402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd7402;
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static Base_Class bases_ee07402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7402__7ee07402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd7402__7ee07402[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+static VTT_ENTRY vtt_ee07402[] = {
+ {&(_ZTV7ee07402[3]), 3,11},
+ {&(_tg__ZTV6dd7402__7ee07402[3]), 3,5},
+ {&(_tg__ZTV5cc402__6dd7402__7ee07402[4]), 4,6},
+ {&(_ZTV7ee07402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07402[];
+extern VTBL_ENTRY _ZTV7ee07402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07402[];
+static VTBL_ENTRY alt_thunk_names958[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07402 = { "ee07402", // class name
+ bases_ee07402, 4,
+ &(vtc_ee07402[0]), // expected_vtbl_contents
+ &(vtt_ee07402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names958,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17402 : virtual dd7402 {
+ int e;
+ ~ee17402(); // tgen
+ ee17402(); // tgen
+};
+//SIG(1 ee17402) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17402 ::~ee17402(){ note_dtor("ee17402", this);} // tgen
+ee17402 ::ee17402(){ note_ctor("ee17402", this);} // tgen
+
+static void Test_ee17402()
+{
+ extern Class_Descriptor cd_ee17402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17402, buf);
+ ee17402 *dp, &lv = *(dp=new (buf) ee17402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee17402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee17402");
+ check_base_class_offset(lv, (cc402*)(dd7402*), ABISELECT(32,16), "ee17402");
+ check_base_class_offset(lv, (dd7402*), ABISELECT(16,8), "ee17402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17402.e");
+ test_class_info(&lv, &cd_ee17402);
+ dp->~ee17402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17402(Test_ee17402, "ee17402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17402C1Ev();
+extern void _ZN7ee17402D1Ev();
+Name_Map name_map_ee17402[] = {
+ NSPAIR(_ZN7ee17402C1Ev),
+ NSPAIR(_ZN7ee17402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd7402;
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static Base_Class bases_ee17402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7402, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17402[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7402__7ee17402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd7402__7ee17402[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+static VTT_ENTRY vtt_ee17402[] = {
+ {&(_ZTV7ee17402[4]), 4,17},
+ {&(_ZTV7ee17402[9]), 9,17},
+ {&(_ZTV7ee17402[15]), 15,17},
+ {&(_tg__ZTV6dd7402__7ee17402[3]), 3,5},
+ {&(_tg__ZTV5cc402__6dd7402__7ee17402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17402[];
+extern VTBL_ENTRY _ZTV7ee17402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17402[];
+static VTBL_ENTRY alt_thunk_names959[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17402 = { "ee17402", // class name
+ bases_ee17402, 4,
+ &(vtc_ee17402[0]), // expected_vtbl_contents
+ &(vtt_ee17402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17402),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names959,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27402 : dd7402 {
+ int e;
+ virtual void foo(); // _ZN7ee274023fooEv
+ ~ee27402(); // tgen
+ ee27402(); // tgen
+};
+//SIG(1 ee27402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27402 ::foo(){vfunc_called(this, "_ZN7ee274023fooEv");}
+ee27402 ::~ee27402(){ note_dtor("ee27402", this);} // tgen
+ee27402 ::ee27402(){ note_ctor("ee27402", this);} // tgen
+
+static void Test_ee27402()
+{
+ extern Class_Descriptor cd_ee27402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27402, buf);
+ ee27402 *dp, &lv = *(dp=new (buf) ee27402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee27402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee27402");
+ check_base_class_offset(lv, (cc402*)(dd7402*), ABISELECT(16,12), "ee27402");
+ check_base_class_offset(lv, (dd7402*), 0, "ee27402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27402.e");
+ test_class_info(&lv, &cd_ee27402);
+ dp->~ee27402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27402(Test_ee27402, "ee27402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27402C1Ev();
+extern void _ZN7ee27402D1Ev();
+Name_Map name_map_ee27402[] = {
+ NSPAIR(_ZN7ee27402C1Ev),
+ NSPAIR(_ZN7ee27402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd7402;
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static Base_Class bases_ee27402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN7ee274023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee274023fooEv,_ZTv0_n12_N7ee274023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee274023fooEv,_ZThn12_N7ee274023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN7ee274023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274023fooEv,_ZTv0_n12_N7ee274023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7402__7ee27402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd7402__7ee27402[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+static VTT_ENTRY vtt_ee27402[] = {
+ {&(_ZTV7ee27402[3]), 3,11},
+ {&(_tg__ZTV6dd7402__7ee27402[3]), 3,5},
+ {&(_tg__ZTV5cc402__6dd7402__7ee27402[4]), 4,6},
+ {&(_ZTV7ee27402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27402[];
+extern VTBL_ENTRY _ZTV7ee27402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27402[];
+static VTBL_ENTRY alt_thunk_names960[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274023fooEv,_ZTv0_n12_N7ee274023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee274023fooEv,_ZThn12_N7ee274023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27402 = { "ee27402", // class name
+ bases_ee27402, 4,
+ &(vtc_ee27402[0]), // expected_vtbl_contents
+ &(vtt_ee27402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names960,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37402 : virtual dd7402 {
+ int e;
+ virtual void foo(); // _ZN7ee374023fooEv
+ ~ee37402(); // tgen
+ ee37402(); // tgen
+};
+//SIG(1 ee37402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37402 ::foo(){vfunc_called(this, "_ZN7ee374023fooEv");}
+ee37402 ::~ee37402(){ note_dtor("ee37402", this);} // tgen
+ee37402 ::ee37402(){ note_ctor("ee37402", this);} // tgen
+
+static void Test_ee37402()
+{
+ extern Class_Descriptor cd_ee37402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37402, buf);
+ ee37402 *dp, &lv = *(dp=new (buf) ee37402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee37402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee37402");
+ check_base_class_offset(lv, (cc402*)(dd7402*), ABISELECT(32,16), "ee37402");
+ check_base_class_offset(lv, (dd7402*), ABISELECT(16,8), "ee37402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37402.e");
+ test_class_info(&lv, &cd_ee37402);
+ dp->~ee37402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37402(Test_ee37402, "ee37402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37402C1Ev();
+extern void _ZN7ee37402D1Ev();
+Name_Map name_map_ee37402[] = {
+ NSPAIR(_ZN7ee37402C1Ev),
+ NSPAIR(_ZN7ee37402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd7402;
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static Base_Class bases_ee37402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37402[];
+extern void _ZN7ee374023fooEv();
+extern void _ZN6dd74023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee374023fooEv,_ZTv0_n20_N7ee374023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374023fooEv,_ZThn8_N7ee374023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374023fooEv,_ZTv0_n12_N7ee374023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee374023fooEv,_ZThn16_N7ee374023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37402[0]),
+ (VTBL_ENTRY)&_ZN7ee374023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee374023fooEv,_ZTv0_n20_N7ee374023fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374023fooEv,_ZTv0_n12_N7ee374023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7402__7ee37402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd7402__7ee37402[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+static VTT_ENTRY vtt_ee37402[] = {
+ {&(_ZTV7ee37402[4]), 4,18},
+ {&(_ZTV7ee37402[10]), 10,18},
+ {&(_ZTV7ee37402[16]), 16,18},
+ {&(_tg__ZTV6dd7402__7ee37402[3]), 3,5},
+ {&(_tg__ZTV5cc402__6dd7402__7ee37402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37402[];
+extern VTBL_ENTRY _ZTV7ee37402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37402[];
+static VTBL_ENTRY alt_thunk_names961[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374023fooEv,_ZTv0_n12_N7ee374023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee374023fooEv,_ZThn16_N7ee374023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee374023fooEv,_ZTv0_n20_N7ee374023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374023fooEv,_ZThn8_N7ee374023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37402 = { "ee37402", // class name
+ bases_ee37402, 4,
+ &(vtc_ee37402[0]), // expected_vtbl_contents
+ &(vtt_ee37402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37402),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names961,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47402 : dd7402 {
+ int e;
+ virtual void bar(); // _ZN7ee474023barEv
+ ~ee47402(); // tgen
+ ee47402(); // tgen
+};
+//SIG(1 ee47402) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47402 ::bar(){vfunc_called(this, "_ZN7ee474023barEv");}
+ee47402 ::~ee47402(){ note_dtor("ee47402", this);} // tgen
+ee47402 ::ee47402(){ note_ctor("ee47402", this);} // tgen
+
+static void Test_ee47402()
+{
+ extern Class_Descriptor cd_ee47402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47402, buf);
+ ee47402 *dp, &lv = *(dp=new (buf) ee47402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee47402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee47402");
+ check_base_class_offset(lv, (cc402*)(dd7402*), ABISELECT(16,12), "ee47402");
+ check_base_class_offset(lv, (dd7402*), 0, "ee47402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47402.e");
+ test_class_info(&lv, &cd_ee47402);
+ dp->~ee47402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47402(Test_ee47402, "ee47402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47402C1Ev();
+extern void _ZN7ee47402D1Ev();
+Name_Map name_map_ee47402[] = {
+ NSPAIR(_ZN7ee47402C1Ev),
+ NSPAIR(_ZN7ee47402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd7402;
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static Base_Class bases_ee47402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47402[];
+extern void _ZN7ee474023barEv();
+extern void _ZN6dd74023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee474023barEv,_ZTv0_n16_N7ee474023barEv)();
+extern void ABISELECT(_ZThn16_N7ee474023barEv,_ZThn12_N7ee474023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47402[0]),
+ (VTBL_ENTRY)&_ZN7ee474023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474023barEv,_ZTv0_n16_N7ee474023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7402__7ee47402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd7402__7ee47402[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+static VTT_ENTRY vtt_ee47402[] = {
+ {&(_ZTV7ee47402[3]), 3,11},
+ {&(_tg__ZTV6dd7402__7ee47402[3]), 3,5},
+ {&(_tg__ZTV5cc402__6dd7402__7ee47402[4]), 4,6},
+ {&(_ZTV7ee47402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47402[];
+extern VTBL_ENTRY _ZTV7ee47402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47402[];
+static VTBL_ENTRY alt_thunk_names962[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474023barEv,_ZTv0_n16_N7ee474023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474023barEv,_ZThn12_N7ee474023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47402 = { "ee47402", // class name
+ bases_ee47402, 4,
+ &(vtc_ee47402[0]), // expected_vtbl_contents
+ &(vtt_ee47402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names962,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57402 : virtual dd7402 {
+ int e;
+ virtual void bar(); // _ZN7ee574023barEv
+ ~ee57402(); // tgen
+ ee57402(); // tgen
+};
+//SIG(1 ee57402) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57402 ::bar(){vfunc_called(this, "_ZN7ee574023barEv");}
+ee57402 ::~ee57402(){ note_dtor("ee57402", this);} // tgen
+ee57402 ::ee57402(){ note_ctor("ee57402", this);} // tgen
+
+static void Test_ee57402()
+{
+ extern Class_Descriptor cd_ee57402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57402, buf);
+ ee57402 *dp, &lv = *(dp=new (buf) ee57402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee57402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee57402");
+ check_base_class_offset(lv, (cc402*)(dd7402*), ABISELECT(32,16), "ee57402");
+ check_base_class_offset(lv, (dd7402*), ABISELECT(16,8), "ee57402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57402.e");
+ test_class_info(&lv, &cd_ee57402);
+ dp->~ee57402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57402(Test_ee57402, "ee57402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57402C1Ev();
+extern void _ZN7ee57402D1Ev();
+Name_Map name_map_ee57402[] = {
+ NSPAIR(_ZN7ee57402C1Ev),
+ NSPAIR(_ZN7ee57402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd7402;
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static Base_Class bases_ee57402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7402, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57402[];
+extern void _ZN7ee574023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574023barEv,_ZTv0_n16_N7ee574023barEv)();
+extern void ABISELECT(_ZThn16_N7ee574023barEv,_ZThn8_N7ee574023barEv)() __attribute__((weak));
+extern void _ZN6dd74023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee574023barEv,_ZTv0_n16_N7ee574023barEv)();
+extern void ABISELECT(_ZThn32_N7ee574023barEv,_ZThn16_N7ee574023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57402[0]),
+ (VTBL_ENTRY)&_ZN7ee574023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574023barEv,_ZTv0_n16_N7ee574023barEv),
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574023barEv,_ZTv0_n16_N7ee574023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7402__7ee57402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd7402__7ee57402[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+static VTT_ENTRY vtt_ee57402[] = {
+ {&(_ZTV7ee57402[4]), 4,18},
+ {&(_ZTV7ee57402[10]), 10,18},
+ {&(_ZTV7ee57402[16]), 16,18},
+ {&(_tg__ZTV6dd7402__7ee57402[3]), 3,5},
+ {&(_tg__ZTV5cc402__6dd7402__7ee57402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57402[];
+extern VTBL_ENTRY _ZTV7ee57402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57402[];
+static VTBL_ENTRY alt_thunk_names963[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574023barEv,_ZTv0_n16_N7ee574023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574023barEv,_ZThn16_N7ee574023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574023barEv,_ZThn8_N7ee574023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57402 = { "ee57402", // class name
+ bases_ee57402, 4,
+ &(vtc_ee57402[0]), // expected_vtbl_contents
+ &(vtt_ee57402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57402),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names963,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67402 : dd7402 {
+ int e;
+ virtual void foo(); // _ZN7ee674023fooEv
+ virtual void bar(); // _ZN7ee674023barEv
+ ~ee67402(); // tgen
+ ee67402(); // tgen
+};
+//SIG(1 ee67402) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67402 ::foo(){vfunc_called(this, "_ZN7ee674023fooEv");}
+void ee67402 ::bar(){vfunc_called(this, "_ZN7ee674023barEv");}
+ee67402 ::~ee67402(){ note_dtor("ee67402", this);} // tgen
+ee67402 ::ee67402(){ note_ctor("ee67402", this);} // tgen
+
+static void Test_ee67402()
+{
+ extern Class_Descriptor cd_ee67402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67402, buf);
+ ee67402 *dp, &lv = *(dp=new (buf) ee67402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(16,12), "ee67402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(16,12), "ee67402");
+ check_base_class_offset(lv, (cc402*)(dd7402*), ABISELECT(16,12), "ee67402");
+ check_base_class_offset(lv, (dd7402*), 0, "ee67402");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67402.e");
+ test_class_info(&lv, &cd_ee67402);
+ dp->~ee67402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67402(Test_ee67402, "ee67402", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67402C1Ev();
+extern void _ZN7ee67402D1Ev();
+Name_Map name_map_ee67402[] = {
+ NSPAIR(_ZN7ee67402C1Ev),
+ NSPAIR(_ZN7ee67402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd7402;
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static Base_Class bases_ee67402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7402, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67402[];
+extern void _ZN7ee674023barEv();
+extern void _ZN7ee674023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee674023fooEv,_ZTv0_n12_N7ee674023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee674023fooEv,_ZThn12_N7ee674023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674023barEv,_ZTv0_n16_N7ee674023barEv)();
+extern void ABISELECT(_ZThn16_N7ee674023barEv,_ZThn12_N7ee674023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67402[0]),
+ (VTBL_ENTRY)&_ZN7ee674023barEv,
+ (VTBL_ENTRY)&_ZN7ee674023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674023fooEv,_ZTv0_n12_N7ee674023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674023barEv,_ZTv0_n16_N7ee674023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7402__7ee67402[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd7402__7ee67402[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+static VTT_ENTRY vtt_ee67402[] = {
+ {&(_ZTV7ee67402[3]), 3,11},
+ {&(_tg__ZTV6dd7402__7ee67402[3]), 3,5},
+ {&(_tg__ZTV5cc402__6dd7402__7ee67402[4]), 4,6},
+ {&(_ZTV7ee67402[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67402[];
+extern VTBL_ENTRY _ZTV7ee67402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67402[];
+static VTBL_ENTRY alt_thunk_names964[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn12_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn12_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674023barEv,_ZTv0_n16_N7ee674023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674023barEv,_ZThn12_N7ee674023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674023fooEv,_ZTv0_n12_N7ee674023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674023fooEv,_ZThn12_N7ee674023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67402 = { "ee67402", // class name
+ bases_ee67402, 4,
+ &(vtc_ee67402[0]), // expected_vtbl_contents
+ &(vtt_ee67402[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67402),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67402),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67402),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names964,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77402 : virtual dd7402 {
+ int e;
+ virtual void foo(); // _ZN7ee774023fooEv
+ virtual void bar(); // _ZN7ee774023barEv
+ ~ee77402(); // tgen
+ ee77402(); // tgen
+};
+//SIG(1 ee77402) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77402 ::foo(){vfunc_called(this, "_ZN7ee774023fooEv");}
+void ee77402 ::bar(){vfunc_called(this, "_ZN7ee774023barEv");}
+ee77402 ::~ee77402(){ note_dtor("ee77402", this);} // tgen
+ee77402 ::ee77402(){ note_ctor("ee77402", this);} // tgen
+
+static void Test_ee77402()
+{
+ extern Class_Descriptor cd_ee77402;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77402, buf);
+ ee77402 *dp, &lv = *(dp=new (buf) ee77402());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77402)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77402)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc402*), ABISELECT(32,16), "ee77402");
+ check_base_class_offset(lv, (bb02*)(cc402*), ABISELECT(32,16), "ee77402");
+ check_base_class_offset(lv, (cc402*)(dd7402*), ABISELECT(32,16), "ee77402");
+ check_base_class_offset(lv, (dd7402*), ABISELECT(16,8), "ee77402");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77402.e");
+ test_class_info(&lv, &cd_ee77402);
+ dp->~ee77402();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77402(Test_ee77402, "ee77402", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77402C1Ev();
+extern void _ZN7ee77402D1Ev();
+Name_Map name_map_ee77402[] = {
+ NSPAIR(_ZN7ee77402C1Ev),
+ NSPAIR(_ZN7ee77402D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc402;
+extern VTBL_ENTRY _ZTI5cc402[];
+extern VTBL_ENTRY _ZTV5cc402[];
+extern Class_Descriptor cd_dd7402;
+extern VTBL_ENTRY _ZTI6dd7402[];
+extern VTBL_ENTRY _ZTV6dd7402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7402[];
+static Base_Class bases_ee77402[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc402, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7402, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77402[];
+extern void _ZN7ee774023fooEv();
+extern void _ZN7ee774023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee774023barEv,_ZTv0_n16_N7ee774023barEv)();
+extern void ABISELECT(_ZThn16_N7ee774023barEv,_ZThn8_N7ee774023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee774023fooEv,_ZTv0_n20_N7ee774023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774023fooEv,_ZThn8_N7ee774023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774023fooEv,_ZTv0_n12_N7ee774023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee774023fooEv,_ZThn16_N7ee774023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774023barEv,_ZTv0_n16_N7ee774023barEv)();
+extern void ABISELECT(_ZThn32_N7ee774023barEv,_ZThn16_N7ee774023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77402[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77402[0]),
+ (VTBL_ENTRY)&_ZN7ee774023fooEv,
+ (VTBL_ENTRY)&_ZN7ee774023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774023barEv,_ZTv0_n16_N7ee774023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774023fooEv,_ZTv0_n20_N7ee774023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774023fooEv,_ZTv0_n12_N7ee774023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774023barEv,_ZTv0_n16_N7ee774023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77402[];
+extern void _ZN6dd74023barEv();
+extern void _ZN6dd74023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7402__7ee77402[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&_ZN6dd74023barEv,
+ (VTBL_ENTRY)&_ZN6dd74023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv)();
+extern void ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc402__6dd7402__7ee77402[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7402[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv),
+};
+static VTT_ENTRY vtt_ee77402[] = {
+ {&(_ZTV7ee77402[4]), 4,19},
+ {&(_ZTV7ee77402[11]), 11,19},
+ {&(_ZTV7ee77402[17]), 17,19},
+ {&(_tg__ZTV6dd7402__7ee77402[3]), 3,5},
+ {&(_tg__ZTV5cc402__6dd7402__7ee77402[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77402[];
+extern VTBL_ENTRY _ZTV7ee77402[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77402[];
+static VTBL_ENTRY alt_thunk_names965[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74023barEv,_ZTv0_n16_N6dd74023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023barEv,_ZThn8_N6dd74023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74023fooEv,_ZTv0_n12_N6dd74023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74023fooEv,_ZThn8_N6dd74023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774023fooEv,_ZTv0_n12_N7ee774023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774023fooEv,_ZThn16_N7ee774023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774023fooEv,_ZTv0_n20_N7ee774023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774023fooEv,_ZThn8_N7ee774023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774023barEv,_ZTv0_n16_N7ee774023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774023barEv,_ZThn16_N7ee774023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774023barEv,_ZThn8_N7ee774023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77402 = { "ee77402", // class name
+ bases_ee77402, 4,
+ &(vtc_ee77402[0]), // expected_vtbl_contents
+ &(vtt_ee77402[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77402),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77402),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77402),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names965,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc502 : virtual bb02 {
+ int c;
+ virtual void bar(); // _ZN5cc5023barEv
+ ~cc502(); // tgen
+ cc502(); // tgen
+};
+//SIG(-1 cc502) C1{ VBC2{ BC3{ v2 v1 Fi} Fi} v1 Fi}
+
+
+void cc502 ::bar(){vfunc_called(this, "_ZN5cc5023barEv");}
+cc502 ::~cc502(){ note_dtor("cc502", this);} // tgen
+cc502 ::cc502(){ note_ctor("cc502", this);} // tgen
+
+static void Test_cc502()
+{
+ extern Class_Descriptor cd_cc502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc502, buf);
+ cc502 *dp, &lv = *(dp=new (buf) cc502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,8), "cc502");
+ check_base_class_offset(lv, (bb02*), ABISELECT(16,8), "cc502");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc502.c");
+ test_class_info(&lv, &cd_cc502);
+ dp->~cc502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc502(Test_cc502, "cc502", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc502C1Ev();
+extern void _ZN5cc502D1Ev();
+Name_Map name_map_cc502[] = {
+ NSPAIR(_ZN5cc502C1Ev),
+ NSPAIR(_ZN5cc502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+static Base_Class bases_cc502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV5cc502[];
+static VTT_ENTRY vtt_cc502[] = {
+ {&(_ZTV5cc502[3]), 3,10},
+ {&(_ZTV5cc502[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static VTBL_ENTRY alt_thunk_names966[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc502 = { "cc502", // class name
+ bases_cc502, 2,
+ &(vtc_cc502[0]), // expected_vtbl_contents
+ &(vtt_cc502[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc502),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc502),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names966,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0502 : cc502 {
+ int d;
+ ~dd0502(); // tgen
+ dd0502(); // tgen
+};
+//SIG(-1 dd0502) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+dd0502 ::~dd0502(){ note_dtor("dd0502", this);} // tgen
+dd0502 ::dd0502(){ note_ctor("dd0502", this);} // tgen
+
+static void Test_dd0502()
+{
+ extern Class_Descriptor cd_dd0502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0502, buf);
+ dd0502 *dp, &lv = *(dp=new (buf) dd0502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd0502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(16,12), "dd0502");
+ check_base_class_offset(lv, (cc502*), 0, "dd0502");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0502.d");
+ test_class_info(&lv, &cd_dd0502);
+ dp->~dd0502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0502(Test_dd0502, "dd0502", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0502C1Ev();
+extern void _ZN6dd0502D1Ev();
+Name_Map name_map_dd0502[] = {
+ NSPAIR(_ZN6dd0502C1Ev),
+ NSPAIR(_ZN6dd0502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static Base_Class bases_dd0502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd0502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__6dd0502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_dd0502[] = {
+ {&(_ZTV6dd0502[3]), 3,10},
+ {&(_tg__ZTV5cc502__6dd0502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__6dd0502[4]), 4,6},
+ {&(_ZTV6dd0502[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static VTBL_ENTRY alt_thunk_names967[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0502 = { "dd0502", // class name
+ bases_dd0502, 3,
+ &(vtc_dd0502[0]), // expected_vtbl_contents
+ &(vtt_dd0502[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0502),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0502),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names967,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00502 : dd0502 {
+ int e;
+ ~ee00502(); // tgen
+ ee00502(); // tgen
+};
+//SIG(1 ee00502) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee00502 ::~ee00502(){ note_dtor("ee00502", this);} // tgen
+ee00502 ::ee00502(){ note_ctor("ee00502", this);} // tgen
+
+static void Test_ee00502()
+{
+ extern Class_Descriptor cd_ee00502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00502, buf);
+ ee00502 *dp, &lv = *(dp=new (buf) ee00502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee00502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd0502*), ABISELECT(24,16), "ee00502");
+ check_base_class_offset(lv, (cc502*)(dd0502*), 0, "ee00502");
+ check_base_class_offset(lv, (dd0502*), 0, "ee00502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00502.e");
+ test_class_info(&lv, &cd_ee00502);
+ dp->~ee00502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00502(Test_ee00502, "ee00502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00502C1Ev();
+extern void _ZN7ee00502D1Ev();
+Name_Map name_map_ee00502[] = {
+ NSPAIR(_ZN7ee00502C1Ev),
+ NSPAIR(_ZN7ee00502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd0502;
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static Base_Class bases_ee00502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0502__7ee00502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd0502__7ee00502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd0502__7ee00502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0502__7ee00502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee00502[] = {
+ {&(_ZTV7ee00502[3]), 3,10},
+ {&(_tg__ZTV6dd0502__7ee00502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd0502__7ee00502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd0502__7ee00502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0502__7ee00502[4]), 4,6},
+ {&(_ZTV7ee00502[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00502[];
+extern VTBL_ENTRY _ZTV7ee00502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00502[];
+static VTBL_ENTRY alt_thunk_names968[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00502 = { "ee00502", // class name
+ bases_ee00502, 4,
+ &(vtc_ee00502[0]), // expected_vtbl_contents
+ &(vtt_ee00502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00502),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names968,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10502 : virtual dd0502 {
+ int e;
+ ~ee10502(); // tgen
+ ee10502(); // tgen
+};
+//SIG(1 ee10502) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee10502 ::~ee10502(){ note_dtor("ee10502", this);} // tgen
+ee10502 ::ee10502(){ note_ctor("ee10502", this);} // tgen
+
+static void Test_ee10502()
+{
+ extern Class_Descriptor cd_ee10502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10502, buf);
+ ee10502 *dp, &lv = *(dp=new (buf) ee10502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee10502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd0502*), ABISELECT(32,20), "ee10502");
+ check_base_class_offset(lv, (cc502*)(dd0502*), ABISELECT(16,8), "ee10502");
+ check_base_class_offset(lv, (dd0502*), ABISELECT(16,8), "ee10502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10502.e");
+ test_class_info(&lv, &cd_ee10502);
+ dp->~ee10502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10502(Test_ee10502, "ee10502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10502C1Ev();
+extern void _ZN7ee10502D1Ev();
+Name_Map name_map_ee10502[] = {
+ NSPAIR(_ZN7ee10502C1Ev),
+ NSPAIR(_ZN7ee10502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd0502;
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static Base_Class bases_ee10502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0502, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10502[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0502__7ee10502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd0502__7ee10502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd0502__7ee10502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0502__7ee10502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee10502[] = {
+ {&(_ZTV7ee10502[4]), 4,15},
+ {&(_ZTV7ee10502[8]), 8,15},
+ {&(_ZTV7ee10502[13]), 13,15},
+ {&(_tg__ZTV6dd0502__7ee10502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd0502__7ee10502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd0502__7ee10502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0502__7ee10502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10502[];
+extern VTBL_ENTRY _ZTV7ee10502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10502[];
+static VTBL_ENTRY alt_thunk_names969[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10502 = { "ee10502", // class name
+ bases_ee10502, 4,
+ &(vtc_ee10502[0]), // expected_vtbl_contents
+ &(vtt_ee10502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10502),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names969,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20502 : dd0502 {
+ int e;
+ virtual void foo(); // _ZN7ee205023fooEv
+ ~ee20502(); // tgen
+ ee20502(); // tgen
+};
+//SIG(1 ee20502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20502 ::foo(){vfunc_called(this, "_ZN7ee205023fooEv");}
+ee20502 ::~ee20502(){ note_dtor("ee20502", this);} // tgen
+ee20502 ::ee20502(){ note_ctor("ee20502", this);} // tgen
+
+static void Test_ee20502()
+{
+ extern Class_Descriptor cd_ee20502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20502, buf);
+ ee20502 *dp, &lv = *(dp=new (buf) ee20502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee20502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd0502*), ABISELECT(24,16), "ee20502");
+ check_base_class_offset(lv, (cc502*)(dd0502*), 0, "ee20502");
+ check_base_class_offset(lv, (dd0502*), 0, "ee20502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20502.e");
+ test_class_info(&lv, &cd_ee20502);
+ dp->~ee20502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20502(Test_ee20502, "ee20502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20502C1Ev();
+extern void _ZN7ee20502D1Ev();
+Name_Map name_map_ee20502[] = {
+ NSPAIR(_ZN7ee20502C1Ev),
+ NSPAIR(_ZN7ee20502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd0502;
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static Base_Class bases_ee20502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN7ee205023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee205023fooEv,_ZTv0_n12_N7ee205023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee205023fooEv,_ZThn16_N7ee205023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN7ee205023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205023fooEv,_ZTv0_n12_N7ee205023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0502__7ee20502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd0502__7ee20502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd0502__7ee20502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0502__7ee20502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee20502[] = {
+ {&(_ZTV7ee20502[3]), 3,11},
+ {&(_tg__ZTV6dd0502__7ee20502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd0502__7ee20502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd0502__7ee20502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0502__7ee20502[4]), 4,6},
+ {&(_ZTV7ee20502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20502[];
+extern VTBL_ENTRY _ZTV7ee20502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20502[];
+static VTBL_ENTRY alt_thunk_names970[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205023fooEv,_ZTv0_n12_N7ee205023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee205023fooEv,_ZThn16_N7ee205023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20502 = { "ee20502", // class name
+ bases_ee20502, 4,
+ &(vtc_ee20502[0]), // expected_vtbl_contents
+ &(vtt_ee20502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names970,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30502 : virtual dd0502 {
+ int e;
+ virtual void foo(); // _ZN7ee305023fooEv
+ ~ee30502(); // tgen
+ ee30502(); // tgen
+};
+//SIG(1 ee30502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30502 ::foo(){vfunc_called(this, "_ZN7ee305023fooEv");}
+ee30502 ::~ee30502(){ note_dtor("ee30502", this);} // tgen
+ee30502 ::ee30502(){ note_ctor("ee30502", this);} // tgen
+
+static void Test_ee30502()
+{
+ extern Class_Descriptor cd_ee30502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30502, buf);
+ ee30502 *dp, &lv = *(dp=new (buf) ee30502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee30502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd0502*), ABISELECT(32,20), "ee30502");
+ check_base_class_offset(lv, (cc502*)(dd0502*), ABISELECT(16,8), "ee30502");
+ check_base_class_offset(lv, (dd0502*), ABISELECT(16,8), "ee30502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30502.e");
+ test_class_info(&lv, &cd_ee30502);
+ dp->~ee30502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30502(Test_ee30502, "ee30502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30502C1Ev();
+extern void _ZN7ee30502D1Ev();
+Name_Map name_map_ee30502[] = {
+ NSPAIR(_ZN7ee30502C1Ev),
+ NSPAIR(_ZN7ee30502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd0502;
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static Base_Class bases_ee30502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30502[];
+extern void _ZN7ee305023fooEv();
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee305023fooEv,_ZTv0_n12_N7ee305023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee305023fooEv,_ZThn20_N7ee305023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30502[0]),
+ (VTBL_ENTRY)&_ZN7ee305023fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305023fooEv,_ZTv0_n12_N7ee305023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0502__7ee30502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd0502__7ee30502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd0502__7ee30502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0502__7ee30502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee30502[] = {
+ {&(_ZTV7ee30502[4]), 4,16},
+ {&(_ZTV7ee30502[9]), 9,16},
+ {&(_ZTV7ee30502[14]), 14,16},
+ {&(_tg__ZTV6dd0502__7ee30502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd0502__7ee30502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd0502__7ee30502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0502__7ee30502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30502[];
+extern VTBL_ENTRY _ZTV7ee30502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30502[];
+static VTBL_ENTRY alt_thunk_names971[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305023fooEv,_ZTv0_n12_N7ee305023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee305023fooEv,_ZThn20_N7ee305023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30502 = { "ee30502", // class name
+ bases_ee30502, 4,
+ &(vtc_ee30502[0]), // expected_vtbl_contents
+ &(vtt_ee30502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names971,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40502 : dd0502 {
+ int e;
+ virtual void bar(); // _ZN7ee405023barEv
+ ~ee40502(); // tgen
+ ee40502(); // tgen
+};
+//SIG(1 ee40502) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40502 ::bar(){vfunc_called(this, "_ZN7ee405023barEv");}
+ee40502 ::~ee40502(){ note_dtor("ee40502", this);} // tgen
+ee40502 ::ee40502(){ note_ctor("ee40502", this);} // tgen
+
+static void Test_ee40502()
+{
+ extern Class_Descriptor cd_ee40502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40502, buf);
+ ee40502 *dp, &lv = *(dp=new (buf) ee40502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee40502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd0502*), ABISELECT(24,16), "ee40502");
+ check_base_class_offset(lv, (cc502*)(dd0502*), 0, "ee40502");
+ check_base_class_offset(lv, (dd0502*), 0, "ee40502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40502.e");
+ test_class_info(&lv, &cd_ee40502);
+ dp->~ee40502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40502(Test_ee40502, "ee40502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40502C1Ev();
+extern void _ZN7ee40502D1Ev();
+Name_Map name_map_ee40502[] = {
+ NSPAIR(_ZN7ee40502C1Ev),
+ NSPAIR(_ZN7ee40502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd0502;
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static Base_Class bases_ee40502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40502[];
+extern void _ZN7ee405023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee405023barEv,_ZTv0_n16_N7ee405023barEv)();
+extern void ABISELECT(_ZThn24_N7ee405023barEv,_ZThn16_N7ee405023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40502[0]),
+ (VTBL_ENTRY)&_ZN7ee405023barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee405023barEv,_ZTv0_n16_N7ee405023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0502__7ee40502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd0502__7ee40502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd0502__7ee40502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0502__7ee40502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee40502[] = {
+ {&(_ZTV7ee40502[3]), 3,10},
+ {&(_tg__ZTV6dd0502__7ee40502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd0502__7ee40502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd0502__7ee40502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0502__7ee40502[4]), 4,6},
+ {&(_ZTV7ee40502[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40502[];
+extern VTBL_ENTRY _ZTV7ee40502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40502[];
+static VTBL_ENTRY alt_thunk_names972[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee405023barEv,_ZTv0_n16_N7ee405023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee405023barEv,_ZThn16_N7ee405023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40502 = { "ee40502", // class name
+ bases_ee40502, 4,
+ &(vtc_ee40502[0]), // expected_vtbl_contents
+ &(vtt_ee40502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40502),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names972,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50502 : virtual dd0502 {
+ int e;
+ virtual void bar(); // _ZN7ee505023barEv
+ ~ee50502(); // tgen
+ ee50502(); // tgen
+};
+//SIG(1 ee50502) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50502 ::bar(){vfunc_called(this, "_ZN7ee505023barEv");}
+ee50502 ::~ee50502(){ note_dtor("ee50502", this);} // tgen
+ee50502 ::ee50502(){ note_ctor("ee50502", this);} // tgen
+
+static void Test_ee50502()
+{
+ extern Class_Descriptor cd_ee50502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50502, buf);
+ ee50502 *dp, &lv = *(dp=new (buf) ee50502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee50502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd0502*), ABISELECT(32,20), "ee50502");
+ check_base_class_offset(lv, (cc502*)(dd0502*), ABISELECT(16,8), "ee50502");
+ check_base_class_offset(lv, (dd0502*), ABISELECT(16,8), "ee50502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50502.e");
+ test_class_info(&lv, &cd_ee50502);
+ dp->~ee50502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50502(Test_ee50502, "ee50502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50502C1Ev();
+extern void _ZN7ee50502D1Ev();
+Name_Map name_map_ee50502[] = {
+ NSPAIR(_ZN7ee50502C1Ev),
+ NSPAIR(_ZN7ee50502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd0502;
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static Base_Class bases_ee50502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50502[];
+extern void _ZN7ee505023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505023barEv,_ZTv0_n16_N7ee505023barEv)();
+extern void ABISELECT(_ZThn16_N7ee505023barEv,_ZThn8_N7ee505023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505023barEv,_ZTv0_n16_N7ee505023barEv)();
+extern void ABISELECT(_ZThn32_N7ee505023barEv,_ZThn20_N7ee505023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50502[0]),
+ (VTBL_ENTRY)&_ZN7ee505023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505023barEv,_ZTv0_n16_N7ee505023barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505023barEv,_ZTv0_n16_N7ee505023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0502__7ee50502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd0502__7ee50502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd0502__7ee50502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0502__7ee50502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee50502[] = {
+ {&(_ZTV7ee50502[4]), 4,16},
+ {&(_ZTV7ee50502[9]), 9,16},
+ {&(_ZTV7ee50502[14]), 14,16},
+ {&(_tg__ZTV6dd0502__7ee50502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd0502__7ee50502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd0502__7ee50502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0502__7ee50502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50502[];
+extern VTBL_ENTRY _ZTV7ee50502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50502[];
+static VTBL_ENTRY alt_thunk_names973[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505023barEv,_ZTv0_n16_N7ee505023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee505023barEv,_ZThn20_N7ee505023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505023barEv,_ZThn8_N7ee505023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50502 = { "ee50502", // class name
+ bases_ee50502, 4,
+ &(vtc_ee50502[0]), // expected_vtbl_contents
+ &(vtt_ee50502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names973,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60502 : dd0502 {
+ int e;
+ virtual void foo(); // _ZN7ee605023fooEv
+ virtual void bar(); // _ZN7ee605023barEv
+ ~ee60502(); // tgen
+ ee60502(); // tgen
+};
+//SIG(1 ee60502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60502 ::foo(){vfunc_called(this, "_ZN7ee605023fooEv");}
+void ee60502 ::bar(){vfunc_called(this, "_ZN7ee605023barEv");}
+ee60502 ::~ee60502(){ note_dtor("ee60502", this);} // tgen
+ee60502 ::ee60502(){ note_ctor("ee60502", this);} // tgen
+
+static void Test_ee60502()
+{
+ extern Class_Descriptor cd_ee60502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60502, buf);
+ ee60502 *dp, &lv = *(dp=new (buf) ee60502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee60502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd0502*), ABISELECT(24,16), "ee60502");
+ check_base_class_offset(lv, (cc502*)(dd0502*), 0, "ee60502");
+ check_base_class_offset(lv, (dd0502*), 0, "ee60502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60502.e");
+ test_class_info(&lv, &cd_ee60502);
+ dp->~ee60502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60502(Test_ee60502, "ee60502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60502C1Ev();
+extern void _ZN7ee60502D1Ev();
+Name_Map name_map_ee60502[] = {
+ NSPAIR(_ZN7ee60502C1Ev),
+ NSPAIR(_ZN7ee60502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd0502;
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static Base_Class bases_ee60502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60502[];
+extern void _ZN7ee605023barEv();
+extern void _ZN7ee605023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee605023fooEv,_ZTv0_n12_N7ee605023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee605023fooEv,_ZThn16_N7ee605023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee605023barEv,_ZTv0_n16_N7ee605023barEv)();
+extern void ABISELECT(_ZThn24_N7ee605023barEv,_ZThn16_N7ee605023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60502[0]),
+ (VTBL_ENTRY)&_ZN7ee605023barEv,
+ (VTBL_ENTRY)&_ZN7ee605023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605023fooEv,_ZTv0_n12_N7ee605023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605023barEv,_ZTv0_n16_N7ee605023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0502__7ee60502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd0502__7ee60502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd0502__7ee60502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0502__7ee60502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee60502[] = {
+ {&(_ZTV7ee60502[3]), 3,11},
+ {&(_tg__ZTV6dd0502__7ee60502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd0502__7ee60502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd0502__7ee60502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0502__7ee60502[4]), 4,6},
+ {&(_ZTV7ee60502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60502[];
+extern VTBL_ENTRY _ZTV7ee60502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60502[];
+static VTBL_ENTRY alt_thunk_names974[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee605023barEv,_ZTv0_n16_N7ee605023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605023barEv,_ZThn16_N7ee605023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605023fooEv,_ZTv0_n12_N7ee605023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605023fooEv,_ZThn16_N7ee605023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60502 = { "ee60502", // class name
+ bases_ee60502, 4,
+ &(vtc_ee60502[0]), // expected_vtbl_contents
+ &(vtt_ee60502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names974,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70502 : virtual dd0502 {
+ int e;
+ virtual void foo(); // _ZN7ee705023fooEv
+ virtual void bar(); // _ZN7ee705023barEv
+ ~ee70502(); // tgen
+ ee70502(); // tgen
+};
+//SIG(1 ee70502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70502 ::foo(){vfunc_called(this, "_ZN7ee705023fooEv");}
+void ee70502 ::bar(){vfunc_called(this, "_ZN7ee705023barEv");}
+ee70502 ::~ee70502(){ note_dtor("ee70502", this);} // tgen
+ee70502 ::ee70502(){ note_ctor("ee70502", this);} // tgen
+
+static void Test_ee70502()
+{
+ extern Class_Descriptor cd_ee70502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70502, buf);
+ ee70502 *dp, &lv = *(dp=new (buf) ee70502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee70502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd0502*), ABISELECT(32,20), "ee70502");
+ check_base_class_offset(lv, (cc502*)(dd0502*), ABISELECT(16,8), "ee70502");
+ check_base_class_offset(lv, (dd0502*), ABISELECT(16,8), "ee70502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70502.e");
+ test_class_info(&lv, &cd_ee70502);
+ dp->~ee70502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70502(Test_ee70502, "ee70502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70502C1Ev();
+extern void _ZN7ee70502D1Ev();
+Name_Map name_map_ee70502[] = {
+ NSPAIR(_ZN7ee70502C1Ev),
+ NSPAIR(_ZN7ee70502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd0502;
+extern VTBL_ENTRY _ZTI6dd0502[];
+extern VTBL_ENTRY _ZTV6dd0502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0502[];
+static Base_Class bases_ee70502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70502[];
+extern void _ZN7ee705023fooEv();
+extern void _ZN7ee705023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee705023barEv,_ZTv0_n16_N7ee705023barEv)();
+extern void ABISELECT(_ZThn16_N7ee705023barEv,_ZThn8_N7ee705023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705023fooEv,_ZTv0_n12_N7ee705023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee705023fooEv,_ZThn20_N7ee705023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705023barEv,_ZTv0_n16_N7ee705023barEv)();
+extern void ABISELECT(_ZThn32_N7ee705023barEv,_ZThn20_N7ee705023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70502[0]),
+ (VTBL_ENTRY)&_ZN7ee705023fooEv,
+ (VTBL_ENTRY)&_ZN7ee705023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705023barEv,_ZTv0_n16_N7ee705023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705023fooEv,_ZTv0_n12_N7ee705023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705023barEv,_ZTv0_n16_N7ee705023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0502__7ee70502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd0502__7ee70502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd0502__7ee70502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0502__7ee70502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee70502[] = {
+ {&(_ZTV7ee70502[4]), 4,17},
+ {&(_ZTV7ee70502[10]), 10,17},
+ {&(_ZTV7ee70502[15]), 15,17},
+ {&(_tg__ZTV6dd0502__7ee70502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd0502__7ee70502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd0502__7ee70502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0502__7ee70502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70502[];
+extern VTBL_ENTRY _ZTV7ee70502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70502[];
+static VTBL_ENTRY alt_thunk_names975[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705023fooEv,_ZTv0_n12_N7ee705023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705023fooEv,_ZThn20_N7ee705023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705023barEv,_ZTv0_n16_N7ee705023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705023barEv,_ZThn20_N7ee705023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705023barEv,_ZThn8_N7ee705023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70502 = { "ee70502", // class name
+ bases_ee70502, 4,
+ &(vtc_ee70502[0]), // expected_vtbl_contents
+ &(vtt_ee70502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names975,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1502 : virtual cc502 {
+ int d;
+ ~dd1502(); // tgen
+ dd1502(); // tgen
+};
+//SIG(-1 dd1502) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} Fi}
+
+
+dd1502 ::~dd1502(){ note_dtor("dd1502", this);} // tgen
+dd1502 ::dd1502(){ note_ctor("dd1502", this);} // tgen
+
+static void Test_dd1502()
+{
+ extern Class_Descriptor cd_dd1502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1502, buf);
+ dd1502 *dp, &lv = *(dp=new (buf) dd1502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd1502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,16), "dd1502");
+ check_base_class_offset(lv, (cc502*), ABISELECT(16,8), "dd1502");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1502.d");
+ test_class_info(&lv, &cd_dd1502);
+ dp->~dd1502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1502(Test_dd1502, "dd1502", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1502C1Ev();
+extern void _ZN6dd1502D1Ev();
+Name_Map name_map_dd1502[] = {
+ NSPAIR(_ZN6dd1502C1Ev),
+ NSPAIR(_ZN6dd1502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static Base_Class bases_dd1502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__6dd1502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_dd1502[] = {
+ {&(_ZTV6dd1502[4]), 4,15},
+ {&(_ZTV6dd1502[8]), 8,15},
+ {&(_ZTV6dd1502[13]), 13,15},
+ {&(_tg__ZTV5cc502__6dd1502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__6dd1502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static VTBL_ENTRY alt_thunk_names976[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1502 = { "dd1502", // class name
+ bases_dd1502, 3,
+ &(vtc_dd1502[0]), // expected_vtbl_contents
+ &(vtt_dd1502[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1502),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1502),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names976,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01502 : dd1502 {
+ int e;
+ ~ee01502(); // tgen
+ ee01502(); // tgen
+};
+//SIG(1 ee01502) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee01502 ::~ee01502(){ note_dtor("ee01502", this);} // tgen
+ee01502 ::ee01502(){ note_ctor("ee01502", this);} // tgen
+
+static void Test_ee01502()
+{
+ extern Class_Descriptor cd_ee01502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01502, buf);
+ ee01502 *dp, &lv = *(dp=new (buf) ee01502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee01502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee01502");
+ check_base_class_offset(lv, (cc502*)(dd1502*), ABISELECT(16,12), "ee01502");
+ check_base_class_offset(lv, (dd1502*), 0, "ee01502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01502.e");
+ test_class_info(&lv, &cd_ee01502);
+ dp->~ee01502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01502(Test_ee01502, "ee01502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01502C1Ev();
+extern void _ZN7ee01502D1Ev();
+Name_Map name_map_ee01502[] = {
+ NSPAIR(_ZN7ee01502C1Ev),
+ NSPAIR(_ZN7ee01502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd1502;
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static Base_Class bases_ee01502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01502[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01502[];
+static VTBL_ENTRY _tg__ZTV6dd1502__7ee01502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502__7ee01502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1502__7ee01502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee01502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee01502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee01502[] = {
+ {&(_ZTV7ee01502[4]), 4,15},
+ {&(_tg__ZTV6dd1502__7ee01502[4]), 4,4},
+ {&(_tg__ZTV5cc502__6dd1502__7ee01502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1502__7ee01502[4]), 4,6},
+ {&(_ZTV7ee01502[8]), 8,15},
+ {&(_ZTV7ee01502[13]), 13,15},
+ {&(_tg__ZTV5cc502__7ee01502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee01502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01502[];
+extern VTBL_ENTRY _ZTV7ee01502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01502[];
+static VTBL_ENTRY alt_thunk_names977[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01502 = { "ee01502", // class name
+ bases_ee01502, 4,
+ &(vtc_ee01502[0]), // expected_vtbl_contents
+ &(vtt_ee01502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01502),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names977,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11502 : virtual dd1502 {
+ int e;
+ ~ee11502(); // tgen
+ ee11502(); // tgen
+};
+//SIG(1 ee11502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} Fi}
+
+
+ee11502 ::~ee11502(){ note_dtor("ee11502", this);} // tgen
+ee11502 ::ee11502(){ note_ctor("ee11502", this);} // tgen
+
+static void Test_ee11502()
+{
+ extern Class_Descriptor cd_ee11502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11502, buf);
+ ee11502 *dp, &lv = *(dp=new (buf) ee11502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee11502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee11502");
+ check_base_class_offset(lv, (cc502*)(dd1502*), ABISELECT(32,16), "ee11502");
+ check_base_class_offset(lv, (dd1502*), ABISELECT(16,8), "ee11502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11502.e");
+ test_class_info(&lv, &cd_ee11502);
+ dp->~ee11502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11502(Test_ee11502, "ee11502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11502C1Ev();
+extern void _ZN7ee11502D1Ev();
+Name_Map name_map_ee11502[] = {
+ NSPAIR(_ZN7ee11502C1Ev),
+ NSPAIR(_ZN7ee11502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd1502;
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static Base_Class bases_ee11502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11502[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11502[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11502[];
+static VTBL_ENTRY _tg__ZTV6dd1502__7ee11502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502__7ee11502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1502__7ee11502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee11502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee11502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee11502[] = {
+ {&(_ZTV7ee11502[5]), 5,20},
+ {&(_ZTV7ee11502[9]), 9,20},
+ {&(_ZTV7ee11502[13]), 13,20},
+ {&(_ZTV7ee11502[18]), 18,20},
+ {&(_tg__ZTV6dd1502__7ee11502[4]), 4,4},
+ {&(_tg__ZTV5cc502__6dd1502__7ee11502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1502__7ee11502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee11502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee11502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11502[];
+extern VTBL_ENTRY _ZTV7ee11502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11502[];
+static VTBL_ENTRY alt_thunk_names978[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11502 = { "ee11502", // class name
+ bases_ee11502, 4,
+ &(vtc_ee11502[0]), // expected_vtbl_contents
+ &(vtt_ee11502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11502),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names978,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21502 : dd1502 {
+ int e;
+ virtual void foo(); // _ZN7ee215023fooEv
+ ~ee21502(); // tgen
+ ee21502(); // tgen
+};
+//SIG(1 ee21502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21502 ::foo(){vfunc_called(this, "_ZN7ee215023fooEv");}
+ee21502 ::~ee21502(){ note_dtor("ee21502", this);} // tgen
+ee21502 ::ee21502(){ note_ctor("ee21502", this);} // tgen
+
+static void Test_ee21502()
+{
+ extern Class_Descriptor cd_ee21502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21502, buf);
+ ee21502 *dp, &lv = *(dp=new (buf) ee21502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee21502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee21502");
+ check_base_class_offset(lv, (cc502*)(dd1502*), ABISELECT(16,12), "ee21502");
+ check_base_class_offset(lv, (dd1502*), 0, "ee21502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21502.e");
+ test_class_info(&lv, &cd_ee21502);
+ dp->~ee21502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21502(Test_ee21502, "ee21502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21502C1Ev();
+extern void _ZN7ee21502D1Ev();
+Name_Map name_map_ee21502[] = {
+ NSPAIR(_ZN7ee21502C1Ev),
+ NSPAIR(_ZN7ee21502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd1502;
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static Base_Class bases_ee21502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21502[];
+extern void _ZN7ee215023fooEv();
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee215023fooEv,_ZTv0_n12_N7ee215023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee215023fooEv,_ZThn20_N7ee215023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21502[0]),
+ (VTBL_ENTRY)&_ZN7ee215023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215023fooEv,_ZTv0_n12_N7ee215023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21502[];
+static VTBL_ENTRY _tg__ZTV6dd1502__7ee21502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502__7ee21502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1502__7ee21502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee21502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee21502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee21502[] = {
+ {&(_ZTV7ee21502[4]), 4,16},
+ {&(_tg__ZTV6dd1502__7ee21502[4]), 4,4},
+ {&(_tg__ZTV5cc502__6dd1502__7ee21502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1502__7ee21502[4]), 4,6},
+ {&(_ZTV7ee21502[9]), 9,16},
+ {&(_ZTV7ee21502[14]), 14,16},
+ {&(_tg__ZTV5cc502__7ee21502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee21502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21502[];
+extern VTBL_ENTRY _ZTV7ee21502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21502[];
+static VTBL_ENTRY alt_thunk_names979[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215023fooEv,_ZTv0_n12_N7ee215023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee215023fooEv,_ZThn20_N7ee215023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21502 = { "ee21502", // class name
+ bases_ee21502, 4,
+ &(vtc_ee21502[0]), // expected_vtbl_contents
+ &(vtt_ee21502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names979,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31502 : virtual dd1502 {
+ int e;
+ virtual void foo(); // _ZN7ee315023fooEv
+ ~ee31502(); // tgen
+ ee31502(); // tgen
+};
+//SIG(1 ee31502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31502 ::foo(){vfunc_called(this, "_ZN7ee315023fooEv");}
+ee31502 ::~ee31502(){ note_dtor("ee31502", this);} // tgen
+ee31502 ::ee31502(){ note_ctor("ee31502", this);} // tgen
+
+static void Test_ee31502()
+{
+ extern Class_Descriptor cd_ee31502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31502, buf);
+ ee31502 *dp, &lv = *(dp=new (buf) ee31502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee31502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee31502");
+ check_base_class_offset(lv, (cc502*)(dd1502*), ABISELECT(32,16), "ee31502");
+ check_base_class_offset(lv, (dd1502*), ABISELECT(16,8), "ee31502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31502.e");
+ test_class_info(&lv, &cd_ee31502);
+ dp->~ee31502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31502(Test_ee31502, "ee31502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31502C1Ev();
+extern void _ZN7ee31502D1Ev();
+Name_Map name_map_ee31502[] = {
+ NSPAIR(_ZN7ee31502C1Ev),
+ NSPAIR(_ZN7ee31502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd1502;
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static Base_Class bases_ee31502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31502[];
+extern void _ZN7ee315023fooEv();
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee315023fooEv,_ZTv0_n12_N7ee315023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee315023fooEv,_ZThn24_N7ee315023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31502[0]),
+ (VTBL_ENTRY)&_ZN7ee315023fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31502[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315023fooEv,_ZTv0_n12_N7ee315023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31502[];
+static VTBL_ENTRY _tg__ZTV6dd1502__7ee31502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502__7ee31502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1502__7ee31502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee31502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee31502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee31502[] = {
+ {&(_ZTV7ee31502[5]), 5,21},
+ {&(_ZTV7ee31502[10]), 10,21},
+ {&(_ZTV7ee31502[14]), 14,21},
+ {&(_ZTV7ee31502[19]), 19,21},
+ {&(_tg__ZTV6dd1502__7ee31502[4]), 4,4},
+ {&(_tg__ZTV5cc502__6dd1502__7ee31502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1502__7ee31502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee31502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee31502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31502[];
+extern VTBL_ENTRY _ZTV7ee31502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31502[];
+static VTBL_ENTRY alt_thunk_names980[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315023fooEv,_ZTv0_n12_N7ee315023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee315023fooEv,_ZThn24_N7ee315023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31502 = { "ee31502", // class name
+ bases_ee31502, 4,
+ &(vtc_ee31502[0]), // expected_vtbl_contents
+ &(vtt_ee31502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31502),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names980,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41502 : dd1502 {
+ int e;
+ virtual void bar(); // _ZN7ee415023barEv
+ ~ee41502(); // tgen
+ ee41502(); // tgen
+};
+//SIG(1 ee41502) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41502 ::bar(){vfunc_called(this, "_ZN7ee415023barEv");}
+ee41502 ::~ee41502(){ note_dtor("ee41502", this);} // tgen
+ee41502 ::ee41502(){ note_ctor("ee41502", this);} // tgen
+
+static void Test_ee41502()
+{
+ extern Class_Descriptor cd_ee41502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41502, buf);
+ ee41502 *dp, &lv = *(dp=new (buf) ee41502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee41502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee41502");
+ check_base_class_offset(lv, (cc502*)(dd1502*), ABISELECT(16,12), "ee41502");
+ check_base_class_offset(lv, (dd1502*), 0, "ee41502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41502.e");
+ test_class_info(&lv, &cd_ee41502);
+ dp->~ee41502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41502(Test_ee41502, "ee41502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41502C1Ev();
+extern void _ZN7ee41502D1Ev();
+Name_Map name_map_ee41502[] = {
+ NSPAIR(_ZN7ee41502C1Ev),
+ NSPAIR(_ZN7ee41502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd1502;
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static Base_Class bases_ee41502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41502[];
+extern void _ZN7ee415023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415023barEv,_ZTv0_n16_N7ee415023barEv)();
+extern void ABISELECT(_ZThn16_N7ee415023barEv,_ZThn12_N7ee415023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415023barEv,_ZTv0_n16_N7ee415023barEv)();
+extern void ABISELECT(_ZThn32_N7ee415023barEv,_ZThn20_N7ee415023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41502[0]),
+ (VTBL_ENTRY)&_ZN7ee415023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415023barEv,_ZTv0_n16_N7ee415023barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415023barEv,_ZTv0_n16_N7ee415023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41502[];
+static VTBL_ENTRY _tg__ZTV6dd1502__7ee41502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502__7ee41502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1502__7ee41502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee41502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee41502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee41502[] = {
+ {&(_ZTV7ee41502[4]), 4,16},
+ {&(_tg__ZTV6dd1502__7ee41502[4]), 4,4},
+ {&(_tg__ZTV5cc502__6dd1502__7ee41502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1502__7ee41502[4]), 4,6},
+ {&(_ZTV7ee41502[9]), 9,16},
+ {&(_ZTV7ee41502[14]), 14,16},
+ {&(_tg__ZTV5cc502__7ee41502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee41502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41502[];
+extern VTBL_ENTRY _ZTV7ee41502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41502[];
+static VTBL_ENTRY alt_thunk_names981[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415023barEv,_ZTv0_n16_N7ee415023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee415023barEv,_ZThn20_N7ee415023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415023barEv,_ZThn12_N7ee415023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41502 = { "ee41502", // class name
+ bases_ee41502, 4,
+ &(vtc_ee41502[0]), // expected_vtbl_contents
+ &(vtt_ee41502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names981,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51502 : virtual dd1502 {
+ int e;
+ virtual void bar(); // _ZN7ee515023barEv
+ ~ee51502(); // tgen
+ ee51502(); // tgen
+};
+//SIG(1 ee51502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51502 ::bar(){vfunc_called(this, "_ZN7ee515023barEv");}
+ee51502 ::~ee51502(){ note_dtor("ee51502", this);} // tgen
+ee51502 ::ee51502(){ note_ctor("ee51502", this);} // tgen
+
+static void Test_ee51502()
+{
+ extern Class_Descriptor cd_ee51502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51502, buf);
+ ee51502 *dp, &lv = *(dp=new (buf) ee51502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee51502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee51502");
+ check_base_class_offset(lv, (cc502*)(dd1502*), ABISELECT(32,16), "ee51502");
+ check_base_class_offset(lv, (dd1502*), ABISELECT(16,8), "ee51502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51502.e");
+ test_class_info(&lv, &cd_ee51502);
+ dp->~ee51502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51502(Test_ee51502, "ee51502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51502C1Ev();
+extern void _ZN7ee51502D1Ev();
+Name_Map name_map_ee51502[] = {
+ NSPAIR(_ZN7ee51502C1Ev),
+ NSPAIR(_ZN7ee51502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd1502;
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static Base_Class bases_ee51502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51502[];
+extern void _ZN7ee515023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515023barEv,_ZTv0_n16_N7ee515023barEv)();
+extern void ABISELECT(_ZThn32_N7ee515023barEv,_ZThn16_N7ee515023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515023barEv,_ZTv0_n16_N7ee515023barEv)();
+extern void ABISELECT(_ZThn48_N7ee515023barEv,_ZThn24_N7ee515023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51502[0]),
+ (VTBL_ENTRY)&_ZN7ee515023barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51502[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515023barEv,_ZTv0_n16_N7ee515023barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515023barEv,_ZTv0_n16_N7ee515023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51502[];
+static VTBL_ENTRY _tg__ZTV6dd1502__7ee51502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502__7ee51502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1502__7ee51502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee51502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee51502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee51502[] = {
+ {&(_ZTV7ee51502[5]), 5,21},
+ {&(_ZTV7ee51502[10]), 10,21},
+ {&(_ZTV7ee51502[14]), 14,21},
+ {&(_ZTV7ee51502[19]), 19,21},
+ {&(_tg__ZTV6dd1502__7ee51502[4]), 4,4},
+ {&(_tg__ZTV5cc502__6dd1502__7ee51502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1502__7ee51502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee51502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee51502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51502[];
+extern VTBL_ENTRY _ZTV7ee51502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51502[];
+static VTBL_ENTRY alt_thunk_names982[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515023barEv,_ZTv0_n16_N7ee515023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee515023barEv,_ZThn24_N7ee515023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515023barEv,_ZThn16_N7ee515023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51502 = { "ee51502", // class name
+ bases_ee51502, 4,
+ &(vtc_ee51502[0]), // expected_vtbl_contents
+ &(vtt_ee51502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51502),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names982,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61502 : dd1502 {
+ int e;
+ virtual void foo(); // _ZN7ee615023fooEv
+ virtual void bar(); // _ZN7ee615023barEv
+ ~ee61502(); // tgen
+ ee61502(); // tgen
+};
+//SIG(1 ee61502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61502 ::foo(){vfunc_called(this, "_ZN7ee615023fooEv");}
+void ee61502 ::bar(){vfunc_called(this, "_ZN7ee615023barEv");}
+ee61502 ::~ee61502(){ note_dtor("ee61502", this);} // tgen
+ee61502 ::ee61502(){ note_ctor("ee61502", this);} // tgen
+
+static void Test_ee61502()
+{
+ extern Class_Descriptor cd_ee61502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61502, buf);
+ ee61502 *dp, &lv = *(dp=new (buf) ee61502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee61502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee61502");
+ check_base_class_offset(lv, (cc502*)(dd1502*), ABISELECT(16,12), "ee61502");
+ check_base_class_offset(lv, (dd1502*), 0, "ee61502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61502.e");
+ test_class_info(&lv, &cd_ee61502);
+ dp->~ee61502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61502(Test_ee61502, "ee61502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61502C1Ev();
+extern void _ZN7ee61502D1Ev();
+Name_Map name_map_ee61502[] = {
+ NSPAIR(_ZN7ee61502C1Ev),
+ NSPAIR(_ZN7ee61502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd1502;
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static Base_Class bases_ee61502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61502[];
+extern void _ZN7ee615023fooEv();
+extern void _ZN7ee615023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee615023barEv,_ZTv0_n16_N7ee615023barEv)();
+extern void ABISELECT(_ZThn16_N7ee615023barEv,_ZThn12_N7ee615023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615023fooEv,_ZTv0_n12_N7ee615023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee615023fooEv,_ZThn20_N7ee615023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615023barEv,_ZTv0_n16_N7ee615023barEv)();
+extern void ABISELECT(_ZThn32_N7ee615023barEv,_ZThn20_N7ee615023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61502[0]),
+ (VTBL_ENTRY)&_ZN7ee615023fooEv,
+ (VTBL_ENTRY)&_ZN7ee615023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615023barEv,_ZTv0_n16_N7ee615023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615023fooEv,_ZTv0_n12_N7ee615023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615023barEv,_ZTv0_n16_N7ee615023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61502[];
+static VTBL_ENTRY _tg__ZTV6dd1502__7ee61502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502__7ee61502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1502__7ee61502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee61502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee61502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee61502[] = {
+ {&(_ZTV7ee61502[4]), 4,17},
+ {&(_tg__ZTV6dd1502__7ee61502[4]), 4,4},
+ {&(_tg__ZTV5cc502__6dd1502__7ee61502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1502__7ee61502[4]), 4,6},
+ {&(_ZTV7ee61502[10]), 10,17},
+ {&(_ZTV7ee61502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee61502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee61502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61502[];
+extern VTBL_ENTRY _ZTV7ee61502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61502[];
+static VTBL_ENTRY alt_thunk_names983[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615023fooEv,_ZTv0_n12_N7ee615023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615023fooEv,_ZThn20_N7ee615023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615023barEv,_ZTv0_n16_N7ee615023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615023barEv,_ZThn20_N7ee615023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615023barEv,_ZThn12_N7ee615023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61502 = { "ee61502", // class name
+ bases_ee61502, 4,
+ &(vtc_ee61502[0]), // expected_vtbl_contents
+ &(vtt_ee61502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names983,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71502 : virtual dd1502 {
+ int e;
+ virtual void foo(); // _ZN7ee715023fooEv
+ virtual void bar(); // _ZN7ee715023barEv
+ ~ee71502(); // tgen
+ ee71502(); // tgen
+};
+//SIG(1 ee71502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71502 ::foo(){vfunc_called(this, "_ZN7ee715023fooEv");}
+void ee71502 ::bar(){vfunc_called(this, "_ZN7ee715023barEv");}
+ee71502 ::~ee71502(){ note_dtor("ee71502", this);} // tgen
+ee71502 ::ee71502(){ note_ctor("ee71502", this);} // tgen
+
+static void Test_ee71502()
+{
+ extern Class_Descriptor cd_ee71502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71502, buf);
+ ee71502 *dp, &lv = *(dp=new (buf) ee71502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee71502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee71502");
+ check_base_class_offset(lv, (cc502*)(dd1502*), ABISELECT(32,16), "ee71502");
+ check_base_class_offset(lv, (dd1502*), ABISELECT(16,8), "ee71502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71502.e");
+ test_class_info(&lv, &cd_ee71502);
+ dp->~ee71502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71502(Test_ee71502, "ee71502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71502C1Ev();
+extern void _ZN7ee71502D1Ev();
+Name_Map name_map_ee71502[] = {
+ NSPAIR(_ZN7ee71502C1Ev),
+ NSPAIR(_ZN7ee71502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd1502;
+extern VTBL_ENTRY _ZTI6dd1502[];
+extern VTBL_ENTRY _ZTV6dd1502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1502[];
+static Base_Class bases_ee71502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1502, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71502[];
+extern void _ZN7ee715023fooEv();
+extern void _ZN7ee715023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee715023barEv,_ZTv0_n16_N7ee715023barEv)();
+extern void ABISELECT(_ZThn32_N7ee715023barEv,_ZThn16_N7ee715023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715023fooEv,_ZTv0_n12_N7ee715023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee715023fooEv,_ZThn24_N7ee715023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715023barEv,_ZTv0_n16_N7ee715023barEv)();
+extern void ABISELECT(_ZThn48_N7ee715023barEv,_ZThn24_N7ee715023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71502[0]),
+ (VTBL_ENTRY)&_ZN7ee715023fooEv,
+ (VTBL_ENTRY)&_ZN7ee715023barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71502[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715023barEv,_ZTv0_n16_N7ee715023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715023fooEv,_ZTv0_n12_N7ee715023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715023barEv,_ZTv0_n16_N7ee715023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71502[];
+static VTBL_ENTRY _tg__ZTV6dd1502__7ee71502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd1502__7ee71502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1502__7ee71502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee71502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee71502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee71502[] = {
+ {&(_ZTV7ee71502[5]), 5,22},
+ {&(_ZTV7ee71502[11]), 11,22},
+ {&(_ZTV7ee71502[15]), 15,22},
+ {&(_ZTV7ee71502[20]), 20,22},
+ {&(_tg__ZTV6dd1502__7ee71502[4]), 4,4},
+ {&(_tg__ZTV5cc502__6dd1502__7ee71502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd1502__7ee71502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee71502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee71502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71502[];
+extern VTBL_ENTRY _ZTV7ee71502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71502[];
+static VTBL_ENTRY alt_thunk_names984[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715023fooEv,_ZTv0_n12_N7ee715023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715023fooEv,_ZThn24_N7ee715023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715023barEv,_ZTv0_n16_N7ee715023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715023barEv,_ZThn24_N7ee715023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715023barEv,_ZThn16_N7ee715023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71502 = { "ee71502", // class name
+ bases_ee71502, 4,
+ &(vtc_ee71502[0]), // expected_vtbl_contents
+ &(vtt_ee71502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71502),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names984,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2502 : cc502 {
+ int d;
+ virtual void foo(); // _ZN6dd25023fooEv
+ ~dd2502(); // tgen
+ dd2502(); // tgen
+};
+//SIG(-1 dd2502) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd2502 ::foo(){vfunc_called(this, "_ZN6dd25023fooEv");}
+dd2502 ::~dd2502(){ note_dtor("dd2502", this);} // tgen
+dd2502 ::dd2502(){ note_ctor("dd2502", this);} // tgen
+
+static void Test_dd2502()
+{
+ extern Class_Descriptor cd_dd2502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2502, buf);
+ dd2502 *dp, &lv = *(dp=new (buf) dd2502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd2502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(16,12), "dd2502");
+ check_base_class_offset(lv, (cc502*), 0, "dd2502");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2502.d");
+ test_class_info(&lv, &cd_dd2502);
+ dp->~dd2502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2502(Test_dd2502, "dd2502", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2502C1Ev();
+extern void _ZN6dd2502D1Ev();
+Name_Map name_map_dd2502[] = {
+ NSPAIR(_ZN6dd2502C1Ev),
+ NSPAIR(_ZN6dd2502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static Base_Class bases_dd2502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd2502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__6dd2502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_dd2502[] = {
+ {&(_ZTV6dd2502[3]), 3,11},
+ {&(_tg__ZTV5cc502__6dd2502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__6dd2502[4]), 4,6},
+ {&(_ZTV6dd2502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static VTBL_ENTRY alt_thunk_names985[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2502 = { "dd2502", // class name
+ bases_dd2502, 3,
+ &(vtc_dd2502[0]), // expected_vtbl_contents
+ &(vtt_dd2502[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2502),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names985,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02502 : dd2502 {
+ int e;
+ ~ee02502(); // tgen
+ ee02502(); // tgen
+};
+//SIG(1 ee02502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02502 ::~ee02502(){ note_dtor("ee02502", this);} // tgen
+ee02502 ::ee02502(){ note_ctor("ee02502", this);} // tgen
+
+static void Test_ee02502()
+{
+ extern Class_Descriptor cd_ee02502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02502, buf);
+ ee02502 *dp, &lv = *(dp=new (buf) ee02502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee02502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd2502*), ABISELECT(24,16), "ee02502");
+ check_base_class_offset(lv, (cc502*)(dd2502*), 0, "ee02502");
+ check_base_class_offset(lv, (dd2502*), 0, "ee02502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02502.e");
+ test_class_info(&lv, &cd_ee02502);
+ dp->~ee02502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02502(Test_ee02502, "ee02502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02502C1Ev();
+extern void _ZN7ee02502D1Ev();
+Name_Map name_map_ee02502[] = {
+ NSPAIR(_ZN7ee02502C1Ev),
+ NSPAIR(_ZN7ee02502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd2502;
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static Base_Class bases_ee02502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2502__7ee02502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd2502__7ee02502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd2502__7ee02502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2502__7ee02502[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee02502[] = {
+ {&(_ZTV7ee02502[3]), 3,11},
+ {&(_tg__ZTV6dd2502__7ee02502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd2502__7ee02502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd2502__7ee02502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2502__7ee02502[4]), 4,6},
+ {&(_ZTV7ee02502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02502[];
+extern VTBL_ENTRY _ZTV7ee02502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02502[];
+static VTBL_ENTRY alt_thunk_names986[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02502 = { "ee02502", // class name
+ bases_ee02502, 4,
+ &(vtc_ee02502[0]), // expected_vtbl_contents
+ &(vtt_ee02502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names986,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12502 : virtual dd2502 {
+ int e;
+ ~ee12502(); // tgen
+ ee12502(); // tgen
+};
+//SIG(1 ee12502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12502 ::~ee12502(){ note_dtor("ee12502", this);} // tgen
+ee12502 ::ee12502(){ note_ctor("ee12502", this);} // tgen
+
+static void Test_ee12502()
+{
+ extern Class_Descriptor cd_ee12502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12502, buf);
+ ee12502 *dp, &lv = *(dp=new (buf) ee12502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee12502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd2502*), ABISELECT(32,20), "ee12502");
+ check_base_class_offset(lv, (cc502*)(dd2502*), ABISELECT(16,8), "ee12502");
+ check_base_class_offset(lv, (dd2502*), ABISELECT(16,8), "ee12502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12502.e");
+ test_class_info(&lv, &cd_ee12502);
+ dp->~ee12502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12502(Test_ee12502, "ee12502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12502C1Ev();
+extern void _ZN7ee12502D1Ev();
+Name_Map name_map_ee12502[] = {
+ NSPAIR(_ZN7ee12502C1Ev),
+ NSPAIR(_ZN7ee12502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd2502;
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static Base_Class bases_ee12502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2502, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12502[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2502__7ee12502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd2502__7ee12502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd2502__7ee12502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2502__7ee12502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee12502[] = {
+ {&(_ZTV7ee12502[4]), 4,17},
+ {&(_ZTV7ee12502[9]), 9,17},
+ {&(_ZTV7ee12502[15]), 15,17},
+ {&(_tg__ZTV6dd2502__7ee12502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd2502__7ee12502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd2502__7ee12502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2502__7ee12502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12502[];
+extern VTBL_ENTRY _ZTV7ee12502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12502[];
+static VTBL_ENTRY alt_thunk_names987[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12502 = { "ee12502", // class name
+ bases_ee12502, 4,
+ &(vtc_ee12502[0]), // expected_vtbl_contents
+ &(vtt_ee12502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names987,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22502 : dd2502 {
+ int e;
+ virtual void foo(); // _ZN7ee225023fooEv
+ ~ee22502(); // tgen
+ ee22502(); // tgen
+};
+//SIG(1 ee22502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22502 ::foo(){vfunc_called(this, "_ZN7ee225023fooEv");}
+ee22502 ::~ee22502(){ note_dtor("ee22502", this);} // tgen
+ee22502 ::ee22502(){ note_ctor("ee22502", this);} // tgen
+
+static void Test_ee22502()
+{
+ extern Class_Descriptor cd_ee22502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22502, buf);
+ ee22502 *dp, &lv = *(dp=new (buf) ee22502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee22502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd2502*), ABISELECT(24,16), "ee22502");
+ check_base_class_offset(lv, (cc502*)(dd2502*), 0, "ee22502");
+ check_base_class_offset(lv, (dd2502*), 0, "ee22502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22502.e");
+ test_class_info(&lv, &cd_ee22502);
+ dp->~ee22502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22502(Test_ee22502, "ee22502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22502C1Ev();
+extern void _ZN7ee22502D1Ev();
+Name_Map name_map_ee22502[] = {
+ NSPAIR(_ZN7ee22502C1Ev),
+ NSPAIR(_ZN7ee22502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd2502;
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static Base_Class bases_ee22502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN7ee225023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee225023fooEv,_ZTv0_n12_N7ee225023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee225023fooEv,_ZThn16_N7ee225023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN7ee225023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225023fooEv,_ZTv0_n12_N7ee225023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2502__7ee22502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd2502__7ee22502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd2502__7ee22502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2502__7ee22502[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee22502[] = {
+ {&(_ZTV7ee22502[3]), 3,11},
+ {&(_tg__ZTV6dd2502__7ee22502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd2502__7ee22502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd2502__7ee22502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2502__7ee22502[4]), 4,6},
+ {&(_ZTV7ee22502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22502[];
+extern VTBL_ENTRY _ZTV7ee22502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22502[];
+static VTBL_ENTRY alt_thunk_names988[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225023fooEv,_ZTv0_n12_N7ee225023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee225023fooEv,_ZThn16_N7ee225023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22502 = { "ee22502", // class name
+ bases_ee22502, 4,
+ &(vtc_ee22502[0]), // expected_vtbl_contents
+ &(vtt_ee22502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names988,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32502 : virtual dd2502 {
+ int e;
+ virtual void foo(); // _ZN7ee325023fooEv
+ ~ee32502(); // tgen
+ ee32502(); // tgen
+};
+//SIG(1 ee32502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32502 ::foo(){vfunc_called(this, "_ZN7ee325023fooEv");}
+ee32502 ::~ee32502(){ note_dtor("ee32502", this);} // tgen
+ee32502 ::ee32502(){ note_ctor("ee32502", this);} // tgen
+
+static void Test_ee32502()
+{
+ extern Class_Descriptor cd_ee32502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32502, buf);
+ ee32502 *dp, &lv = *(dp=new (buf) ee32502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee32502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd2502*), ABISELECT(32,20), "ee32502");
+ check_base_class_offset(lv, (cc502*)(dd2502*), ABISELECT(16,8), "ee32502");
+ check_base_class_offset(lv, (dd2502*), ABISELECT(16,8), "ee32502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32502.e");
+ test_class_info(&lv, &cd_ee32502);
+ dp->~ee32502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32502(Test_ee32502, "ee32502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32502C1Ev();
+extern void _ZN7ee32502D1Ev();
+Name_Map name_map_ee32502[] = {
+ NSPAIR(_ZN7ee32502C1Ev),
+ NSPAIR(_ZN7ee32502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd2502;
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static Base_Class bases_ee32502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32502[];
+extern void _ZN7ee325023fooEv();
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee325023fooEv,_ZTv0_n20_N7ee325023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325023fooEv,_ZThn8_N7ee325023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325023fooEv,_ZTv0_n12_N7ee325023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee325023fooEv,_ZThn20_N7ee325023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32502[0]),
+ (VTBL_ENTRY)&_ZN7ee325023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee325023fooEv,_ZTv0_n20_N7ee325023fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325023fooEv,_ZTv0_n12_N7ee325023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2502__7ee32502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd2502__7ee32502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd2502__7ee32502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2502__7ee32502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee32502[] = {
+ {&(_ZTV7ee32502[4]), 4,18},
+ {&(_ZTV7ee32502[10]), 10,18},
+ {&(_ZTV7ee32502[16]), 16,18},
+ {&(_tg__ZTV6dd2502__7ee32502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd2502__7ee32502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd2502__7ee32502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2502__7ee32502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32502[];
+extern VTBL_ENTRY _ZTV7ee32502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32502[];
+static VTBL_ENTRY alt_thunk_names989[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325023fooEv,_ZTv0_n12_N7ee325023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee325023fooEv,_ZThn20_N7ee325023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee325023fooEv,_ZTv0_n20_N7ee325023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325023fooEv,_ZThn8_N7ee325023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32502 = { "ee32502", // class name
+ bases_ee32502, 4,
+ &(vtc_ee32502[0]), // expected_vtbl_contents
+ &(vtt_ee32502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32502),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names989,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42502 : dd2502 {
+ int e;
+ virtual void bar(); // _ZN7ee425023barEv
+ ~ee42502(); // tgen
+ ee42502(); // tgen
+};
+//SIG(1 ee42502) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42502 ::bar(){vfunc_called(this, "_ZN7ee425023barEv");}
+ee42502 ::~ee42502(){ note_dtor("ee42502", this);} // tgen
+ee42502 ::ee42502(){ note_ctor("ee42502", this);} // tgen
+
+static void Test_ee42502()
+{
+ extern Class_Descriptor cd_ee42502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42502, buf);
+ ee42502 *dp, &lv = *(dp=new (buf) ee42502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee42502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd2502*), ABISELECT(24,16), "ee42502");
+ check_base_class_offset(lv, (cc502*)(dd2502*), 0, "ee42502");
+ check_base_class_offset(lv, (dd2502*), 0, "ee42502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42502.e");
+ test_class_info(&lv, &cd_ee42502);
+ dp->~ee42502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42502(Test_ee42502, "ee42502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42502C1Ev();
+extern void _ZN7ee42502D1Ev();
+Name_Map name_map_ee42502[] = {
+ NSPAIR(_ZN7ee42502C1Ev),
+ NSPAIR(_ZN7ee42502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd2502;
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static Base_Class bases_ee42502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42502[];
+extern void _ZN7ee425023barEv();
+extern void _ZN6dd25023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee425023barEv,_ZTv0_n16_N7ee425023barEv)();
+extern void ABISELECT(_ZThn24_N7ee425023barEv,_ZThn16_N7ee425023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42502[0]),
+ (VTBL_ENTRY)&_ZN7ee425023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee425023barEv,_ZTv0_n16_N7ee425023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2502__7ee42502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd2502__7ee42502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd2502__7ee42502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2502__7ee42502[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee42502[] = {
+ {&(_ZTV7ee42502[3]), 3,11},
+ {&(_tg__ZTV6dd2502__7ee42502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd2502__7ee42502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd2502__7ee42502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2502__7ee42502[4]), 4,6},
+ {&(_ZTV7ee42502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42502[];
+extern VTBL_ENTRY _ZTV7ee42502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42502[];
+static VTBL_ENTRY alt_thunk_names990[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee425023barEv,_ZTv0_n16_N7ee425023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee425023barEv,_ZThn16_N7ee425023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42502 = { "ee42502", // class name
+ bases_ee42502, 4,
+ &(vtc_ee42502[0]), // expected_vtbl_contents
+ &(vtt_ee42502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names990,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52502 : virtual dd2502 {
+ int e;
+ virtual void bar(); // _ZN7ee525023barEv
+ ~ee52502(); // tgen
+ ee52502(); // tgen
+};
+//SIG(1 ee52502) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52502 ::bar(){vfunc_called(this, "_ZN7ee525023barEv");}
+ee52502 ::~ee52502(){ note_dtor("ee52502", this);} // tgen
+ee52502 ::ee52502(){ note_ctor("ee52502", this);} // tgen
+
+static void Test_ee52502()
+{
+ extern Class_Descriptor cd_ee52502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52502, buf);
+ ee52502 *dp, &lv = *(dp=new (buf) ee52502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee52502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd2502*), ABISELECT(32,20), "ee52502");
+ check_base_class_offset(lv, (cc502*)(dd2502*), ABISELECT(16,8), "ee52502");
+ check_base_class_offset(lv, (dd2502*), ABISELECT(16,8), "ee52502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52502.e");
+ test_class_info(&lv, &cd_ee52502);
+ dp->~ee52502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52502(Test_ee52502, "ee52502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52502C1Ev();
+extern void _ZN7ee52502D1Ev();
+Name_Map name_map_ee52502[] = {
+ NSPAIR(_ZN7ee52502C1Ev),
+ NSPAIR(_ZN7ee52502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd2502;
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static Base_Class bases_ee52502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52502[];
+extern void _ZN7ee525023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525023barEv,_ZTv0_n16_N7ee525023barEv)();
+extern void ABISELECT(_ZThn16_N7ee525023barEv,_ZThn8_N7ee525023barEv)() __attribute__((weak));
+extern void _ZN6dd25023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee525023barEv,_ZTv0_n16_N7ee525023barEv)();
+extern void ABISELECT(_ZThn32_N7ee525023barEv,_ZThn20_N7ee525023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52502[0]),
+ (VTBL_ENTRY)&_ZN7ee525023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525023barEv,_ZTv0_n16_N7ee525023barEv),
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525023barEv,_ZTv0_n16_N7ee525023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2502__7ee52502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd2502__7ee52502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd2502__7ee52502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2502__7ee52502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee52502[] = {
+ {&(_ZTV7ee52502[4]), 4,18},
+ {&(_ZTV7ee52502[10]), 10,18},
+ {&(_ZTV7ee52502[16]), 16,18},
+ {&(_tg__ZTV6dd2502__7ee52502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd2502__7ee52502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd2502__7ee52502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2502__7ee52502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52502[];
+extern VTBL_ENTRY _ZTV7ee52502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52502[];
+static VTBL_ENTRY alt_thunk_names991[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525023barEv,_ZTv0_n16_N7ee525023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee525023barEv,_ZThn20_N7ee525023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525023barEv,_ZThn8_N7ee525023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52502 = { "ee52502", // class name
+ bases_ee52502, 4,
+ &(vtc_ee52502[0]), // expected_vtbl_contents
+ &(vtt_ee52502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52502),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names991,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62502 : dd2502 {
+ int e;
+ virtual void foo(); // _ZN7ee625023fooEv
+ virtual void bar(); // _ZN7ee625023barEv
+ ~ee62502(); // tgen
+ ee62502(); // tgen
+};
+//SIG(1 ee62502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62502 ::foo(){vfunc_called(this, "_ZN7ee625023fooEv");}
+void ee62502 ::bar(){vfunc_called(this, "_ZN7ee625023barEv");}
+ee62502 ::~ee62502(){ note_dtor("ee62502", this);} // tgen
+ee62502 ::ee62502(){ note_ctor("ee62502", this);} // tgen
+
+static void Test_ee62502()
+{
+ extern Class_Descriptor cd_ee62502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62502, buf);
+ ee62502 *dp, &lv = *(dp=new (buf) ee62502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee62502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd2502*), ABISELECT(24,16), "ee62502");
+ check_base_class_offset(lv, (cc502*)(dd2502*), 0, "ee62502");
+ check_base_class_offset(lv, (dd2502*), 0, "ee62502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62502.e");
+ test_class_info(&lv, &cd_ee62502);
+ dp->~ee62502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62502(Test_ee62502, "ee62502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62502C1Ev();
+extern void _ZN7ee62502D1Ev();
+Name_Map name_map_ee62502[] = {
+ NSPAIR(_ZN7ee62502C1Ev),
+ NSPAIR(_ZN7ee62502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd2502;
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static Base_Class bases_ee62502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62502[];
+extern void _ZN7ee625023barEv();
+extern void _ZN7ee625023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee625023fooEv,_ZTv0_n12_N7ee625023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee625023fooEv,_ZThn16_N7ee625023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee625023barEv,_ZTv0_n16_N7ee625023barEv)();
+extern void ABISELECT(_ZThn24_N7ee625023barEv,_ZThn16_N7ee625023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62502[0]),
+ (VTBL_ENTRY)&_ZN7ee625023barEv,
+ (VTBL_ENTRY)&_ZN7ee625023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625023fooEv,_ZTv0_n12_N7ee625023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625023barEv,_ZTv0_n16_N7ee625023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2502__7ee62502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd2502__7ee62502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd2502__7ee62502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2502__7ee62502[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee62502[] = {
+ {&(_ZTV7ee62502[3]), 3,11},
+ {&(_tg__ZTV6dd2502__7ee62502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd2502__7ee62502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd2502__7ee62502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2502__7ee62502[4]), 4,6},
+ {&(_ZTV7ee62502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62502[];
+extern VTBL_ENTRY _ZTV7ee62502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62502[];
+static VTBL_ENTRY alt_thunk_names992[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd25023fooEv,_ZThn16_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee625023barEv,_ZTv0_n16_N7ee625023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625023barEv,_ZThn16_N7ee625023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625023fooEv,_ZTv0_n12_N7ee625023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625023fooEv,_ZThn16_N7ee625023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62502 = { "ee62502", // class name
+ bases_ee62502, 4,
+ &(vtc_ee62502[0]), // expected_vtbl_contents
+ &(vtt_ee62502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names992,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72502 : virtual dd2502 {
+ int e;
+ virtual void foo(); // _ZN7ee725023fooEv
+ virtual void bar(); // _ZN7ee725023barEv
+ ~ee72502(); // tgen
+ ee72502(); // tgen
+};
+//SIG(1 ee72502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72502 ::foo(){vfunc_called(this, "_ZN7ee725023fooEv");}
+void ee72502 ::bar(){vfunc_called(this, "_ZN7ee725023barEv");}
+ee72502 ::~ee72502(){ note_dtor("ee72502", this);} // tgen
+ee72502 ::ee72502(){ note_ctor("ee72502", this);} // tgen
+
+static void Test_ee72502()
+{
+ extern Class_Descriptor cd_ee72502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72502, buf);
+ ee72502 *dp, &lv = *(dp=new (buf) ee72502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee72502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd2502*), ABISELECT(32,20), "ee72502");
+ check_base_class_offset(lv, (cc502*)(dd2502*), ABISELECT(16,8), "ee72502");
+ check_base_class_offset(lv, (dd2502*), ABISELECT(16,8), "ee72502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72502.e");
+ test_class_info(&lv, &cd_ee72502);
+ dp->~ee72502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72502(Test_ee72502, "ee72502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72502C1Ev();
+extern void _ZN7ee72502D1Ev();
+Name_Map name_map_ee72502[] = {
+ NSPAIR(_ZN7ee72502C1Ev),
+ NSPAIR(_ZN7ee72502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd2502;
+extern VTBL_ENTRY _ZTI6dd2502[];
+extern VTBL_ENTRY _ZTV6dd2502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2502[];
+static Base_Class bases_ee72502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72502[];
+extern void _ZN7ee725023fooEv();
+extern void _ZN7ee725023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee725023barEv,_ZTv0_n16_N7ee725023barEv)();
+extern void ABISELECT(_ZThn16_N7ee725023barEv,_ZThn8_N7ee725023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee725023fooEv,_ZTv0_n20_N7ee725023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725023fooEv,_ZThn8_N7ee725023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725023fooEv,_ZTv0_n12_N7ee725023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee725023fooEv,_ZThn20_N7ee725023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725023barEv,_ZTv0_n16_N7ee725023barEv)();
+extern void ABISELECT(_ZThn32_N7ee725023barEv,_ZThn20_N7ee725023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72502[0]),
+ (VTBL_ENTRY)&_ZN7ee725023fooEv,
+ (VTBL_ENTRY)&_ZN7ee725023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725023barEv,_ZTv0_n16_N7ee725023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725023fooEv,_ZTv0_n20_N7ee725023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725023fooEv,_ZTv0_n12_N7ee725023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725023barEv,_ZTv0_n16_N7ee725023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72502[];
+extern void _ZN5cc5023barEv();
+extern void _ZN6dd25023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2502__7ee72502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ (VTBL_ENTRY)&_ZN6dd25023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd2502__7ee72502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd2502__7ee72502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2502__7ee72502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee72502[] = {
+ {&(_ZTV7ee72502[4]), 4,19},
+ {&(_ZTV7ee72502[11]), 11,19},
+ {&(_ZTV7ee72502[17]), 17,19},
+ {&(_tg__ZTV6dd2502__7ee72502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd2502__7ee72502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd2502__7ee72502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2502__7ee72502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72502[];
+extern VTBL_ENTRY _ZTV7ee72502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72502[];
+static VTBL_ENTRY alt_thunk_names993[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25023fooEv,_ZTv0_n12_N6dd25023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd25023fooEv,_ZThn12_N6dd25023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725023fooEv,_ZTv0_n12_N7ee725023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725023fooEv,_ZThn20_N7ee725023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725023fooEv,_ZTv0_n20_N7ee725023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725023fooEv,_ZThn8_N7ee725023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725023barEv,_ZTv0_n16_N7ee725023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725023barEv,_ZThn20_N7ee725023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725023barEv,_ZThn8_N7ee725023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72502 = { "ee72502", // class name
+ bases_ee72502, 4,
+ &(vtc_ee72502[0]), // expected_vtbl_contents
+ &(vtt_ee72502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72502),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names993,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3502 : virtual cc502 {
+ int d;
+ virtual void foo(); // _ZN6dd35023fooEv
+ ~dd3502(); // tgen
+ dd3502(); // tgen
+};
+//SIG(-1 dd3502) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void dd3502 ::foo(){vfunc_called(this, "_ZN6dd35023fooEv");}
+dd3502 ::~dd3502(){ note_dtor("dd3502", this);} // tgen
+dd3502 ::dd3502(){ note_ctor("dd3502", this);} // tgen
+
+static void Test_dd3502()
+{
+ extern Class_Descriptor cd_dd3502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3502, buf);
+ dd3502 *dp, &lv = *(dp=new (buf) dd3502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd3502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,16), "dd3502");
+ check_base_class_offset(lv, (cc502*), ABISELECT(16,8), "dd3502");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3502.d");
+ test_class_info(&lv, &cd_dd3502);
+ dp->~dd3502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3502(Test_dd3502, "dd3502", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3502C1Ev();
+extern void _ZN6dd3502D1Ev();
+Name_Map name_map_dd3502[] = {
+ NSPAIR(_ZN6dd3502C1Ev),
+ NSPAIR(_ZN6dd3502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static Base_Class bases_dd3502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 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 _ZTI6dd3502[];
+extern void _ZN6dd35023fooEv();
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__6dd3502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_dd3502[] = {
+ {&(_ZTV6dd3502[4]), 4,16},
+ {&(_ZTV6dd3502[9]), 9,16},
+ {&(_ZTV6dd3502[14]), 14,16},
+ {&(_tg__ZTV5cc502__6dd3502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__6dd3502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static VTBL_ENTRY alt_thunk_names994[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3502 = { "dd3502", // class name
+ bases_dd3502, 3,
+ &(vtc_dd3502[0]), // expected_vtbl_contents
+ &(vtt_dd3502[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3502),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names994,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03502 : dd3502 {
+ int e;
+ ~ee03502(); // tgen
+ ee03502(); // tgen
+};
+//SIG(1 ee03502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03502 ::~ee03502(){ note_dtor("ee03502", this);} // tgen
+ee03502 ::ee03502(){ note_ctor("ee03502", this);} // tgen
+
+static void Test_ee03502()
+{
+ extern Class_Descriptor cd_ee03502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03502, buf);
+ ee03502 *dp, &lv = *(dp=new (buf) ee03502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee03502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee03502");
+ check_base_class_offset(lv, (cc502*)(dd3502*), ABISELECT(16,12), "ee03502");
+ check_base_class_offset(lv, (dd3502*), 0, "ee03502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03502.e");
+ test_class_info(&lv, &cd_ee03502);
+ dp->~ee03502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03502(Test_ee03502, "ee03502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03502C1Ev();
+extern void _ZN7ee03502D1Ev();
+Name_Map name_map_ee03502[] = {
+ NSPAIR(_ZN7ee03502C1Ev),
+ NSPAIR(_ZN7ee03502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd3502;
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static Base_Class bases_ee03502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03502[];
+extern void _ZN6dd35023fooEv();
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03502[];
+extern void _ZN6dd35023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3502__7ee03502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502__7ee03502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3502__7ee03502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee03502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee03502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee03502[] = {
+ {&(_ZTV7ee03502[4]), 4,16},
+ {&(_tg__ZTV6dd3502__7ee03502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd3502__7ee03502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3502__7ee03502[4]), 4,6},
+ {&(_ZTV7ee03502[9]), 9,16},
+ {&(_ZTV7ee03502[14]), 14,16},
+ {&(_tg__ZTV5cc502__7ee03502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee03502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03502[];
+extern VTBL_ENTRY _ZTV7ee03502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03502[];
+static VTBL_ENTRY alt_thunk_names995[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03502 = { "ee03502", // class name
+ bases_ee03502, 4,
+ &(vtc_ee03502[0]), // expected_vtbl_contents
+ &(vtt_ee03502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names995,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13502 : virtual dd3502 {
+ int e;
+ ~ee13502(); // tgen
+ ee13502(); // tgen
+};
+//SIG(1 ee13502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13502 ::~ee13502(){ note_dtor("ee13502", this);} // tgen
+ee13502 ::ee13502(){ note_ctor("ee13502", this);} // tgen
+
+static void Test_ee13502()
+{
+ extern Class_Descriptor cd_ee13502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13502, buf);
+ ee13502 *dp, &lv = *(dp=new (buf) ee13502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee13502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee13502");
+ check_base_class_offset(lv, (cc502*)(dd3502*), ABISELECT(32,16), "ee13502");
+ check_base_class_offset(lv, (dd3502*), ABISELECT(16,8), "ee13502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13502.e");
+ test_class_info(&lv, &cd_ee13502);
+ dp->~ee13502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13502(Test_ee13502, "ee13502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13502C1Ev();
+extern void _ZN7ee13502D1Ev();
+Name_Map name_map_ee13502[] = {
+ NSPAIR(_ZN7ee13502C1Ev),
+ NSPAIR(_ZN7ee13502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd3502;
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static Base_Class bases_ee13502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13502[];
+extern void _ZN6dd35023fooEv();
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13502[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13502[];
+extern void _ZN6dd35023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3502__7ee13502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502__7ee13502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3502__7ee13502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee13502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee13502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee13502[] = {
+ {&(_ZTV7ee13502[5]), 5,22},
+ {&(_ZTV7ee13502[10]), 10,22},
+ {&(_ZTV7ee13502[15]), 15,22},
+ {&(_ZTV7ee13502[20]), 20,22},
+ {&(_tg__ZTV6dd3502__7ee13502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd3502__7ee13502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3502__7ee13502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee13502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee13502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13502[];
+extern VTBL_ENTRY _ZTV7ee13502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13502[];
+static VTBL_ENTRY alt_thunk_names996[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13502 = { "ee13502", // class name
+ bases_ee13502, 4,
+ &(vtc_ee13502[0]), // expected_vtbl_contents
+ &(vtt_ee13502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13502),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names996,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23502 : dd3502 {
+ int e;
+ virtual void foo(); // _ZN7ee235023fooEv
+ ~ee23502(); // tgen
+ ee23502(); // tgen
+};
+//SIG(1 ee23502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23502 ::foo(){vfunc_called(this, "_ZN7ee235023fooEv");}
+ee23502 ::~ee23502(){ note_dtor("ee23502", this);} // tgen
+ee23502 ::ee23502(){ note_ctor("ee23502", this);} // tgen
+
+static void Test_ee23502()
+{
+ extern Class_Descriptor cd_ee23502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23502, buf);
+ ee23502 *dp, &lv = *(dp=new (buf) ee23502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee23502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee23502");
+ check_base_class_offset(lv, (cc502*)(dd3502*), ABISELECT(16,12), "ee23502");
+ check_base_class_offset(lv, (dd3502*), 0, "ee23502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23502.e");
+ test_class_info(&lv, &cd_ee23502);
+ dp->~ee23502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23502(Test_ee23502, "ee23502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23502C1Ev();
+extern void _ZN7ee23502D1Ev();
+Name_Map name_map_ee23502[] = {
+ NSPAIR(_ZN7ee23502C1Ev),
+ NSPAIR(_ZN7ee23502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd3502;
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static Base_Class bases_ee23502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23502[];
+extern void _ZN7ee235023fooEv();
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee235023fooEv,_ZTv0_n12_N7ee235023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee235023fooEv,_ZThn20_N7ee235023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23502[0]),
+ (VTBL_ENTRY)&_ZN7ee235023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235023fooEv,_ZTv0_n12_N7ee235023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23502[];
+extern void _ZN6dd35023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3502__7ee23502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502__7ee23502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3502__7ee23502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee23502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee23502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee23502[] = {
+ {&(_ZTV7ee23502[4]), 4,16},
+ {&(_tg__ZTV6dd3502__7ee23502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd3502__7ee23502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3502__7ee23502[4]), 4,6},
+ {&(_ZTV7ee23502[9]), 9,16},
+ {&(_ZTV7ee23502[14]), 14,16},
+ {&(_tg__ZTV5cc502__7ee23502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee23502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23502[];
+extern VTBL_ENTRY _ZTV7ee23502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23502[];
+static VTBL_ENTRY alt_thunk_names997[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235023fooEv,_ZTv0_n12_N7ee235023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee235023fooEv,_ZThn20_N7ee235023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23502 = { "ee23502", // class name
+ bases_ee23502, 4,
+ &(vtc_ee23502[0]), // expected_vtbl_contents
+ &(vtt_ee23502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names997,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33502 : virtual dd3502 {
+ int e;
+ virtual void foo(); // _ZN7ee335023fooEv
+ ~ee33502(); // tgen
+ ee33502(); // tgen
+};
+//SIG(1 ee33502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33502 ::foo(){vfunc_called(this, "_ZN7ee335023fooEv");}
+ee33502 ::~ee33502(){ note_dtor("ee33502", this);} // tgen
+ee33502 ::ee33502(){ note_ctor("ee33502", this);} // tgen
+
+static void Test_ee33502()
+{
+ extern Class_Descriptor cd_ee33502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33502, buf);
+ ee33502 *dp, &lv = *(dp=new (buf) ee33502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee33502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee33502");
+ check_base_class_offset(lv, (cc502*)(dd3502*), ABISELECT(32,16), "ee33502");
+ check_base_class_offset(lv, (dd3502*), ABISELECT(16,8), "ee33502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33502.e");
+ test_class_info(&lv, &cd_ee33502);
+ dp->~ee33502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33502(Test_ee33502, "ee33502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33502C1Ev();
+extern void _ZN7ee33502D1Ev();
+Name_Map name_map_ee33502[] = {
+ NSPAIR(_ZN7ee33502C1Ev),
+ NSPAIR(_ZN7ee33502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd3502;
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static Base_Class bases_ee33502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33502[];
+extern void _ZN7ee335023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee335023fooEv,_ZTv0_n20_N7ee335023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335023fooEv,_ZThn8_N7ee335023fooEv)() __attribute__((weak));
+extern void _ZN5cc5023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee335023fooEv,_ZTv0_n12_N7ee335023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee335023fooEv,_ZThn24_N7ee335023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33502[0]),
+ (VTBL_ENTRY)&_ZN7ee335023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee335023fooEv,_ZTv0_n20_N7ee335023fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335023fooEv,_ZTv0_n12_N7ee335023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33502[];
+extern void _ZN6dd35023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3502__7ee33502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502__7ee33502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3502__7ee33502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee33502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee33502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee33502[] = {
+ {&(_ZTV7ee33502[5]), 5,23},
+ {&(_ZTV7ee33502[11]), 11,23},
+ {&(_ZTV7ee33502[16]), 16,23},
+ {&(_ZTV7ee33502[21]), 21,23},
+ {&(_tg__ZTV6dd3502__7ee33502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd3502__7ee33502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3502__7ee33502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee33502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee33502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33502[];
+extern VTBL_ENTRY _ZTV7ee33502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33502[];
+static VTBL_ENTRY alt_thunk_names998[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335023fooEv,_ZTv0_n12_N7ee335023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee335023fooEv,_ZThn24_N7ee335023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee335023fooEv,_ZTv0_n20_N7ee335023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335023fooEv,_ZThn8_N7ee335023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33502 = { "ee33502", // class name
+ bases_ee33502, 4,
+ &(vtc_ee33502[0]), // expected_vtbl_contents
+ &(vtt_ee33502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33502),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names998,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43502 : dd3502 {
+ int e;
+ virtual void bar(); // _ZN7ee435023barEv
+ ~ee43502(); // tgen
+ ee43502(); // tgen
+};
+//SIG(1 ee43502) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43502 ::bar(){vfunc_called(this, "_ZN7ee435023barEv");}
+ee43502 ::~ee43502(){ note_dtor("ee43502", this);} // tgen
+ee43502 ::ee43502(){ note_ctor("ee43502", this);} // tgen
+
+static void Test_ee43502()
+{
+ extern Class_Descriptor cd_ee43502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43502, buf);
+ ee43502 *dp, &lv = *(dp=new (buf) ee43502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee43502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee43502");
+ check_base_class_offset(lv, (cc502*)(dd3502*), ABISELECT(16,12), "ee43502");
+ check_base_class_offset(lv, (dd3502*), 0, "ee43502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43502.e");
+ test_class_info(&lv, &cd_ee43502);
+ dp->~ee43502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43502(Test_ee43502, "ee43502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43502C1Ev();
+extern void _ZN7ee43502D1Ev();
+Name_Map name_map_ee43502[] = {
+ NSPAIR(_ZN7ee43502C1Ev),
+ NSPAIR(_ZN7ee43502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd3502;
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static Base_Class bases_ee43502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43502[];
+extern void _ZN6dd35023fooEv();
+extern void _ZN7ee435023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee435023barEv,_ZTv0_n16_N7ee435023barEv)();
+extern void ABISELECT(_ZThn16_N7ee435023barEv,_ZThn12_N7ee435023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee435023barEv,_ZTv0_n16_N7ee435023barEv)();
+extern void ABISELECT(_ZThn32_N7ee435023barEv,_ZThn20_N7ee435023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+ (VTBL_ENTRY)&_ZN7ee435023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435023barEv,_ZTv0_n16_N7ee435023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435023barEv,_ZTv0_n16_N7ee435023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43502[];
+extern void _ZN6dd35023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3502__7ee43502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502__7ee43502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3502__7ee43502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee43502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee43502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee43502[] = {
+ {&(_ZTV7ee43502[4]), 4,17},
+ {&(_tg__ZTV6dd3502__7ee43502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd3502__7ee43502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3502__7ee43502[4]), 4,6},
+ {&(_ZTV7ee43502[10]), 10,17},
+ {&(_ZTV7ee43502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee43502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee43502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43502[];
+extern VTBL_ENTRY _ZTV7ee43502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43502[];
+static VTBL_ENTRY alt_thunk_names999[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435023barEv,_ZTv0_n16_N7ee435023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee435023barEv,_ZThn20_N7ee435023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435023barEv,_ZThn12_N7ee435023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43502 = { "ee43502", // class name
+ bases_ee43502, 4,
+ &(vtc_ee43502[0]), // expected_vtbl_contents
+ &(vtt_ee43502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names999,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53502 : virtual dd3502 {
+ int e;
+ virtual void bar(); // _ZN7ee535023barEv
+ ~ee53502(); // tgen
+ ee53502(); // tgen
+};
+//SIG(1 ee53502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53502 ::bar(){vfunc_called(this, "_ZN7ee535023barEv");}
+ee53502 ::~ee53502(){ note_dtor("ee53502", this);} // tgen
+ee53502 ::ee53502(){ note_ctor("ee53502", this);} // tgen
+
+static void Test_ee53502()
+{
+ extern Class_Descriptor cd_ee53502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53502, buf);
+ ee53502 *dp, &lv = *(dp=new (buf) ee53502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee53502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee53502");
+ check_base_class_offset(lv, (cc502*)(dd3502*), ABISELECT(32,16), "ee53502");
+ check_base_class_offset(lv, (dd3502*), ABISELECT(16,8), "ee53502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53502.e");
+ test_class_info(&lv, &cd_ee53502);
+ dp->~ee53502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53502(Test_ee53502, "ee53502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53502C1Ev();
+extern void _ZN7ee53502D1Ev();
+Name_Map name_map_ee53502[] = {
+ NSPAIR(_ZN7ee53502C1Ev),
+ NSPAIR(_ZN7ee53502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd3502;
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static Base_Class bases_ee53502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53502[];
+extern void _ZN7ee535023barEv();
+extern void _ZN6dd35023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee535023barEv,_ZTv0_n16_N7ee535023barEv)();
+extern void ABISELECT(_ZThn32_N7ee535023barEv,_ZThn16_N7ee535023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee535023barEv,_ZTv0_n16_N7ee535023barEv)();
+extern void ABISELECT(_ZThn48_N7ee535023barEv,_ZThn24_N7ee535023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53502[0]),
+ (VTBL_ENTRY)&_ZN7ee535023barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535023barEv,_ZTv0_n16_N7ee535023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535023barEv,_ZTv0_n16_N7ee535023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53502[];
+extern void _ZN6dd35023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3502__7ee53502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502__7ee53502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3502__7ee53502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee53502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee53502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee53502[] = {
+ {&(_ZTV7ee53502[5]), 5,23},
+ {&(_ZTV7ee53502[11]), 11,23},
+ {&(_ZTV7ee53502[16]), 16,23},
+ {&(_ZTV7ee53502[21]), 21,23},
+ {&(_tg__ZTV6dd3502__7ee53502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd3502__7ee53502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3502__7ee53502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee53502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee53502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53502[];
+extern VTBL_ENTRY _ZTV7ee53502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53502[];
+static VTBL_ENTRY alt_thunk_names1000[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535023barEv,_ZTv0_n16_N7ee535023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee535023barEv,_ZThn24_N7ee535023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535023barEv,_ZThn16_N7ee535023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53502 = { "ee53502", // class name
+ bases_ee53502, 4,
+ &(vtc_ee53502[0]), // expected_vtbl_contents
+ &(vtt_ee53502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53502),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1000,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63502 : dd3502 {
+ int e;
+ virtual void foo(); // _ZN7ee635023fooEv
+ virtual void bar(); // _ZN7ee635023barEv
+ ~ee63502(); // tgen
+ ee63502(); // tgen
+};
+//SIG(1 ee63502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63502 ::foo(){vfunc_called(this, "_ZN7ee635023fooEv");}
+void ee63502 ::bar(){vfunc_called(this, "_ZN7ee635023barEv");}
+ee63502 ::~ee63502(){ note_dtor("ee63502", this);} // tgen
+ee63502 ::ee63502(){ note_ctor("ee63502", this);} // tgen
+
+static void Test_ee63502()
+{
+ extern Class_Descriptor cd_ee63502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63502, buf);
+ ee63502 *dp, &lv = *(dp=new (buf) ee63502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee63502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee63502");
+ check_base_class_offset(lv, (cc502*)(dd3502*), ABISELECT(16,12), "ee63502");
+ check_base_class_offset(lv, (dd3502*), 0, "ee63502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63502.e");
+ test_class_info(&lv, &cd_ee63502);
+ dp->~ee63502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63502(Test_ee63502, "ee63502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63502C1Ev();
+extern void _ZN7ee63502D1Ev();
+Name_Map name_map_ee63502[] = {
+ NSPAIR(_ZN7ee63502C1Ev),
+ NSPAIR(_ZN7ee63502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd3502;
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static Base_Class bases_ee63502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63502[];
+extern void _ZN7ee635023fooEv();
+extern void _ZN7ee635023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee635023barEv,_ZTv0_n16_N7ee635023barEv)();
+extern void ABISELECT(_ZThn16_N7ee635023barEv,_ZThn12_N7ee635023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635023fooEv,_ZTv0_n12_N7ee635023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee635023fooEv,_ZThn20_N7ee635023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635023barEv,_ZTv0_n16_N7ee635023barEv)();
+extern void ABISELECT(_ZThn32_N7ee635023barEv,_ZThn20_N7ee635023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63502[0]),
+ (VTBL_ENTRY)&_ZN7ee635023fooEv,
+ (VTBL_ENTRY)&_ZN7ee635023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635023barEv,_ZTv0_n16_N7ee635023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635023fooEv,_ZTv0_n12_N7ee635023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635023barEv,_ZTv0_n16_N7ee635023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63502[];
+extern void _ZN6dd35023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3502__7ee63502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502__7ee63502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3502__7ee63502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee63502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee63502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee63502[] = {
+ {&(_ZTV7ee63502[4]), 4,17},
+ {&(_tg__ZTV6dd3502__7ee63502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd3502__7ee63502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3502__7ee63502[4]), 4,6},
+ {&(_ZTV7ee63502[10]), 10,17},
+ {&(_ZTV7ee63502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee63502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee63502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63502[];
+extern VTBL_ENTRY _ZTV7ee63502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63502[];
+static VTBL_ENTRY alt_thunk_names1001[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn20_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635023fooEv,_ZTv0_n12_N7ee635023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635023fooEv,_ZThn20_N7ee635023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635023barEv,_ZTv0_n16_N7ee635023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635023barEv,_ZThn20_N7ee635023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635023barEv,_ZThn12_N7ee635023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63502 = { "ee63502", // class name
+ bases_ee63502, 4,
+ &(vtc_ee63502[0]), // expected_vtbl_contents
+ &(vtt_ee63502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1001,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73502 : virtual dd3502 {
+ int e;
+ virtual void foo(); // _ZN7ee735023fooEv
+ virtual void bar(); // _ZN7ee735023barEv
+ ~ee73502(); // tgen
+ ee73502(); // tgen
+};
+//SIG(1 ee73502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73502 ::foo(){vfunc_called(this, "_ZN7ee735023fooEv");}
+void ee73502 ::bar(){vfunc_called(this, "_ZN7ee735023barEv");}
+ee73502 ::~ee73502(){ note_dtor("ee73502", this);} // tgen
+ee73502 ::ee73502(){ note_ctor("ee73502", this);} // tgen
+
+static void Test_ee73502()
+{
+ extern Class_Descriptor cd_ee73502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73502, buf);
+ ee73502 *dp, &lv = *(dp=new (buf) ee73502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee73502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee73502");
+ check_base_class_offset(lv, (cc502*)(dd3502*), ABISELECT(32,16), "ee73502");
+ check_base_class_offset(lv, (dd3502*), ABISELECT(16,8), "ee73502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73502.e");
+ test_class_info(&lv, &cd_ee73502);
+ dp->~ee73502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73502(Test_ee73502, "ee73502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73502C1Ev();
+extern void _ZN7ee73502D1Ev();
+Name_Map name_map_ee73502[] = {
+ NSPAIR(_ZN7ee73502C1Ev),
+ NSPAIR(_ZN7ee73502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd3502;
+extern VTBL_ENTRY _ZTI6dd3502[];
+extern VTBL_ENTRY _ZTV6dd3502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3502[];
+static Base_Class bases_ee73502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3502, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73502[];
+extern void _ZN7ee735023fooEv();
+extern void _ZN7ee735023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee735023fooEv,_ZTv0_n20_N7ee735023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735023fooEv,_ZThn8_N7ee735023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735023barEv,_ZTv0_n16_N7ee735023barEv)();
+extern void ABISELECT(_ZThn32_N7ee735023barEv,_ZThn16_N7ee735023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735023fooEv,_ZTv0_n12_N7ee735023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee735023fooEv,_ZThn24_N7ee735023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735023barEv,_ZTv0_n16_N7ee735023barEv)();
+extern void ABISELECT(_ZThn48_N7ee735023barEv,_ZThn24_N7ee735023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73502[0]),
+ (VTBL_ENTRY)&_ZN7ee735023fooEv,
+ (VTBL_ENTRY)&_ZN7ee735023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735023fooEv,_ZTv0_n20_N7ee735023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735023barEv,_ZTv0_n16_N7ee735023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735023fooEv,_ZTv0_n12_N7ee735023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735023barEv,_ZTv0_n16_N7ee735023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73502[];
+extern void _ZN6dd35023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3502__7ee73502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN6dd35023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd3502__7ee73502[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3502__7ee73502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee73502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee73502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee73502[] = {
+ {&(_ZTV7ee73502[5]), 5,24},
+ {&(_ZTV7ee73502[12]), 12,24},
+ {&(_ZTV7ee73502[17]), 17,24},
+ {&(_ZTV7ee73502[22]), 22,24},
+ {&(_tg__ZTV6dd3502__7ee73502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd3502__7ee73502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd3502__7ee73502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee73502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee73502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73502[];
+extern VTBL_ENTRY _ZTV7ee73502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73502[];
+static VTBL_ENTRY alt_thunk_names1002[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35023fooEv,_ZTv0_n12_N6dd35023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd35023fooEv,_ZThn16_N6dd35023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735023fooEv,_ZTv0_n12_N7ee735023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735023fooEv,_ZThn24_N7ee735023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735023barEv,_ZTv0_n16_N7ee735023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735023barEv,_ZThn24_N7ee735023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735023barEv,_ZThn16_N7ee735023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735023fooEv,_ZTv0_n20_N7ee735023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735023fooEv,_ZThn8_N7ee735023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73502 = { "ee73502", // class name
+ bases_ee73502, 4,
+ &(vtc_ee73502[0]), // expected_vtbl_contents
+ &(vtt_ee73502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73502),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1002,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4502 : cc502 {
+ int d;
+ virtual void bar(); // _ZN6dd45023barEv
+ ~dd4502(); // tgen
+ dd4502(); // tgen
+};
+//SIG(-1 dd4502) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd4502 ::bar(){vfunc_called(this, "_ZN6dd45023barEv");}
+dd4502 ::~dd4502(){ note_dtor("dd4502", this);} // tgen
+dd4502 ::dd4502(){ note_ctor("dd4502", this);} // tgen
+
+static void Test_dd4502()
+{
+ extern Class_Descriptor cd_dd4502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4502, buf);
+ dd4502 *dp, &lv = *(dp=new (buf) dd4502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd4502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(16,12), "dd4502");
+ check_base_class_offset(lv, (cc502*), 0, "dd4502");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4502.d");
+ test_class_info(&lv, &cd_dd4502);
+ dp->~dd4502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4502(Test_dd4502, "dd4502", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4502C1Ev();
+extern void _ZN6dd4502D1Ev();
+Name_Map name_map_dd4502[] = {
+ NSPAIR(_ZN6dd4502C1Ev),
+ NSPAIR(_ZN6dd4502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static Base_Class bases_dd4502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4502[];
+extern void _ZN6dd45023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd4502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__6dd4502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_dd4502[] = {
+ {&(_ZTV6dd4502[3]), 3,10},
+ {&(_tg__ZTV5cc502__6dd4502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__6dd4502[4]), 4,6},
+ {&(_ZTV6dd4502[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static VTBL_ENTRY alt_thunk_names1003[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4502 = { "dd4502", // class name
+ bases_dd4502, 3,
+ &(vtc_dd4502[0]), // expected_vtbl_contents
+ &(vtt_dd4502[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4502),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4502),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1003,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04502 : dd4502 {
+ int e;
+ ~ee04502(); // tgen
+ ee04502(); // tgen
+};
+//SIG(1 ee04502) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04502 ::~ee04502(){ note_dtor("ee04502", this);} // tgen
+ee04502 ::ee04502(){ note_ctor("ee04502", this);} // tgen
+
+static void Test_ee04502()
+{
+ extern Class_Descriptor cd_ee04502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04502, buf);
+ ee04502 *dp, &lv = *(dp=new (buf) ee04502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee04502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd4502*), ABISELECT(24,16), "ee04502");
+ check_base_class_offset(lv, (cc502*)(dd4502*), 0, "ee04502");
+ check_base_class_offset(lv, (dd4502*), 0, "ee04502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04502.e");
+ test_class_info(&lv, &cd_ee04502);
+ dp->~ee04502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04502(Test_ee04502, "ee04502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04502C1Ev();
+extern void _ZN7ee04502D1Ev();
+Name_Map name_map_ee04502[] = {
+ NSPAIR(_ZN7ee04502C1Ev),
+ NSPAIR(_ZN7ee04502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd4502;
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static Base_Class bases_ee04502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04502[];
+extern void _ZN6dd45023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04502[];
+extern void _ZN6dd45023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4502__7ee04502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd4502__7ee04502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd4502__7ee04502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4502__7ee04502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+static VTT_ENTRY vtt_ee04502[] = {
+ {&(_ZTV7ee04502[3]), 3,10},
+ {&(_tg__ZTV6dd4502__7ee04502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd4502__7ee04502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd4502__7ee04502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4502__7ee04502[4]), 4,6},
+ {&(_ZTV7ee04502[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04502[];
+extern VTBL_ENTRY _ZTV7ee04502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04502[];
+static VTBL_ENTRY alt_thunk_names1004[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04502 = { "ee04502", // class name
+ bases_ee04502, 4,
+ &(vtc_ee04502[0]), // expected_vtbl_contents
+ &(vtt_ee04502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04502),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1004,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14502 : virtual dd4502 {
+ int e;
+ ~ee14502(); // tgen
+ ee14502(); // tgen
+};
+//SIG(1 ee14502) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14502 ::~ee14502(){ note_dtor("ee14502", this);} // tgen
+ee14502 ::ee14502(){ note_ctor("ee14502", this);} // tgen
+
+static void Test_ee14502()
+{
+ extern Class_Descriptor cd_ee14502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14502, buf);
+ ee14502 *dp, &lv = *(dp=new (buf) ee14502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee14502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd4502*), ABISELECT(32,20), "ee14502");
+ check_base_class_offset(lv, (cc502*)(dd4502*), ABISELECT(16,8), "ee14502");
+ check_base_class_offset(lv, (dd4502*), ABISELECT(16,8), "ee14502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14502.e");
+ test_class_info(&lv, &cd_ee14502);
+ dp->~ee14502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14502(Test_ee14502, "ee14502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14502C1Ev();
+extern void _ZN7ee14502D1Ev();
+Name_Map name_map_ee14502[] = {
+ NSPAIR(_ZN7ee14502C1Ev),
+ NSPAIR(_ZN7ee14502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd4502;
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static Base_Class bases_ee14502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4502, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14502[];
+extern void _ZN6dd45023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14502[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14502[];
+extern void _ZN6dd45023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4502__7ee14502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd4502__7ee14502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd4502__7ee14502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4502__7ee14502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+static VTT_ENTRY vtt_ee14502[] = {
+ {&(_ZTV7ee14502[4]), 4,15},
+ {&(_ZTV7ee14502[8]), 8,15},
+ {&(_ZTV7ee14502[13]), 13,15},
+ {&(_tg__ZTV6dd4502__7ee14502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd4502__7ee14502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd4502__7ee14502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4502__7ee14502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14502[];
+extern VTBL_ENTRY _ZTV7ee14502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14502[];
+static VTBL_ENTRY alt_thunk_names1005[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14502 = { "ee14502", // class name
+ bases_ee14502, 4,
+ &(vtc_ee14502[0]), // expected_vtbl_contents
+ &(vtt_ee14502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14502),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1005,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24502 : dd4502 {
+ int e;
+ virtual void foo(); // _ZN7ee245023fooEv
+ ~ee24502(); // tgen
+ ee24502(); // tgen
+};
+//SIG(1 ee24502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24502 ::foo(){vfunc_called(this, "_ZN7ee245023fooEv");}
+ee24502 ::~ee24502(){ note_dtor("ee24502", this);} // tgen
+ee24502 ::ee24502(){ note_ctor("ee24502", this);} // tgen
+
+static void Test_ee24502()
+{
+ extern Class_Descriptor cd_ee24502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24502, buf);
+ ee24502 *dp, &lv = *(dp=new (buf) ee24502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee24502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd4502*), ABISELECT(24,16), "ee24502");
+ check_base_class_offset(lv, (cc502*)(dd4502*), 0, "ee24502");
+ check_base_class_offset(lv, (dd4502*), 0, "ee24502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24502.e");
+ test_class_info(&lv, &cd_ee24502);
+ dp->~ee24502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24502(Test_ee24502, "ee24502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24502C1Ev();
+extern void _ZN7ee24502D1Ev();
+Name_Map name_map_ee24502[] = {
+ NSPAIR(_ZN7ee24502C1Ev),
+ NSPAIR(_ZN7ee24502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd4502;
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static Base_Class bases_ee24502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24502[];
+extern void _ZN6dd45023barEv();
+extern void _ZN7ee245023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee245023fooEv,_ZTv0_n12_N7ee245023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee245023fooEv,_ZThn16_N7ee245023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+ (VTBL_ENTRY)&_ZN7ee245023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245023fooEv,_ZTv0_n12_N7ee245023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24502[];
+extern void _ZN6dd45023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4502__7ee24502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd4502__7ee24502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd4502__7ee24502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4502__7ee24502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+static VTT_ENTRY vtt_ee24502[] = {
+ {&(_ZTV7ee24502[3]), 3,11},
+ {&(_tg__ZTV6dd4502__7ee24502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd4502__7ee24502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd4502__7ee24502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4502__7ee24502[4]), 4,6},
+ {&(_ZTV7ee24502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24502[];
+extern VTBL_ENTRY _ZTV7ee24502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24502[];
+static VTBL_ENTRY alt_thunk_names1006[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245023fooEv,_ZTv0_n12_N7ee245023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee245023fooEv,_ZThn16_N7ee245023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24502 = { "ee24502", // class name
+ bases_ee24502, 4,
+ &(vtc_ee24502[0]), // expected_vtbl_contents
+ &(vtt_ee24502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1006,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34502 : virtual dd4502 {
+ int e;
+ virtual void foo(); // _ZN7ee345023fooEv
+ ~ee34502(); // tgen
+ ee34502(); // tgen
+};
+//SIG(1 ee34502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34502 ::foo(){vfunc_called(this, "_ZN7ee345023fooEv");}
+ee34502 ::~ee34502(){ note_dtor("ee34502", this);} // tgen
+ee34502 ::ee34502(){ note_ctor("ee34502", this);} // tgen
+
+static void Test_ee34502()
+{
+ extern Class_Descriptor cd_ee34502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34502, buf);
+ ee34502 *dp, &lv = *(dp=new (buf) ee34502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee34502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd4502*), ABISELECT(32,20), "ee34502");
+ check_base_class_offset(lv, (cc502*)(dd4502*), ABISELECT(16,8), "ee34502");
+ check_base_class_offset(lv, (dd4502*), ABISELECT(16,8), "ee34502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34502.e");
+ test_class_info(&lv, &cd_ee34502);
+ dp->~ee34502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34502(Test_ee34502, "ee34502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34502C1Ev();
+extern void _ZN7ee34502D1Ev();
+Name_Map name_map_ee34502[] = {
+ NSPAIR(_ZN7ee34502C1Ev),
+ NSPAIR(_ZN7ee34502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd4502;
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static Base_Class bases_ee34502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34502[];
+extern void _ZN7ee345023fooEv();
+extern void _ZN6dd45023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee345023fooEv,_ZTv0_n12_N7ee345023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee345023fooEv,_ZThn20_N7ee345023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34502[0]),
+ (VTBL_ENTRY)&_ZN7ee345023fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345023fooEv,_ZTv0_n12_N7ee345023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34502[];
+extern void _ZN6dd45023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4502__7ee34502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd4502__7ee34502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd4502__7ee34502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4502__7ee34502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+static VTT_ENTRY vtt_ee34502[] = {
+ {&(_ZTV7ee34502[4]), 4,16},
+ {&(_ZTV7ee34502[9]), 9,16},
+ {&(_ZTV7ee34502[14]), 14,16},
+ {&(_tg__ZTV6dd4502__7ee34502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd4502__7ee34502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd4502__7ee34502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4502__7ee34502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34502[];
+extern VTBL_ENTRY _ZTV7ee34502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34502[];
+static VTBL_ENTRY alt_thunk_names1007[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345023fooEv,_ZTv0_n12_N7ee345023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee345023fooEv,_ZThn20_N7ee345023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34502 = { "ee34502", // class name
+ bases_ee34502, 4,
+ &(vtc_ee34502[0]), // expected_vtbl_contents
+ &(vtt_ee34502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1007,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44502 : dd4502 {
+ int e;
+ virtual void bar(); // _ZN7ee445023barEv
+ ~ee44502(); // tgen
+ ee44502(); // tgen
+};
+//SIG(1 ee44502) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44502 ::bar(){vfunc_called(this, "_ZN7ee445023barEv");}
+ee44502 ::~ee44502(){ note_dtor("ee44502", this);} // tgen
+ee44502 ::ee44502(){ note_ctor("ee44502", this);} // tgen
+
+static void Test_ee44502()
+{
+ extern Class_Descriptor cd_ee44502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44502, buf);
+ ee44502 *dp, &lv = *(dp=new (buf) ee44502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee44502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd4502*), ABISELECT(24,16), "ee44502");
+ check_base_class_offset(lv, (cc502*)(dd4502*), 0, "ee44502");
+ check_base_class_offset(lv, (dd4502*), 0, "ee44502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44502.e");
+ test_class_info(&lv, &cd_ee44502);
+ dp->~ee44502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44502(Test_ee44502, "ee44502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44502C1Ev();
+extern void _ZN7ee44502D1Ev();
+Name_Map name_map_ee44502[] = {
+ NSPAIR(_ZN7ee44502C1Ev),
+ NSPAIR(_ZN7ee44502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd4502;
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static Base_Class bases_ee44502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44502[];
+extern void _ZN7ee445023barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee445023barEv,_ZTv0_n16_N7ee445023barEv)();
+extern void ABISELECT(_ZThn24_N7ee445023barEv,_ZThn16_N7ee445023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44502[0]),
+ (VTBL_ENTRY)&_ZN7ee445023barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee445023barEv,_ZTv0_n16_N7ee445023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44502[];
+extern void _ZN6dd45023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4502__7ee44502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd4502__7ee44502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd4502__7ee44502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4502__7ee44502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+static VTT_ENTRY vtt_ee44502[] = {
+ {&(_ZTV7ee44502[3]), 3,10},
+ {&(_tg__ZTV6dd4502__7ee44502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd4502__7ee44502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd4502__7ee44502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4502__7ee44502[4]), 4,6},
+ {&(_ZTV7ee44502[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44502[];
+extern VTBL_ENTRY _ZTV7ee44502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44502[];
+static VTBL_ENTRY alt_thunk_names1008[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee445023barEv,_ZTv0_n16_N7ee445023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee445023barEv,_ZThn16_N7ee445023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44502 = { "ee44502", // class name
+ bases_ee44502, 4,
+ &(vtc_ee44502[0]), // expected_vtbl_contents
+ &(vtt_ee44502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44502),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1008,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54502 : virtual dd4502 {
+ int e;
+ virtual void bar(); // _ZN7ee545023barEv
+ ~ee54502(); // tgen
+ ee54502(); // tgen
+};
+//SIG(1 ee54502) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54502 ::bar(){vfunc_called(this, "_ZN7ee545023barEv");}
+ee54502 ::~ee54502(){ note_dtor("ee54502", this);} // tgen
+ee54502 ::ee54502(){ note_ctor("ee54502", this);} // tgen
+
+static void Test_ee54502()
+{
+ extern Class_Descriptor cd_ee54502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54502, buf);
+ ee54502 *dp, &lv = *(dp=new (buf) ee54502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee54502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd4502*), ABISELECT(32,20), "ee54502");
+ check_base_class_offset(lv, (cc502*)(dd4502*), ABISELECT(16,8), "ee54502");
+ check_base_class_offset(lv, (dd4502*), ABISELECT(16,8), "ee54502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54502.e");
+ test_class_info(&lv, &cd_ee54502);
+ dp->~ee54502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54502(Test_ee54502, "ee54502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54502C1Ev();
+extern void _ZN7ee54502D1Ev();
+Name_Map name_map_ee54502[] = {
+ NSPAIR(_ZN7ee54502C1Ev),
+ NSPAIR(_ZN7ee54502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd4502;
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static Base_Class bases_ee54502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54502[];
+extern void _ZN7ee545023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545023barEv,_ZTv0_n16_N7ee545023barEv)();
+extern void ABISELECT(_ZThn16_N7ee545023barEv,_ZThn8_N7ee545023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545023barEv,_ZTv0_n16_N7ee545023barEv)();
+extern void ABISELECT(_ZThn32_N7ee545023barEv,_ZThn20_N7ee545023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54502[0]),
+ (VTBL_ENTRY)&_ZN7ee545023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545023barEv,_ZTv0_n16_N7ee545023barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545023barEv,_ZTv0_n16_N7ee545023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54502[];
+extern void _ZN6dd45023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4502__7ee54502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd4502__7ee54502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd4502__7ee54502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4502__7ee54502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+static VTT_ENTRY vtt_ee54502[] = {
+ {&(_ZTV7ee54502[4]), 4,16},
+ {&(_ZTV7ee54502[9]), 9,16},
+ {&(_ZTV7ee54502[14]), 14,16},
+ {&(_tg__ZTV6dd4502__7ee54502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd4502__7ee54502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd4502__7ee54502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4502__7ee54502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54502[];
+extern VTBL_ENTRY _ZTV7ee54502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54502[];
+static VTBL_ENTRY alt_thunk_names1009[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545023barEv,_ZTv0_n16_N7ee545023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee545023barEv,_ZThn20_N7ee545023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545023barEv,_ZThn8_N7ee545023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54502 = { "ee54502", // class name
+ bases_ee54502, 4,
+ &(vtc_ee54502[0]), // expected_vtbl_contents
+ &(vtt_ee54502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1009,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64502 : dd4502 {
+ int e;
+ virtual void foo(); // _ZN7ee645023fooEv
+ virtual void bar(); // _ZN7ee645023barEv
+ ~ee64502(); // tgen
+ ee64502(); // tgen
+};
+//SIG(1 ee64502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64502 ::foo(){vfunc_called(this, "_ZN7ee645023fooEv");}
+void ee64502 ::bar(){vfunc_called(this, "_ZN7ee645023barEv");}
+ee64502 ::~ee64502(){ note_dtor("ee64502", this);} // tgen
+ee64502 ::ee64502(){ note_ctor("ee64502", this);} // tgen
+
+static void Test_ee64502()
+{
+ extern Class_Descriptor cd_ee64502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64502, buf);
+ ee64502 *dp, &lv = *(dp=new (buf) ee64502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee64502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd4502*), ABISELECT(24,16), "ee64502");
+ check_base_class_offset(lv, (cc502*)(dd4502*), 0, "ee64502");
+ check_base_class_offset(lv, (dd4502*), 0, "ee64502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64502.e");
+ test_class_info(&lv, &cd_ee64502);
+ dp->~ee64502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64502(Test_ee64502, "ee64502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64502C1Ev();
+extern void _ZN7ee64502D1Ev();
+Name_Map name_map_ee64502[] = {
+ NSPAIR(_ZN7ee64502C1Ev),
+ NSPAIR(_ZN7ee64502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd4502;
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static Base_Class bases_ee64502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64502[];
+extern void _ZN7ee645023barEv();
+extern void _ZN7ee645023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee645023fooEv,_ZTv0_n12_N7ee645023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee645023fooEv,_ZThn16_N7ee645023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee645023barEv,_ZTv0_n16_N7ee645023barEv)();
+extern void ABISELECT(_ZThn24_N7ee645023barEv,_ZThn16_N7ee645023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64502[0]),
+ (VTBL_ENTRY)&_ZN7ee645023barEv,
+ (VTBL_ENTRY)&_ZN7ee645023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645023fooEv,_ZTv0_n12_N7ee645023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645023barEv,_ZTv0_n16_N7ee645023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64502[];
+extern void _ZN6dd45023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4502__7ee64502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd4502__7ee64502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd4502__7ee64502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4502__7ee64502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+static VTT_ENTRY vtt_ee64502[] = {
+ {&(_ZTV7ee64502[3]), 3,11},
+ {&(_tg__ZTV6dd4502__7ee64502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd4502__7ee64502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd4502__7ee64502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4502__7ee64502[4]), 4,6},
+ {&(_ZTV7ee64502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64502[];
+extern VTBL_ENTRY _ZTV7ee64502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64502[];
+static VTBL_ENTRY alt_thunk_names1010[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45023barEv,_ZThn16_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee645023barEv,_ZTv0_n16_N7ee645023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645023barEv,_ZThn16_N7ee645023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645023fooEv,_ZTv0_n12_N7ee645023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645023fooEv,_ZThn16_N7ee645023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64502 = { "ee64502", // class name
+ bases_ee64502, 4,
+ &(vtc_ee64502[0]), // expected_vtbl_contents
+ &(vtt_ee64502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1010,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74502 : virtual dd4502 {
+ int e;
+ virtual void foo(); // _ZN7ee745023fooEv
+ virtual void bar(); // _ZN7ee745023barEv
+ ~ee74502(); // tgen
+ ee74502(); // tgen
+};
+//SIG(1 ee74502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74502 ::foo(){vfunc_called(this, "_ZN7ee745023fooEv");}
+void ee74502 ::bar(){vfunc_called(this, "_ZN7ee745023barEv");}
+ee74502 ::~ee74502(){ note_dtor("ee74502", this);} // tgen
+ee74502 ::ee74502(){ note_ctor("ee74502", this);} // tgen
+
+static void Test_ee74502()
+{
+ extern Class_Descriptor cd_ee74502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74502, buf);
+ ee74502 *dp, &lv = *(dp=new (buf) ee74502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee74502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd4502*), ABISELECT(32,20), "ee74502");
+ check_base_class_offset(lv, (cc502*)(dd4502*), ABISELECT(16,8), "ee74502");
+ check_base_class_offset(lv, (dd4502*), ABISELECT(16,8), "ee74502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74502.e");
+ test_class_info(&lv, &cd_ee74502);
+ dp->~ee74502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74502(Test_ee74502, "ee74502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74502C1Ev();
+extern void _ZN7ee74502D1Ev();
+Name_Map name_map_ee74502[] = {
+ NSPAIR(_ZN7ee74502C1Ev),
+ NSPAIR(_ZN7ee74502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd4502;
+extern VTBL_ENTRY _ZTI6dd4502[];
+extern VTBL_ENTRY _ZTV6dd4502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4502[];
+static Base_Class bases_ee74502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74502[];
+extern void _ZN7ee745023fooEv();
+extern void _ZN7ee745023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee745023barEv,_ZTv0_n16_N7ee745023barEv)();
+extern void ABISELECT(_ZThn16_N7ee745023barEv,_ZThn8_N7ee745023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745023fooEv,_ZTv0_n12_N7ee745023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee745023fooEv,_ZThn20_N7ee745023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745023barEv,_ZTv0_n16_N7ee745023barEv)();
+extern void ABISELECT(_ZThn32_N7ee745023barEv,_ZThn20_N7ee745023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74502[0]),
+ (VTBL_ENTRY)&_ZN7ee745023fooEv,
+ (VTBL_ENTRY)&_ZN7ee745023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745023barEv,_ZTv0_n16_N7ee745023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745023fooEv,_ZTv0_n12_N7ee745023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745023barEv,_ZTv0_n16_N7ee745023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74502[];
+extern void _ZN6dd45023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4502__7ee74502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN6dd45023barEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd4502__7ee74502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd4502__7ee74502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv)();
+extern void ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4502__7ee74502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv),
+};
+static VTT_ENTRY vtt_ee74502[] = {
+ {&(_ZTV7ee74502[4]), 4,17},
+ {&(_ZTV7ee74502[10]), 10,17},
+ {&(_ZTV7ee74502[15]), 15,17},
+ {&(_tg__ZTV6dd4502__7ee74502[3]), 3,4},
+ {&(_tg__ZTV5cc5026dd4502__7ee74502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd4502__7ee74502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4502__7ee74502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74502[];
+extern VTBL_ENTRY _ZTV7ee74502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74502[];
+static VTBL_ENTRY alt_thunk_names1011[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45023barEv,_ZTv0_n16_N6dd45023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45023barEv,_ZThn12_N6dd45023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745023fooEv,_ZTv0_n12_N7ee745023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745023fooEv,_ZThn20_N7ee745023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745023barEv,_ZTv0_n16_N7ee745023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745023barEv,_ZThn20_N7ee745023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745023barEv,_ZThn8_N7ee745023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74502 = { "ee74502", // class name
+ bases_ee74502, 4,
+ &(vtc_ee74502[0]), // expected_vtbl_contents
+ &(vtt_ee74502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1011,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5502 : virtual cc502 {
+ int d;
+ virtual void bar(); // _ZN6dd55023barEv
+ ~dd5502(); // tgen
+ dd5502(); // tgen
+};
+//SIG(-1 dd5502) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void dd5502 ::bar(){vfunc_called(this, "_ZN6dd55023barEv");}
+dd5502 ::~dd5502(){ note_dtor("dd5502", this);} // tgen
+dd5502 ::dd5502(){ note_ctor("dd5502", this);} // tgen
+
+static void Test_dd5502()
+{
+ extern Class_Descriptor cd_dd5502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5502, buf);
+ dd5502 *dp, &lv = *(dp=new (buf) dd5502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd5502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,16), "dd5502");
+ check_base_class_offset(lv, (cc502*), ABISELECT(16,8), "dd5502");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5502.d");
+ test_class_info(&lv, &cd_dd5502);
+ dp->~dd5502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5502(Test_dd5502, "dd5502", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5502C1Ev();
+extern void _ZN6dd5502D1Ev();
+Name_Map name_map_dd5502[] = {
+ NSPAIR(_ZN6dd5502C1Ev),
+ NSPAIR(_ZN6dd5502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static Base_Class bases_dd5502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 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 _ZTI6dd5502[];
+extern void _ZN6dd55023barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__6dd5502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_dd5502[] = {
+ {&(_ZTV6dd5502[4]), 4,16},
+ {&(_ZTV6dd5502[9]), 9,16},
+ {&(_ZTV6dd5502[14]), 14,16},
+ {&(_tg__ZTV5cc502__6dd5502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__6dd5502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static VTBL_ENTRY alt_thunk_names1012[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5502 = { "dd5502", // class name
+ bases_dd5502, 3,
+ &(vtc_dd5502[0]), // expected_vtbl_contents
+ &(vtt_dd5502[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5502),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1012,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05502 : dd5502 {
+ int e;
+ ~ee05502(); // tgen
+ ee05502(); // tgen
+};
+//SIG(1 ee05502) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05502 ::~ee05502(){ note_dtor("ee05502", this);} // tgen
+ee05502 ::ee05502(){ note_ctor("ee05502", this);} // tgen
+
+static void Test_ee05502()
+{
+ extern Class_Descriptor cd_ee05502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05502, buf);
+ ee05502 *dp, &lv = *(dp=new (buf) ee05502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee05502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee05502");
+ check_base_class_offset(lv, (cc502*)(dd5502*), ABISELECT(16,12), "ee05502");
+ check_base_class_offset(lv, (dd5502*), 0, "ee05502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05502.e");
+ test_class_info(&lv, &cd_ee05502);
+ dp->~ee05502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05502(Test_ee05502, "ee05502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05502C1Ev();
+extern void _ZN7ee05502D1Ev();
+Name_Map name_map_ee05502[] = {
+ NSPAIR(_ZN7ee05502C1Ev),
+ NSPAIR(_ZN7ee05502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd5502;
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static Base_Class bases_ee05502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05502[];
+extern void _ZN6dd55023barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05502[];
+extern void _ZN6dd55023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5502__7ee05502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502__7ee05502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5502__7ee05502[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee05502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee05502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee05502[] = {
+ {&(_ZTV7ee05502[4]), 4,16},
+ {&(_tg__ZTV6dd5502__7ee05502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd5502__7ee05502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5502__7ee05502[4]), 4,6},
+ {&(_ZTV7ee05502[9]), 9,16},
+ {&(_ZTV7ee05502[14]), 14,16},
+ {&(_tg__ZTV5cc502__7ee05502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee05502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05502[];
+extern VTBL_ENTRY _ZTV7ee05502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05502[];
+static VTBL_ENTRY alt_thunk_names1013[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05502 = { "ee05502", // class name
+ bases_ee05502, 4,
+ &(vtc_ee05502[0]), // expected_vtbl_contents
+ &(vtt_ee05502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1013,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15502 : virtual dd5502 {
+ int e;
+ ~ee15502(); // tgen
+ ee15502(); // tgen
+};
+//SIG(1 ee15502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15502 ::~ee15502(){ note_dtor("ee15502", this);} // tgen
+ee15502 ::ee15502(){ note_ctor("ee15502", this);} // tgen
+
+static void Test_ee15502()
+{
+ extern Class_Descriptor cd_ee15502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15502, buf);
+ ee15502 *dp, &lv = *(dp=new (buf) ee15502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee15502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee15502");
+ check_base_class_offset(lv, (cc502*)(dd5502*), ABISELECT(32,16), "ee15502");
+ check_base_class_offset(lv, (dd5502*), ABISELECT(16,8), "ee15502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15502.e");
+ test_class_info(&lv, &cd_ee15502);
+ dp->~ee15502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15502(Test_ee15502, "ee15502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15502C1Ev();
+extern void _ZN7ee15502D1Ev();
+Name_Map name_map_ee15502[] = {
+ NSPAIR(_ZN7ee15502C1Ev),
+ NSPAIR(_ZN7ee15502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd5502;
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static Base_Class bases_ee15502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15502[];
+extern void _ZN6dd55023barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15502[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15502[];
+extern void _ZN6dd55023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5502__7ee15502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502__7ee15502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5502__7ee15502[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee15502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee15502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee15502[] = {
+ {&(_ZTV7ee15502[5]), 5,22},
+ {&(_ZTV7ee15502[10]), 10,22},
+ {&(_ZTV7ee15502[15]), 15,22},
+ {&(_ZTV7ee15502[20]), 20,22},
+ {&(_tg__ZTV6dd5502__7ee15502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd5502__7ee15502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5502__7ee15502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee15502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee15502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15502[];
+extern VTBL_ENTRY _ZTV7ee15502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15502[];
+static VTBL_ENTRY alt_thunk_names1014[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15502 = { "ee15502", // class name
+ bases_ee15502, 4,
+ &(vtc_ee15502[0]), // expected_vtbl_contents
+ &(vtt_ee15502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15502),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1014,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25502 : dd5502 {
+ int e;
+ virtual void foo(); // _ZN7ee255023fooEv
+ ~ee25502(); // tgen
+ ee25502(); // tgen
+};
+//SIG(1 ee25502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25502 ::foo(){vfunc_called(this, "_ZN7ee255023fooEv");}
+ee25502 ::~ee25502(){ note_dtor("ee25502", this);} // tgen
+ee25502 ::ee25502(){ note_ctor("ee25502", this);} // tgen
+
+static void Test_ee25502()
+{
+ extern Class_Descriptor cd_ee25502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25502, buf);
+ ee25502 *dp, &lv = *(dp=new (buf) ee25502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee25502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee25502");
+ check_base_class_offset(lv, (cc502*)(dd5502*), ABISELECT(16,12), "ee25502");
+ check_base_class_offset(lv, (dd5502*), 0, "ee25502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25502.e");
+ test_class_info(&lv, &cd_ee25502);
+ dp->~ee25502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25502(Test_ee25502, "ee25502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25502C1Ev();
+extern void _ZN7ee25502D1Ev();
+Name_Map name_map_ee25502[] = {
+ NSPAIR(_ZN7ee25502C1Ev),
+ NSPAIR(_ZN7ee25502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd5502;
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static Base_Class bases_ee25502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25502[];
+extern void _ZN6dd55023barEv();
+extern void _ZN7ee255023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255023fooEv,_ZTv0_n12_N7ee255023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee255023fooEv,_ZThn20_N7ee255023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+ (VTBL_ENTRY)&_ZN7ee255023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255023fooEv,_ZTv0_n12_N7ee255023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25502[];
+extern void _ZN6dd55023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5502__7ee25502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502__7ee25502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5502__7ee25502[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee25502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee25502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee25502[] = {
+ {&(_ZTV7ee25502[4]), 4,17},
+ {&(_tg__ZTV6dd5502__7ee25502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd5502__7ee25502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5502__7ee25502[4]), 4,6},
+ {&(_ZTV7ee25502[10]), 10,17},
+ {&(_ZTV7ee25502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee25502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee25502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25502[];
+extern VTBL_ENTRY _ZTV7ee25502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25502[];
+static VTBL_ENTRY alt_thunk_names1015[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255023fooEv,_ZTv0_n12_N7ee255023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee255023fooEv,_ZThn20_N7ee255023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25502 = { "ee25502", // class name
+ bases_ee25502, 4,
+ &(vtc_ee25502[0]), // expected_vtbl_contents
+ &(vtt_ee25502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1015,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35502 : virtual dd5502 {
+ int e;
+ virtual void foo(); // _ZN7ee355023fooEv
+ ~ee35502(); // tgen
+ ee35502(); // tgen
+};
+//SIG(1 ee35502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35502 ::foo(){vfunc_called(this, "_ZN7ee355023fooEv");}
+ee35502 ::~ee35502(){ note_dtor("ee35502", this);} // tgen
+ee35502 ::ee35502(){ note_ctor("ee35502", this);} // tgen
+
+static void Test_ee35502()
+{
+ extern Class_Descriptor cd_ee35502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35502, buf);
+ ee35502 *dp, &lv = *(dp=new (buf) ee35502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee35502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee35502");
+ check_base_class_offset(lv, (cc502*)(dd5502*), ABISELECT(32,16), "ee35502");
+ check_base_class_offset(lv, (dd5502*), ABISELECT(16,8), "ee35502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35502.e");
+ test_class_info(&lv, &cd_ee35502);
+ dp->~ee35502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35502(Test_ee35502, "ee35502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35502C1Ev();
+extern void _ZN7ee35502D1Ev();
+Name_Map name_map_ee35502[] = {
+ NSPAIR(_ZN7ee35502C1Ev),
+ NSPAIR(_ZN7ee35502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd5502;
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static Base_Class bases_ee35502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35502[];
+extern void _ZN7ee355023fooEv();
+extern void _ZN6dd55023barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355023fooEv,_ZTv0_n12_N7ee355023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee355023fooEv,_ZThn24_N7ee355023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35502[0]),
+ (VTBL_ENTRY)&_ZN7ee355023fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355023fooEv,_ZTv0_n12_N7ee355023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35502[];
+extern void _ZN6dd55023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5502__7ee35502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502__7ee35502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5502__7ee35502[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee35502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee35502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee35502[] = {
+ {&(_ZTV7ee35502[5]), 5,23},
+ {&(_ZTV7ee35502[11]), 11,23},
+ {&(_ZTV7ee35502[16]), 16,23},
+ {&(_ZTV7ee35502[21]), 21,23},
+ {&(_tg__ZTV6dd5502__7ee35502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd5502__7ee35502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5502__7ee35502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee35502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee35502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35502[];
+extern VTBL_ENTRY _ZTV7ee35502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35502[];
+static VTBL_ENTRY alt_thunk_names1016[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355023fooEv,_ZTv0_n12_N7ee355023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee355023fooEv,_ZThn24_N7ee355023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35502 = { "ee35502", // class name
+ bases_ee35502, 4,
+ &(vtc_ee35502[0]), // expected_vtbl_contents
+ &(vtt_ee35502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35502),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1016,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45502 : dd5502 {
+ int e;
+ virtual void bar(); // _ZN7ee455023barEv
+ ~ee45502(); // tgen
+ ee45502(); // tgen
+};
+//SIG(1 ee45502) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45502 ::bar(){vfunc_called(this, "_ZN7ee455023barEv");}
+ee45502 ::~ee45502(){ note_dtor("ee45502", this);} // tgen
+ee45502 ::ee45502(){ note_ctor("ee45502", this);} // tgen
+
+static void Test_ee45502()
+{
+ extern Class_Descriptor cd_ee45502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45502, buf);
+ ee45502 *dp, &lv = *(dp=new (buf) ee45502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee45502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee45502");
+ check_base_class_offset(lv, (cc502*)(dd5502*), ABISELECT(16,12), "ee45502");
+ check_base_class_offset(lv, (dd5502*), 0, "ee45502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45502.e");
+ test_class_info(&lv, &cd_ee45502);
+ dp->~ee45502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45502(Test_ee45502, "ee45502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45502C1Ev();
+extern void _ZN7ee45502D1Ev();
+Name_Map name_map_ee45502[] = {
+ NSPAIR(_ZN7ee45502C1Ev),
+ NSPAIR(_ZN7ee45502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd5502;
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static Base_Class bases_ee45502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45502[];
+extern void _ZN7ee455023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455023barEv,_ZTv0_n16_N7ee455023barEv)();
+extern void ABISELECT(_ZThn16_N7ee455023barEv,_ZThn12_N7ee455023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455023barEv,_ZTv0_n16_N7ee455023barEv)();
+extern void ABISELECT(_ZThn32_N7ee455023barEv,_ZThn20_N7ee455023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45502[0]),
+ (VTBL_ENTRY)&_ZN7ee455023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455023barEv,_ZTv0_n16_N7ee455023barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455023barEv,_ZTv0_n16_N7ee455023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45502[];
+extern void _ZN6dd55023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5502__7ee45502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502__7ee45502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5502__7ee45502[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee45502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee45502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee45502[] = {
+ {&(_ZTV7ee45502[4]), 4,16},
+ {&(_tg__ZTV6dd5502__7ee45502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd5502__7ee45502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5502__7ee45502[4]), 4,6},
+ {&(_ZTV7ee45502[9]), 9,16},
+ {&(_ZTV7ee45502[14]), 14,16},
+ {&(_tg__ZTV5cc502__7ee45502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee45502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45502[];
+extern VTBL_ENTRY _ZTV7ee45502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45502[];
+static VTBL_ENTRY alt_thunk_names1017[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455023barEv,_ZTv0_n16_N7ee455023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee455023barEv,_ZThn20_N7ee455023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455023barEv,_ZThn12_N7ee455023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45502 = { "ee45502", // class name
+ bases_ee45502, 4,
+ &(vtc_ee45502[0]), // expected_vtbl_contents
+ &(vtt_ee45502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45502),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1017,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55502 : virtual dd5502 {
+ int e;
+ virtual void bar(); // _ZN7ee555023barEv
+ ~ee55502(); // tgen
+ ee55502(); // tgen
+};
+//SIG(1 ee55502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55502 ::bar(){vfunc_called(this, "_ZN7ee555023barEv");}
+ee55502 ::~ee55502(){ note_dtor("ee55502", this);} // tgen
+ee55502 ::ee55502(){ note_ctor("ee55502", this);} // tgen
+
+static void Test_ee55502()
+{
+ extern Class_Descriptor cd_ee55502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55502, buf);
+ ee55502 *dp, &lv = *(dp=new (buf) ee55502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee55502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee55502");
+ check_base_class_offset(lv, (cc502*)(dd5502*), ABISELECT(32,16), "ee55502");
+ check_base_class_offset(lv, (dd5502*), ABISELECT(16,8), "ee55502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55502.e");
+ test_class_info(&lv, &cd_ee55502);
+ dp->~ee55502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55502(Test_ee55502, "ee55502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55502C1Ev();
+extern void _ZN7ee55502D1Ev();
+Name_Map name_map_ee55502[] = {
+ NSPAIR(_ZN7ee55502C1Ev),
+ NSPAIR(_ZN7ee55502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd5502;
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static Base_Class bases_ee55502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55502[];
+extern void _ZN7ee555023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee555023barEv,_ZTv0_n20_N7ee555023barEv)();
+extern void ABISELECT(_ZThn16_N7ee555023barEv,_ZThn8_N7ee555023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555023barEv,_ZTv0_n16_N7ee555023barEv)();
+extern void ABISELECT(_ZThn32_N7ee555023barEv,_ZThn16_N7ee555023barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee555023barEv,_ZTv0_n16_N7ee555023barEv)();
+extern void ABISELECT(_ZThn48_N7ee555023barEv,_ZThn24_N7ee555023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55502[0]),
+ (VTBL_ENTRY)&_ZN7ee555023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555023barEv,_ZTv0_n20_N7ee555023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555023barEv,_ZTv0_n16_N7ee555023barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555023barEv,_ZTv0_n16_N7ee555023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55502[];
+extern void _ZN6dd55023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5502__7ee55502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502__7ee55502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5502__7ee55502[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee55502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee55502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee55502[] = {
+ {&(_ZTV7ee55502[5]), 5,23},
+ {&(_ZTV7ee55502[11]), 11,23},
+ {&(_ZTV7ee55502[16]), 16,23},
+ {&(_ZTV7ee55502[21]), 21,23},
+ {&(_tg__ZTV6dd5502__7ee55502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd5502__7ee55502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5502__7ee55502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee55502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee55502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55502[];
+extern VTBL_ENTRY _ZTV7ee55502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55502[];
+static VTBL_ENTRY alt_thunk_names1018[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555023barEv,_ZTv0_n16_N7ee555023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee555023barEv,_ZThn24_N7ee555023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555023barEv,_ZThn16_N7ee555023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555023barEv,_ZTv0_n20_N7ee555023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555023barEv,_ZThn8_N7ee555023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55502 = { "ee55502", // class name
+ bases_ee55502, 4,
+ &(vtc_ee55502[0]), // expected_vtbl_contents
+ &(vtt_ee55502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55502),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1018,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65502 : dd5502 {
+ int e;
+ virtual void foo(); // _ZN7ee655023fooEv
+ virtual void bar(); // _ZN7ee655023barEv
+ ~ee65502(); // tgen
+ ee65502(); // tgen
+};
+//SIG(1 ee65502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65502 ::foo(){vfunc_called(this, "_ZN7ee655023fooEv");}
+void ee65502 ::bar(){vfunc_called(this, "_ZN7ee655023barEv");}
+ee65502 ::~ee65502(){ note_dtor("ee65502", this);} // tgen
+ee65502 ::ee65502(){ note_ctor("ee65502", this);} // tgen
+
+static void Test_ee65502()
+{
+ extern Class_Descriptor cd_ee65502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65502, buf);
+ ee65502 *dp, &lv = *(dp=new (buf) ee65502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee65502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee65502");
+ check_base_class_offset(lv, (cc502*)(dd5502*), ABISELECT(16,12), "ee65502");
+ check_base_class_offset(lv, (dd5502*), 0, "ee65502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65502.e");
+ test_class_info(&lv, &cd_ee65502);
+ dp->~ee65502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65502(Test_ee65502, "ee65502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65502C1Ev();
+extern void _ZN7ee65502D1Ev();
+Name_Map name_map_ee65502[] = {
+ NSPAIR(_ZN7ee65502C1Ev),
+ NSPAIR(_ZN7ee65502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd5502;
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static Base_Class bases_ee65502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65502[];
+extern void _ZN7ee655023barEv();
+extern void _ZN7ee655023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee655023barEv,_ZTv0_n16_N7ee655023barEv)();
+extern void ABISELECT(_ZThn16_N7ee655023barEv,_ZThn12_N7ee655023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655023fooEv,_ZTv0_n12_N7ee655023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee655023fooEv,_ZThn20_N7ee655023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655023barEv,_ZTv0_n16_N7ee655023barEv)();
+extern void ABISELECT(_ZThn32_N7ee655023barEv,_ZThn20_N7ee655023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65502[0]),
+ (VTBL_ENTRY)&_ZN7ee655023barEv,
+ (VTBL_ENTRY)&_ZN7ee655023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655023barEv,_ZTv0_n16_N7ee655023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655023fooEv,_ZTv0_n12_N7ee655023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655023barEv,_ZTv0_n16_N7ee655023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65502[];
+extern void _ZN6dd55023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5502__7ee65502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502__7ee65502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5502__7ee65502[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee65502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee65502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee65502[] = {
+ {&(_ZTV7ee65502[4]), 4,17},
+ {&(_tg__ZTV6dd5502__7ee65502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd5502__7ee65502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5502__7ee65502[4]), 4,6},
+ {&(_ZTV7ee65502[10]), 10,17},
+ {&(_ZTV7ee65502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee65502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee65502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65502[];
+extern VTBL_ENTRY _ZTV7ee65502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65502[];
+static VTBL_ENTRY alt_thunk_names1019[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn20_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn12_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655023fooEv,_ZTv0_n12_N7ee655023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655023fooEv,_ZThn20_N7ee655023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655023barEv,_ZTv0_n16_N7ee655023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655023barEv,_ZThn20_N7ee655023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655023barEv,_ZThn12_N7ee655023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65502 = { "ee65502", // class name
+ bases_ee65502, 4,
+ &(vtc_ee65502[0]), // expected_vtbl_contents
+ &(vtt_ee65502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1019,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75502 : virtual dd5502 {
+ int e;
+ virtual void foo(); // _ZN7ee755023fooEv
+ virtual void bar(); // _ZN7ee755023barEv
+ ~ee75502(); // tgen
+ ee75502(); // tgen
+};
+//SIG(1 ee75502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75502 ::foo(){vfunc_called(this, "_ZN7ee755023fooEv");}
+void ee75502 ::bar(){vfunc_called(this, "_ZN7ee755023barEv");}
+ee75502 ::~ee75502(){ note_dtor("ee75502", this);} // tgen
+ee75502 ::ee75502(){ note_ctor("ee75502", this);} // tgen
+
+static void Test_ee75502()
+{
+ extern Class_Descriptor cd_ee75502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75502, buf);
+ ee75502 *dp, &lv = *(dp=new (buf) ee75502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee75502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee75502");
+ check_base_class_offset(lv, (cc502*)(dd5502*), ABISELECT(32,16), "ee75502");
+ check_base_class_offset(lv, (dd5502*), ABISELECT(16,8), "ee75502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75502.e");
+ test_class_info(&lv, &cd_ee75502);
+ dp->~ee75502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75502(Test_ee75502, "ee75502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75502C1Ev();
+extern void _ZN7ee75502D1Ev();
+Name_Map name_map_ee75502[] = {
+ NSPAIR(_ZN7ee75502C1Ev),
+ NSPAIR(_ZN7ee75502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd5502;
+extern VTBL_ENTRY _ZTI6dd5502[];
+extern VTBL_ENTRY _ZTV6dd5502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5502[];
+static Base_Class bases_ee75502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5502, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75502[];
+extern void _ZN7ee755023fooEv();
+extern void _ZN7ee755023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee755023barEv,_ZTv0_n20_N7ee755023barEv)();
+extern void ABISELECT(_ZThn16_N7ee755023barEv,_ZThn8_N7ee755023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755023barEv,_ZTv0_n16_N7ee755023barEv)();
+extern void ABISELECT(_ZThn32_N7ee755023barEv,_ZThn16_N7ee755023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755023fooEv,_ZTv0_n12_N7ee755023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee755023fooEv,_ZThn24_N7ee755023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755023barEv,_ZTv0_n16_N7ee755023barEv)();
+extern void ABISELECT(_ZThn48_N7ee755023barEv,_ZThn24_N7ee755023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75502[0]),
+ (VTBL_ENTRY)&_ZN7ee755023fooEv,
+ (VTBL_ENTRY)&_ZN7ee755023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755023barEv,_ZTv0_n20_N7ee755023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755023barEv,_ZTv0_n16_N7ee755023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755023fooEv,_ZTv0_n12_N7ee755023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755023barEv,_ZTv0_n16_N7ee755023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75502[];
+extern void _ZN6dd55023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5502__7ee75502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN6dd55023barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd5502__7ee75502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv)();
+extern void ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5502__7ee75502[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee75502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee75502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee75502[] = {
+ {&(_ZTV7ee75502[5]), 5,24},
+ {&(_ZTV7ee75502[12]), 12,24},
+ {&(_ZTV7ee75502[17]), 17,24},
+ {&(_ZTV7ee75502[22]), 22,24},
+ {&(_tg__ZTV6dd5502__7ee75502[4]), 4,5},
+ {&(_tg__ZTV5cc502__6dd5502__7ee75502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd5502__7ee75502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee75502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee75502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75502[];
+extern VTBL_ENTRY _ZTV7ee75502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75502[];
+static VTBL_ENTRY alt_thunk_names1020[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55023barEv,_ZTv0_n16_N6dd55023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55023barEv,_ZThn16_N6dd55023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55023barEv,_ZThn8_N6dd55023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755023fooEv,_ZTv0_n12_N7ee755023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755023fooEv,_ZThn24_N7ee755023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755023barEv,_ZTv0_n16_N7ee755023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755023barEv,_ZThn24_N7ee755023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755023barEv,_ZThn16_N7ee755023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755023barEv,_ZTv0_n20_N7ee755023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755023barEv,_ZThn8_N7ee755023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75502 = { "ee75502", // class name
+ bases_ee75502, 4,
+ &(vtc_ee75502[0]), // expected_vtbl_contents
+ &(vtt_ee75502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75502),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1020,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6502 : cc502 {
+ int d;
+ virtual void bar(); // _ZN6dd65023barEv
+ virtual void foo(); // _ZN6dd65023fooEv
+ ~dd6502(); // tgen
+ dd6502(); // tgen
+};
+//SIG(-1 dd6502) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6502 ::bar(){vfunc_called(this, "_ZN6dd65023barEv");}
+void dd6502 ::foo(){vfunc_called(this, "_ZN6dd65023fooEv");}
+dd6502 ::~dd6502(){ note_dtor("dd6502", this);} // tgen
+dd6502 ::dd6502(){ note_ctor("dd6502", this);} // tgen
+
+static void Test_dd6502()
+{
+ extern Class_Descriptor cd_dd6502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6502, buf);
+ dd6502 *dp, &lv = *(dp=new (buf) dd6502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd6502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(16,12), "dd6502");
+ check_base_class_offset(lv, (cc502*), 0, "dd6502");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6502.d");
+ test_class_info(&lv, &cd_dd6502);
+ dp->~dd6502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6502(Test_dd6502, "dd6502", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6502C1Ev();
+extern void _ZN6dd6502D1Ev();
+Name_Map name_map_dd6502[] = {
+ NSPAIR(_ZN6dd6502C1Ev),
+ NSPAIR(_ZN6dd6502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static Base_Class bases_dd6502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd6502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__6dd6502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_dd6502[] = {
+ {&(_ZTV6dd6502[3]), 3,11},
+ {&(_tg__ZTV5cc502__6dd6502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__6dd6502[4]), 4,6},
+ {&(_ZTV6dd6502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static VTBL_ENTRY alt_thunk_names1021[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6502 = { "dd6502", // class name
+ bases_dd6502, 3,
+ &(vtc_dd6502[0]), // expected_vtbl_contents
+ &(vtt_dd6502[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6502),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1021,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06502 : dd6502 {
+ int e;
+ ~ee06502(); // tgen
+ ee06502(); // tgen
+};
+//SIG(1 ee06502) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06502 ::~ee06502(){ note_dtor("ee06502", this);} // tgen
+ee06502 ::ee06502(){ note_ctor("ee06502", this);} // tgen
+
+static void Test_ee06502()
+{
+ extern Class_Descriptor cd_ee06502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06502, buf);
+ ee06502 *dp, &lv = *(dp=new (buf) ee06502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee06502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd6502*), ABISELECT(24,16), "ee06502");
+ check_base_class_offset(lv, (cc502*)(dd6502*), 0, "ee06502");
+ check_base_class_offset(lv, (dd6502*), 0, "ee06502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06502.e");
+ test_class_info(&lv, &cd_ee06502);
+ dp->~ee06502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06502(Test_ee06502, "ee06502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06502C1Ev();
+extern void _ZN7ee06502D1Ev();
+Name_Map name_map_ee06502[] = {
+ NSPAIR(_ZN7ee06502C1Ev),
+ NSPAIR(_ZN7ee06502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd6502;
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static Base_Class bases_ee06502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6502__7ee06502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd6502__7ee06502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd6502__7ee06502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6502__7ee06502[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+static VTT_ENTRY vtt_ee06502[] = {
+ {&(_ZTV7ee06502[3]), 3,11},
+ {&(_tg__ZTV6dd6502__7ee06502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd6502__7ee06502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd6502__7ee06502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6502__7ee06502[4]), 4,6},
+ {&(_ZTV7ee06502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06502[];
+extern VTBL_ENTRY _ZTV7ee06502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06502[];
+static VTBL_ENTRY alt_thunk_names1022[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06502 = { "ee06502", // class name
+ bases_ee06502, 4,
+ &(vtc_ee06502[0]), // expected_vtbl_contents
+ &(vtt_ee06502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1022,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16502 : virtual dd6502 {
+ int e;
+ ~ee16502(); // tgen
+ ee16502(); // tgen
+};
+//SIG(1 ee16502) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16502 ::~ee16502(){ note_dtor("ee16502", this);} // tgen
+ee16502 ::ee16502(){ note_ctor("ee16502", this);} // tgen
+
+static void Test_ee16502()
+{
+ extern Class_Descriptor cd_ee16502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16502, buf);
+ ee16502 *dp, &lv = *(dp=new (buf) ee16502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee16502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd6502*), ABISELECT(32,20), "ee16502");
+ check_base_class_offset(lv, (cc502*)(dd6502*), ABISELECT(16,8), "ee16502");
+ check_base_class_offset(lv, (dd6502*), ABISELECT(16,8), "ee16502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16502.e");
+ test_class_info(&lv, &cd_ee16502);
+ dp->~ee16502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16502(Test_ee16502, "ee16502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16502C1Ev();
+extern void _ZN7ee16502D1Ev();
+Name_Map name_map_ee16502[] = {
+ NSPAIR(_ZN7ee16502C1Ev),
+ NSPAIR(_ZN7ee16502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd6502;
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static Base_Class bases_ee16502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6502, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16502[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6502__7ee16502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd6502__7ee16502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd6502__7ee16502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6502__7ee16502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+static VTT_ENTRY vtt_ee16502[] = {
+ {&(_ZTV7ee16502[4]), 4,17},
+ {&(_ZTV7ee16502[9]), 9,17},
+ {&(_ZTV7ee16502[15]), 15,17},
+ {&(_tg__ZTV6dd6502__7ee16502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd6502__7ee16502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd6502__7ee16502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6502__7ee16502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16502[];
+extern VTBL_ENTRY _ZTV7ee16502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16502[];
+static VTBL_ENTRY alt_thunk_names1023[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16502 = { "ee16502", // class name
+ bases_ee16502, 4,
+ &(vtc_ee16502[0]), // expected_vtbl_contents
+ &(vtt_ee16502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1023,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26502 : dd6502 {
+ int e;
+ virtual void foo(); // _ZN7ee265023fooEv
+ ~ee26502(); // tgen
+ ee26502(); // tgen
+};
+//SIG(1 ee26502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26502 ::foo(){vfunc_called(this, "_ZN7ee265023fooEv");}
+ee26502 ::~ee26502(){ note_dtor("ee26502", this);} // tgen
+ee26502 ::ee26502(){ note_ctor("ee26502", this);} // tgen
+
+static void Test_ee26502()
+{
+ extern Class_Descriptor cd_ee26502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26502, buf);
+ ee26502 *dp, &lv = *(dp=new (buf) ee26502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee26502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd6502*), ABISELECT(24,16), "ee26502");
+ check_base_class_offset(lv, (cc502*)(dd6502*), 0, "ee26502");
+ check_base_class_offset(lv, (dd6502*), 0, "ee26502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26502.e");
+ test_class_info(&lv, &cd_ee26502);
+ dp->~ee26502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26502(Test_ee26502, "ee26502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26502C1Ev();
+extern void _ZN7ee26502D1Ev();
+Name_Map name_map_ee26502[] = {
+ NSPAIR(_ZN7ee26502C1Ev),
+ NSPAIR(_ZN7ee26502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd6502;
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static Base_Class bases_ee26502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN7ee265023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee265023fooEv,_ZTv0_n12_N7ee265023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee265023fooEv,_ZThn16_N7ee265023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN7ee265023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265023fooEv,_ZTv0_n12_N7ee265023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6502__7ee26502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd6502__7ee26502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd6502__7ee26502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6502__7ee26502[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+static VTT_ENTRY vtt_ee26502[] = {
+ {&(_ZTV7ee26502[3]), 3,11},
+ {&(_tg__ZTV6dd6502__7ee26502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd6502__7ee26502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd6502__7ee26502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6502__7ee26502[4]), 4,6},
+ {&(_ZTV7ee26502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26502[];
+extern VTBL_ENTRY _ZTV7ee26502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26502[];
+static VTBL_ENTRY alt_thunk_names1024[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265023fooEv,_ZTv0_n12_N7ee265023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee265023fooEv,_ZThn16_N7ee265023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26502 = { "ee26502", // class name
+ bases_ee26502, 4,
+ &(vtc_ee26502[0]), // expected_vtbl_contents
+ &(vtt_ee26502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1024,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36502 : virtual dd6502 {
+ int e;
+ virtual void foo(); // _ZN7ee365023fooEv
+ ~ee36502(); // tgen
+ ee36502(); // tgen
+};
+//SIG(1 ee36502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36502 ::foo(){vfunc_called(this, "_ZN7ee365023fooEv");}
+ee36502 ::~ee36502(){ note_dtor("ee36502", this);} // tgen
+ee36502 ::ee36502(){ note_ctor("ee36502", this);} // tgen
+
+static void Test_ee36502()
+{
+ extern Class_Descriptor cd_ee36502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36502, buf);
+ ee36502 *dp, &lv = *(dp=new (buf) ee36502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee36502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd6502*), ABISELECT(32,20), "ee36502");
+ check_base_class_offset(lv, (cc502*)(dd6502*), ABISELECT(16,8), "ee36502");
+ check_base_class_offset(lv, (dd6502*), ABISELECT(16,8), "ee36502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36502.e");
+ test_class_info(&lv, &cd_ee36502);
+ dp->~ee36502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36502(Test_ee36502, "ee36502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36502C1Ev();
+extern void _ZN7ee36502D1Ev();
+Name_Map name_map_ee36502[] = {
+ NSPAIR(_ZN7ee36502C1Ev),
+ NSPAIR(_ZN7ee36502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd6502;
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static Base_Class bases_ee36502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36502[];
+extern void _ZN7ee365023fooEv();
+extern void _ZN6dd65023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee365023fooEv,_ZTv0_n20_N7ee365023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365023fooEv,_ZThn8_N7ee365023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365023fooEv,_ZTv0_n12_N7ee365023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee365023fooEv,_ZThn20_N7ee365023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36502[0]),
+ (VTBL_ENTRY)&_ZN7ee365023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee365023fooEv,_ZTv0_n20_N7ee365023fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365023fooEv,_ZTv0_n12_N7ee365023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6502__7ee36502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd6502__7ee36502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd6502__7ee36502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6502__7ee36502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+static VTT_ENTRY vtt_ee36502[] = {
+ {&(_ZTV7ee36502[4]), 4,18},
+ {&(_ZTV7ee36502[10]), 10,18},
+ {&(_ZTV7ee36502[16]), 16,18},
+ {&(_tg__ZTV6dd6502__7ee36502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd6502__7ee36502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd6502__7ee36502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6502__7ee36502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36502[];
+extern VTBL_ENTRY _ZTV7ee36502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36502[];
+static VTBL_ENTRY alt_thunk_names1025[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365023fooEv,_ZTv0_n12_N7ee365023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee365023fooEv,_ZThn20_N7ee365023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee365023fooEv,_ZTv0_n20_N7ee365023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365023fooEv,_ZThn8_N7ee365023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36502 = { "ee36502", // class name
+ bases_ee36502, 4,
+ &(vtc_ee36502[0]), // expected_vtbl_contents
+ &(vtt_ee36502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36502),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1025,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46502 : dd6502 {
+ int e;
+ virtual void bar(); // _ZN7ee465023barEv
+ ~ee46502(); // tgen
+ ee46502(); // tgen
+};
+//SIG(1 ee46502) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46502 ::bar(){vfunc_called(this, "_ZN7ee465023barEv");}
+ee46502 ::~ee46502(){ note_dtor("ee46502", this);} // tgen
+ee46502 ::ee46502(){ note_ctor("ee46502", this);} // tgen
+
+static void Test_ee46502()
+{
+ extern Class_Descriptor cd_ee46502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46502, buf);
+ ee46502 *dp, &lv = *(dp=new (buf) ee46502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee46502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd6502*), ABISELECT(24,16), "ee46502");
+ check_base_class_offset(lv, (cc502*)(dd6502*), 0, "ee46502");
+ check_base_class_offset(lv, (dd6502*), 0, "ee46502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46502.e");
+ test_class_info(&lv, &cd_ee46502);
+ dp->~ee46502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46502(Test_ee46502, "ee46502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46502C1Ev();
+extern void _ZN7ee46502D1Ev();
+Name_Map name_map_ee46502[] = {
+ NSPAIR(_ZN7ee46502C1Ev),
+ NSPAIR(_ZN7ee46502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd6502;
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static Base_Class bases_ee46502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46502[];
+extern void _ZN7ee465023barEv();
+extern void _ZN6dd65023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee465023barEv,_ZTv0_n16_N7ee465023barEv)();
+extern void ABISELECT(_ZThn24_N7ee465023barEv,_ZThn16_N7ee465023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46502[0]),
+ (VTBL_ENTRY)&_ZN7ee465023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee465023barEv,_ZTv0_n16_N7ee465023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6502__7ee46502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd6502__7ee46502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd6502__7ee46502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6502__7ee46502[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+static VTT_ENTRY vtt_ee46502[] = {
+ {&(_ZTV7ee46502[3]), 3,11},
+ {&(_tg__ZTV6dd6502__7ee46502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd6502__7ee46502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd6502__7ee46502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6502__7ee46502[4]), 4,6},
+ {&(_ZTV7ee46502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46502[];
+extern VTBL_ENTRY _ZTV7ee46502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46502[];
+static VTBL_ENTRY alt_thunk_names1026[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee465023barEv,_ZTv0_n16_N7ee465023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee465023barEv,_ZThn16_N7ee465023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46502 = { "ee46502", // class name
+ bases_ee46502, 4,
+ &(vtc_ee46502[0]), // expected_vtbl_contents
+ &(vtt_ee46502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1026,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56502 : virtual dd6502 {
+ int e;
+ virtual void bar(); // _ZN7ee565023barEv
+ ~ee56502(); // tgen
+ ee56502(); // tgen
+};
+//SIG(1 ee56502) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56502 ::bar(){vfunc_called(this, "_ZN7ee565023barEv");}
+ee56502 ::~ee56502(){ note_dtor("ee56502", this);} // tgen
+ee56502 ::ee56502(){ note_ctor("ee56502", this);} // tgen
+
+static void Test_ee56502()
+{
+ extern Class_Descriptor cd_ee56502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56502, buf);
+ ee56502 *dp, &lv = *(dp=new (buf) ee56502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee56502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd6502*), ABISELECT(32,20), "ee56502");
+ check_base_class_offset(lv, (cc502*)(dd6502*), ABISELECT(16,8), "ee56502");
+ check_base_class_offset(lv, (dd6502*), ABISELECT(16,8), "ee56502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56502.e");
+ test_class_info(&lv, &cd_ee56502);
+ dp->~ee56502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56502(Test_ee56502, "ee56502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56502C1Ev();
+extern void _ZN7ee56502D1Ev();
+Name_Map name_map_ee56502[] = {
+ NSPAIR(_ZN7ee56502C1Ev),
+ NSPAIR(_ZN7ee56502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd6502;
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static Base_Class bases_ee56502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56502[];
+extern void _ZN7ee565023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565023barEv,_ZTv0_n16_N7ee565023barEv)();
+extern void ABISELECT(_ZThn16_N7ee565023barEv,_ZThn8_N7ee565023barEv)() __attribute__((weak));
+extern void _ZN6dd65023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee565023barEv,_ZTv0_n16_N7ee565023barEv)();
+extern void ABISELECT(_ZThn32_N7ee565023barEv,_ZThn20_N7ee565023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56502[0]),
+ (VTBL_ENTRY)&_ZN7ee565023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565023barEv,_ZTv0_n16_N7ee565023barEv),
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565023barEv,_ZTv0_n16_N7ee565023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6502__7ee56502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd6502__7ee56502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd6502__7ee56502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6502__7ee56502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+static VTT_ENTRY vtt_ee56502[] = {
+ {&(_ZTV7ee56502[4]), 4,18},
+ {&(_ZTV7ee56502[10]), 10,18},
+ {&(_ZTV7ee56502[16]), 16,18},
+ {&(_tg__ZTV6dd6502__7ee56502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd6502__7ee56502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd6502__7ee56502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6502__7ee56502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56502[];
+extern VTBL_ENTRY _ZTV7ee56502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56502[];
+static VTBL_ENTRY alt_thunk_names1027[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565023barEv,_ZTv0_n16_N7ee565023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee565023barEv,_ZThn20_N7ee565023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565023barEv,_ZThn8_N7ee565023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56502 = { "ee56502", // class name
+ bases_ee56502, 4,
+ &(vtc_ee56502[0]), // expected_vtbl_contents
+ &(vtt_ee56502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56502),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1027,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66502 : dd6502 {
+ int e;
+ virtual void foo(); // _ZN7ee665023fooEv
+ virtual void bar(); // _ZN7ee665023barEv
+ ~ee66502(); // tgen
+ ee66502(); // tgen
+};
+//SIG(1 ee66502) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66502 ::foo(){vfunc_called(this, "_ZN7ee665023fooEv");}
+void ee66502 ::bar(){vfunc_called(this, "_ZN7ee665023barEv");}
+ee66502 ::~ee66502(){ note_dtor("ee66502", this);} // tgen
+ee66502 ::ee66502(){ note_ctor("ee66502", this);} // tgen
+
+static void Test_ee66502()
+{
+ extern Class_Descriptor cd_ee66502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66502, buf);
+ ee66502 *dp, &lv = *(dp=new (buf) ee66502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee66502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd6502*), ABISELECT(24,16), "ee66502");
+ check_base_class_offset(lv, (cc502*)(dd6502*), 0, "ee66502");
+ check_base_class_offset(lv, (dd6502*), 0, "ee66502");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66502.e");
+ test_class_info(&lv, &cd_ee66502);
+ dp->~ee66502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66502(Test_ee66502, "ee66502", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66502C1Ev();
+extern void _ZN7ee66502D1Ev();
+Name_Map name_map_ee66502[] = {
+ NSPAIR(_ZN7ee66502C1Ev),
+ NSPAIR(_ZN7ee66502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd6502;
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static Base_Class bases_ee66502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66502[];
+extern void _ZN7ee665023barEv();
+extern void _ZN7ee665023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee665023fooEv,_ZTv0_n12_N7ee665023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee665023fooEv,_ZThn16_N7ee665023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee665023barEv,_ZTv0_n16_N7ee665023barEv)();
+extern void ABISELECT(_ZThn24_N7ee665023barEv,_ZThn16_N7ee665023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66502[0]),
+ (VTBL_ENTRY)&_ZN7ee665023barEv,
+ (VTBL_ENTRY)&_ZN7ee665023fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665023fooEv,_ZTv0_n12_N7ee665023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665023barEv,_ZTv0_n16_N7ee665023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6502__7ee66502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd6502__7ee66502[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd6502__7ee66502[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6502__7ee66502[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+static VTT_ENTRY vtt_ee66502[] = {
+ {&(_ZTV7ee66502[3]), 3,11},
+ {&(_tg__ZTV6dd6502__7ee66502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd6502__7ee66502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd6502__7ee66502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6502__7ee66502[4]), 4,6},
+ {&(_ZTV7ee66502[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66502[];
+extern VTBL_ENTRY _ZTV7ee66502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66502[];
+static VTBL_ENTRY alt_thunk_names1028[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023barEv,_ZThn16_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65023fooEv,_ZThn16_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5023barEv,_ZThn16_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee665023barEv,_ZTv0_n16_N7ee665023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665023barEv,_ZThn16_N7ee665023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665023fooEv,_ZTv0_n12_N7ee665023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665023fooEv,_ZThn16_N7ee665023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66502 = { "ee66502", // class name
+ bases_ee66502, 4,
+ &(vtc_ee66502[0]), // expected_vtbl_contents
+ &(vtt_ee66502[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66502),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66502),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1028,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76502 : virtual dd6502 {
+ int e;
+ virtual void foo(); // _ZN7ee765023fooEv
+ virtual void bar(); // _ZN7ee765023barEv
+ ~ee76502(); // tgen
+ ee76502(); // tgen
+};
+//SIG(1 ee76502) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76502 ::foo(){vfunc_called(this, "_ZN7ee765023fooEv");}
+void ee76502 ::bar(){vfunc_called(this, "_ZN7ee765023barEv");}
+ee76502 ::~ee76502(){ note_dtor("ee76502", this);} // tgen
+ee76502 ::ee76502(){ note_ctor("ee76502", this);} // tgen
+
+static void Test_ee76502()
+{
+ extern Class_Descriptor cd_ee76502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76502, buf);
+ ee76502 *dp, &lv = *(dp=new (buf) ee76502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee76502");
+ check_base_class_offset(lv, (bb02*)(cc502*)(dd6502*), ABISELECT(32,20), "ee76502");
+ check_base_class_offset(lv, (cc502*)(dd6502*), ABISELECT(16,8), "ee76502");
+ check_base_class_offset(lv, (dd6502*), ABISELECT(16,8), "ee76502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76502.e");
+ test_class_info(&lv, &cd_ee76502);
+ dp->~ee76502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76502(Test_ee76502, "ee76502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76502C1Ev();
+extern void _ZN7ee76502D1Ev();
+Name_Map name_map_ee76502[] = {
+ NSPAIR(_ZN7ee76502C1Ev),
+ NSPAIR(_ZN7ee76502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd6502;
+extern VTBL_ENTRY _ZTI6dd6502[];
+extern VTBL_ENTRY _ZTV6dd6502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6502[];
+static Base_Class bases_ee76502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76502[];
+extern void _ZN7ee765023fooEv();
+extern void _ZN7ee765023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee765023barEv,_ZTv0_n16_N7ee765023barEv)();
+extern void ABISELECT(_ZThn16_N7ee765023barEv,_ZThn8_N7ee765023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee765023fooEv,_ZTv0_n20_N7ee765023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765023fooEv,_ZThn8_N7ee765023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765023fooEv,_ZTv0_n12_N7ee765023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee765023fooEv,_ZThn20_N7ee765023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765023barEv,_ZTv0_n16_N7ee765023barEv)();
+extern void ABISELECT(_ZThn32_N7ee765023barEv,_ZThn20_N7ee765023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76502[0]),
+ (VTBL_ENTRY)&_ZN7ee765023fooEv,
+ (VTBL_ENTRY)&_ZN7ee765023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765023barEv,_ZTv0_n16_N7ee765023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765023fooEv,_ZTv0_n20_N7ee765023fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765023fooEv,_ZTv0_n12_N7ee765023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765023barEv,_ZTv0_n16_N7ee765023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76502[];
+extern void _ZN6dd65023barEv();
+extern void _ZN6dd65023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6502__7ee76502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&_ZN6dd65023barEv,
+ (VTBL_ENTRY)&_ZN6dd65023fooEv,
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc5026dd6502__7ee76502[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc5026dd6502__7ee76502[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv)();
+extern void ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6502__7ee76502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv),
+};
+static VTT_ENTRY vtt_ee76502[] = {
+ {&(_ZTV7ee76502[4]), 4,19},
+ {&(_ZTV7ee76502[11]), 11,19},
+ {&(_ZTV7ee76502[17]), 17,19},
+ {&(_tg__ZTV6dd6502__7ee76502[3]), 3,5},
+ {&(_tg__ZTV5cc5026dd6502__7ee76502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc5026dd6502__7ee76502[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6502__7ee76502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76502[];
+extern VTBL_ENTRY _ZTV7ee76502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76502[];
+static VTBL_ENTRY alt_thunk_names1029[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65023barEv,_ZTv0_n16_N6dd65023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023barEv,_ZThn12_N6dd65023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65023fooEv,_ZTv0_n12_N6dd65023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65023fooEv,_ZThn12_N6dd65023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn12_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765023fooEv,_ZTv0_n12_N7ee765023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765023fooEv,_ZThn20_N7ee765023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765023fooEv,_ZTv0_n20_N7ee765023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765023fooEv,_ZThn8_N7ee765023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765023barEv,_ZTv0_n16_N7ee765023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765023barEv,_ZThn20_N7ee765023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765023barEv,_ZThn8_N7ee765023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76502 = { "ee76502", // class name
+ bases_ee76502, 4,
+ &(vtc_ee76502[0]), // expected_vtbl_contents
+ &(vtt_ee76502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76502),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76502),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1029,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7502 : virtual cc502 {
+ int d;
+ virtual void bar(); // _ZN6dd75023barEv
+ virtual void foo(); // _ZN6dd75023fooEv
+ ~dd7502(); // tgen
+ dd7502(); // tgen
+};
+//SIG(-1 dd7502) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7502 ::bar(){vfunc_called(this, "_ZN6dd75023barEv");}
+void dd7502 ::foo(){vfunc_called(this, "_ZN6dd75023fooEv");}
+dd7502 ::~dd7502(){ note_dtor("dd7502", this);} // tgen
+dd7502 ::dd7502(){ note_ctor("dd7502", this);} // tgen
+
+static void Test_dd7502()
+{
+ extern Class_Descriptor cd_dd7502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7502, buf);
+ dd7502 *dp, &lv = *(dp=new (buf) dd7502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd7502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,16), "dd7502");
+ check_base_class_offset(lv, (cc502*), ABISELECT(16,8), "dd7502");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7502.d");
+ test_class_info(&lv, &cd_dd7502);
+ dp->~dd7502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7502(Test_dd7502, "dd7502", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7502C1Ev();
+extern void _ZN6dd7502D1Ev();
+Name_Map name_map_dd7502[] = {
+ NSPAIR(_ZN6dd7502C1Ev),
+ NSPAIR(_ZN6dd7502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+static Base_Class bases_dd7502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, 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 _ZTI6dd7502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__6dd7502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_dd7502[] = {
+ {&(_ZTV6dd7502[4]), 4,17},
+ {&(_ZTV6dd7502[10]), 10,17},
+ {&(_ZTV6dd7502[15]), 15,17},
+ {&(_tg__ZTV5cc502__6dd7502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__6dd7502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static VTBL_ENTRY alt_thunk_names1030[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7502 = { "dd7502", // class name
+ bases_dd7502, 3,
+ &(vtc_dd7502[0]), // expected_vtbl_contents
+ &(vtt_dd7502[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7502),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1030,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07502 : dd7502 {
+ int e;
+ ~ee07502(); // tgen
+ ee07502(); // tgen
+};
+//SIG(1 ee07502) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07502 ::~ee07502(){ note_dtor("ee07502", this);} // tgen
+ee07502 ::ee07502(){ note_ctor("ee07502", this);} // tgen
+
+static void Test_ee07502()
+{
+ extern Class_Descriptor cd_ee07502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07502, buf);
+ ee07502 *dp, &lv = *(dp=new (buf) ee07502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee07502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee07502");
+ check_base_class_offset(lv, (cc502*)(dd7502*), ABISELECT(16,12), "ee07502");
+ check_base_class_offset(lv, (dd7502*), 0, "ee07502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07502.e");
+ test_class_info(&lv, &cd_ee07502);
+ dp->~ee07502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07502(Test_ee07502, "ee07502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07502C1Ev();
+extern void _ZN7ee07502D1Ev();
+Name_Map name_map_ee07502[] = {
+ NSPAIR(_ZN7ee07502C1Ev),
+ NSPAIR(_ZN7ee07502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd7502;
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static Base_Class bases_ee07502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7502__7ee07502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502__7ee07502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7502__7ee07502[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee07502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee07502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee07502[] = {
+ {&(_ZTV7ee07502[4]), 4,17},
+ {&(_tg__ZTV6dd7502__7ee07502[4]), 4,6},
+ {&(_tg__ZTV5cc502__6dd7502__7ee07502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7502__7ee07502[4]), 4,6},
+ {&(_ZTV7ee07502[10]), 10,17},
+ {&(_ZTV7ee07502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee07502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee07502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07502[];
+extern VTBL_ENTRY _ZTV7ee07502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07502[];
+static VTBL_ENTRY alt_thunk_names1031[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07502 = { "ee07502", // class name
+ bases_ee07502, 4,
+ &(vtc_ee07502[0]), // expected_vtbl_contents
+ &(vtt_ee07502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1031,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17502 : virtual dd7502 {
+ int e;
+ ~ee17502(); // tgen
+ ee17502(); // tgen
+};
+//SIG(1 ee17502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17502 ::~ee17502(){ note_dtor("ee17502", this);} // tgen
+ee17502 ::ee17502(){ note_ctor("ee17502", this);} // tgen
+
+static void Test_ee17502()
+{
+ extern Class_Descriptor cd_ee17502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17502, buf);
+ ee17502 *dp, &lv = *(dp=new (buf) ee17502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee17502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee17502");
+ check_base_class_offset(lv, (cc502*)(dd7502*), ABISELECT(32,16), "ee17502");
+ check_base_class_offset(lv, (dd7502*), ABISELECT(16,8), "ee17502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17502.e");
+ test_class_info(&lv, &cd_ee17502);
+ dp->~ee17502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17502(Test_ee17502, "ee17502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17502C1Ev();
+extern void _ZN7ee17502D1Ev();
+Name_Map name_map_ee17502[] = {
+ NSPAIR(_ZN7ee17502C1Ev),
+ NSPAIR(_ZN7ee17502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd7502;
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static Base_Class bases_ee17502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7502, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17502[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7502__7ee17502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502__7ee17502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7502__7ee17502[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee17502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee17502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee17502[] = {
+ {&(_ZTV7ee17502[5]), 5,24},
+ {&(_ZTV7ee17502[11]), 11,24},
+ {&(_ZTV7ee17502[17]), 17,24},
+ {&(_ZTV7ee17502[22]), 22,24},
+ {&(_tg__ZTV6dd7502__7ee17502[4]), 4,6},
+ {&(_tg__ZTV5cc502__6dd7502__7ee17502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7502__7ee17502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee17502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee17502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17502[];
+extern VTBL_ENTRY _ZTV7ee17502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17502[];
+static VTBL_ENTRY alt_thunk_names1032[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17502 = { "ee17502", // class name
+ bases_ee17502, 4,
+ &(vtc_ee17502[0]), // expected_vtbl_contents
+ &(vtt_ee17502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17502),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1032,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27502 : dd7502 {
+ int e;
+ virtual void foo(); // _ZN7ee275023fooEv
+ ~ee27502(); // tgen
+ ee27502(); // tgen
+};
+//SIG(1 ee27502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27502 ::foo(){vfunc_called(this, "_ZN7ee275023fooEv");}
+ee27502 ::~ee27502(){ note_dtor("ee27502", this);} // tgen
+ee27502 ::ee27502(){ note_ctor("ee27502", this);} // tgen
+
+static void Test_ee27502()
+{
+ extern Class_Descriptor cd_ee27502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27502, buf);
+ ee27502 *dp, &lv = *(dp=new (buf) ee27502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee27502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee27502");
+ check_base_class_offset(lv, (cc502*)(dd7502*), ABISELECT(16,12), "ee27502");
+ check_base_class_offset(lv, (dd7502*), 0, "ee27502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27502.e");
+ test_class_info(&lv, &cd_ee27502);
+ dp->~ee27502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27502(Test_ee27502, "ee27502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27502C1Ev();
+extern void _ZN7ee27502D1Ev();
+Name_Map name_map_ee27502[] = {
+ NSPAIR(_ZN7ee27502C1Ev),
+ NSPAIR(_ZN7ee27502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd7502;
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static Base_Class bases_ee27502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN7ee275023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275023fooEv,_ZTv0_n12_N7ee275023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee275023fooEv,_ZThn20_N7ee275023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN7ee275023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275023fooEv,_ZTv0_n12_N7ee275023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7502__7ee27502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502__7ee27502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7502__7ee27502[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee27502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee27502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee27502[] = {
+ {&(_ZTV7ee27502[4]), 4,17},
+ {&(_tg__ZTV6dd7502__7ee27502[4]), 4,6},
+ {&(_tg__ZTV5cc502__6dd7502__7ee27502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7502__7ee27502[4]), 4,6},
+ {&(_ZTV7ee27502[10]), 10,17},
+ {&(_ZTV7ee27502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee27502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee27502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27502[];
+extern VTBL_ENTRY _ZTV7ee27502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27502[];
+static VTBL_ENTRY alt_thunk_names1033[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275023fooEv,_ZTv0_n12_N7ee275023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee275023fooEv,_ZThn20_N7ee275023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27502 = { "ee27502", // class name
+ bases_ee27502, 4,
+ &(vtc_ee27502[0]), // expected_vtbl_contents
+ &(vtt_ee27502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1033,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37502 : virtual dd7502 {
+ int e;
+ virtual void foo(); // _ZN7ee375023fooEv
+ ~ee37502(); // tgen
+ ee37502(); // tgen
+};
+//SIG(1 ee37502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37502 ::foo(){vfunc_called(this, "_ZN7ee375023fooEv");}
+ee37502 ::~ee37502(){ note_dtor("ee37502", this);} // tgen
+ee37502 ::ee37502(){ note_ctor("ee37502", this);} // tgen
+
+static void Test_ee37502()
+{
+ extern Class_Descriptor cd_ee37502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37502, buf);
+ ee37502 *dp, &lv = *(dp=new (buf) ee37502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee37502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee37502");
+ check_base_class_offset(lv, (cc502*)(dd7502*), ABISELECT(32,16), "ee37502");
+ check_base_class_offset(lv, (dd7502*), ABISELECT(16,8), "ee37502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37502.e");
+ test_class_info(&lv, &cd_ee37502);
+ dp->~ee37502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37502(Test_ee37502, "ee37502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37502C1Ev();
+extern void _ZN7ee37502D1Ev();
+Name_Map name_map_ee37502[] = {
+ NSPAIR(_ZN7ee37502C1Ev),
+ NSPAIR(_ZN7ee37502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd7502;
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static Base_Class bases_ee37502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37502[];
+extern void _ZN7ee375023fooEv();
+extern void _ZN6dd75023barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee375023fooEv,_ZTv0_n24_N7ee375023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375023fooEv,_ZThn8_N7ee375023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375023fooEv,_ZTv0_n12_N7ee375023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee375023fooEv,_ZThn24_N7ee375023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37502[0]),
+ (VTBL_ENTRY)&_ZN7ee375023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee375023fooEv,_ZTv0_n24_N7ee375023fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375023fooEv,_ZTv0_n12_N7ee375023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7502__7ee37502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502__7ee37502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7502__7ee37502[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee37502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee37502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee37502[] = {
+ {&(_ZTV7ee37502[5]), 5,25},
+ {&(_ZTV7ee37502[12]), 12,25},
+ {&(_ZTV7ee37502[18]), 18,25},
+ {&(_ZTV7ee37502[23]), 23,25},
+ {&(_tg__ZTV6dd7502__7ee37502[4]), 4,6},
+ {&(_tg__ZTV5cc502__6dd7502__7ee37502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7502__7ee37502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee37502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee37502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37502[];
+extern VTBL_ENTRY _ZTV7ee37502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37502[];
+static VTBL_ENTRY alt_thunk_names1034[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375023fooEv,_ZTv0_n12_N7ee375023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee375023fooEv,_ZThn24_N7ee375023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee375023fooEv,_ZTv0_n24_N7ee375023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375023fooEv,_ZThn8_N7ee375023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37502 = { "ee37502", // class name
+ bases_ee37502, 4,
+ &(vtc_ee37502[0]), // expected_vtbl_contents
+ &(vtt_ee37502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37502),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1034,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47502 : dd7502 {
+ int e;
+ virtual void bar(); // _ZN7ee475023barEv
+ ~ee47502(); // tgen
+ ee47502(); // tgen
+};
+//SIG(1 ee47502) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47502 ::bar(){vfunc_called(this, "_ZN7ee475023barEv");}
+ee47502 ::~ee47502(){ note_dtor("ee47502", this);} // tgen
+ee47502 ::ee47502(){ note_ctor("ee47502", this);} // tgen
+
+static void Test_ee47502()
+{
+ extern Class_Descriptor cd_ee47502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47502, buf);
+ ee47502 *dp, &lv = *(dp=new (buf) ee47502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee47502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee47502");
+ check_base_class_offset(lv, (cc502*)(dd7502*), ABISELECT(16,12), "ee47502");
+ check_base_class_offset(lv, (dd7502*), 0, "ee47502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47502.e");
+ test_class_info(&lv, &cd_ee47502);
+ dp->~ee47502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47502(Test_ee47502, "ee47502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47502C1Ev();
+extern void _ZN7ee47502D1Ev();
+Name_Map name_map_ee47502[] = {
+ NSPAIR(_ZN7ee47502C1Ev),
+ NSPAIR(_ZN7ee47502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd7502;
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static Base_Class bases_ee47502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47502[];
+extern void _ZN7ee475023barEv();
+extern void _ZN6dd75023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee475023barEv,_ZTv0_n16_N7ee475023barEv)();
+extern void ABISELECT(_ZThn16_N7ee475023barEv,_ZThn12_N7ee475023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee475023barEv,_ZTv0_n16_N7ee475023barEv)();
+extern void ABISELECT(_ZThn32_N7ee475023barEv,_ZThn20_N7ee475023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47502[0]),
+ (VTBL_ENTRY)&_ZN7ee475023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475023barEv,_ZTv0_n16_N7ee475023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475023barEv,_ZTv0_n16_N7ee475023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7502__7ee47502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502__7ee47502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7502__7ee47502[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee47502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee47502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee47502[] = {
+ {&(_ZTV7ee47502[4]), 4,17},
+ {&(_tg__ZTV6dd7502__7ee47502[4]), 4,6},
+ {&(_tg__ZTV5cc502__6dd7502__7ee47502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7502__7ee47502[4]), 4,6},
+ {&(_ZTV7ee47502[10]), 10,17},
+ {&(_ZTV7ee47502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee47502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee47502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47502[];
+extern VTBL_ENTRY _ZTV7ee47502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47502[];
+static VTBL_ENTRY alt_thunk_names1035[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475023barEv,_ZTv0_n16_N7ee475023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee475023barEv,_ZThn20_N7ee475023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475023barEv,_ZThn12_N7ee475023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47502 = { "ee47502", // class name
+ bases_ee47502, 4,
+ &(vtc_ee47502[0]), // expected_vtbl_contents
+ &(vtt_ee47502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1035,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57502 : virtual dd7502 {
+ int e;
+ virtual void bar(); // _ZN7ee575023barEv
+ ~ee57502(); // tgen
+ ee57502(); // tgen
+};
+//SIG(1 ee57502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57502 ::bar(){vfunc_called(this, "_ZN7ee575023barEv");}
+ee57502 ::~ee57502(){ note_dtor("ee57502", this);} // tgen
+ee57502 ::ee57502(){ note_ctor("ee57502", this);} // tgen
+
+static void Test_ee57502()
+{
+ extern Class_Descriptor cd_ee57502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57502, buf);
+ ee57502 *dp, &lv = *(dp=new (buf) ee57502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee57502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee57502");
+ check_base_class_offset(lv, (cc502*)(dd7502*), ABISELECT(32,16), "ee57502");
+ check_base_class_offset(lv, (dd7502*), ABISELECT(16,8), "ee57502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57502.e");
+ test_class_info(&lv, &cd_ee57502);
+ dp->~ee57502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57502(Test_ee57502, "ee57502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57502C1Ev();
+extern void _ZN7ee57502D1Ev();
+Name_Map name_map_ee57502[] = {
+ NSPAIR(_ZN7ee57502C1Ev),
+ NSPAIR(_ZN7ee57502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd7502;
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static Base_Class bases_ee57502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7502, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57502[];
+extern void _ZN7ee575023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575023barEv,_ZTv0_n20_N7ee575023barEv)();
+extern void ABISELECT(_ZThn16_N7ee575023barEv,_ZThn8_N7ee575023barEv)() __attribute__((weak));
+extern void _ZN6dd75023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee575023barEv,_ZTv0_n16_N7ee575023barEv)();
+extern void ABISELECT(_ZThn32_N7ee575023barEv,_ZThn16_N7ee575023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee575023barEv,_ZTv0_n16_N7ee575023barEv)();
+extern void ABISELECT(_ZThn48_N7ee575023barEv,_ZThn24_N7ee575023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57502[0]),
+ (VTBL_ENTRY)&_ZN7ee575023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575023barEv,_ZTv0_n20_N7ee575023barEv),
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575023barEv,_ZTv0_n16_N7ee575023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575023barEv,_ZTv0_n16_N7ee575023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7502__7ee57502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502__7ee57502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7502__7ee57502[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee57502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee57502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee57502[] = {
+ {&(_ZTV7ee57502[5]), 5,25},
+ {&(_ZTV7ee57502[12]), 12,25},
+ {&(_ZTV7ee57502[18]), 18,25},
+ {&(_ZTV7ee57502[23]), 23,25},
+ {&(_tg__ZTV6dd7502__7ee57502[4]), 4,6},
+ {&(_tg__ZTV5cc502__6dd7502__7ee57502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7502__7ee57502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee57502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee57502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57502[];
+extern VTBL_ENTRY _ZTV7ee57502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57502[];
+static VTBL_ENTRY alt_thunk_names1036[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575023barEv,_ZTv0_n16_N7ee575023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee575023barEv,_ZThn24_N7ee575023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575023barEv,_ZThn16_N7ee575023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575023barEv,_ZTv0_n20_N7ee575023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575023barEv,_ZThn8_N7ee575023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57502 = { "ee57502", // class name
+ bases_ee57502, 4,
+ &(vtc_ee57502[0]), // expected_vtbl_contents
+ &(vtt_ee57502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57502),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1036,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67502 : dd7502 {
+ int e;
+ virtual void foo(); // _ZN7ee675023fooEv
+ virtual void bar(); // _ZN7ee675023barEv
+ ~ee67502(); // tgen
+ ee67502(); // tgen
+};
+//SIG(1 ee67502) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67502 ::foo(){vfunc_called(this, "_ZN7ee675023fooEv");}
+void ee67502 ::bar(){vfunc_called(this, "_ZN7ee675023barEv");}
+ee67502 ::~ee67502(){ note_dtor("ee67502", this);} // tgen
+ee67502 ::ee67502(){ note_ctor("ee67502", this);} // tgen
+
+static void Test_ee67502()
+{
+ extern Class_Descriptor cd_ee67502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67502, buf);
+ ee67502 *dp, &lv = *(dp=new (buf) ee67502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee67502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(32,20), "ee67502");
+ check_base_class_offset(lv, (cc502*)(dd7502*), ABISELECT(16,12), "ee67502");
+ check_base_class_offset(lv, (dd7502*), 0, "ee67502");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67502.e");
+ test_class_info(&lv, &cd_ee67502);
+ dp->~ee67502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67502(Test_ee67502, "ee67502", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67502C1Ev();
+extern void _ZN7ee67502D1Ev();
+Name_Map name_map_ee67502[] = {
+ NSPAIR(_ZN7ee67502C1Ev),
+ NSPAIR(_ZN7ee67502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd7502;
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static Base_Class bases_ee67502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7502, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67502[];
+extern void _ZN7ee675023barEv();
+extern void _ZN7ee675023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee675023barEv,_ZTv0_n16_N7ee675023barEv)();
+extern void ABISELECT(_ZThn16_N7ee675023barEv,_ZThn12_N7ee675023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675023fooEv,_ZTv0_n12_N7ee675023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee675023fooEv,_ZThn20_N7ee675023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675023barEv,_ZTv0_n16_N7ee675023barEv)();
+extern void ABISELECT(_ZThn32_N7ee675023barEv,_ZThn20_N7ee675023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67502[0]),
+ (VTBL_ENTRY)&_ZN7ee675023barEv,
+ (VTBL_ENTRY)&_ZN7ee675023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675023barEv,_ZTv0_n16_N7ee675023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675023fooEv,_ZTv0_n12_N7ee675023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675023barEv,_ZTv0_n16_N7ee675023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7502__7ee67502[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502__7ee67502[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7502__7ee67502[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee67502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee67502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee67502[] = {
+ {&(_ZTV7ee67502[4]), 4,17},
+ {&(_tg__ZTV6dd7502__7ee67502[4]), 4,6},
+ {&(_tg__ZTV5cc502__6dd7502__7ee67502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7502__7ee67502[4]), 4,6},
+ {&(_ZTV7ee67502[10]), 10,17},
+ {&(_ZTV7ee67502[15]), 15,17},
+ {&(_tg__ZTV5cc502__7ee67502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee67502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67502[];
+extern VTBL_ENTRY _ZTV7ee67502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67502[];
+static VTBL_ENTRY alt_thunk_names1037[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn20_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn20_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn12_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675023fooEv,_ZTv0_n12_N7ee675023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675023fooEv,_ZThn20_N7ee675023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675023barEv,_ZTv0_n16_N7ee675023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675023barEv,_ZThn20_N7ee675023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675023barEv,_ZThn12_N7ee675023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67502 = { "ee67502", // class name
+ bases_ee67502, 4,
+ &(vtc_ee67502[0]), // expected_vtbl_contents
+ &(vtt_ee67502[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67502),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67502),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67502),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1037,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77502 : virtual dd7502 {
+ int e;
+ virtual void foo(); // _ZN7ee775023fooEv
+ virtual void bar(); // _ZN7ee775023barEv
+ ~ee77502(); // tgen
+ ee77502(); // tgen
+};
+//SIG(1 ee77502) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77502 ::foo(){vfunc_called(this, "_ZN7ee775023fooEv");}
+void ee77502 ::bar(){vfunc_called(this, "_ZN7ee775023barEv");}
+ee77502 ::~ee77502(){ note_dtor("ee77502", this);} // tgen
+ee77502 ::ee77502(){ note_ctor("ee77502", this);} // tgen
+
+static void Test_ee77502()
+{
+ extern Class_Descriptor cd_ee77502;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77502, buf);
+ ee77502 *dp, &lv = *(dp=new (buf) ee77502());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77502)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77502)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee77502");
+ check_base_class_offset(lv, (bb02*)(cc502*), ABISELECT(48,24), "ee77502");
+ check_base_class_offset(lv, (cc502*)(dd7502*), ABISELECT(32,16), "ee77502");
+ check_base_class_offset(lv, (dd7502*), ABISELECT(16,8), "ee77502");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77502.e");
+ test_class_info(&lv, &cd_ee77502);
+ dp->~ee77502();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77502(Test_ee77502, "ee77502", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77502C1Ev();
+extern void _ZN7ee77502D1Ev();
+Name_Map name_map_ee77502[] = {
+ NSPAIR(_ZN7ee77502C1Ev),
+ NSPAIR(_ZN7ee77502D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc502;
+extern VTBL_ENTRY _ZTI5cc502[];
+extern VTBL_ENTRY _ZTV5cc502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc502[];
+extern Class_Descriptor cd_dd7502;
+extern VTBL_ENTRY _ZTI6dd7502[];
+extern VTBL_ENTRY _ZTV6dd7502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7502[];
+static Base_Class bases_ee77502[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc502, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7502, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77502[];
+extern void _ZN7ee775023fooEv();
+extern void _ZN7ee775023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee775023barEv,_ZTv0_n20_N7ee775023barEv)();
+extern void ABISELECT(_ZThn16_N7ee775023barEv,_ZThn8_N7ee775023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee775023fooEv,_ZTv0_n24_N7ee775023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775023fooEv,_ZThn8_N7ee775023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775023barEv,_ZTv0_n16_N7ee775023barEv)();
+extern void ABISELECT(_ZThn32_N7ee775023barEv,_ZThn16_N7ee775023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775023fooEv,_ZTv0_n12_N7ee775023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee775023fooEv,_ZThn24_N7ee775023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775023barEv,_ZTv0_n16_N7ee775023barEv)();
+extern void ABISELECT(_ZThn48_N7ee775023barEv,_ZThn24_N7ee775023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77502[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77502[0]),
+ (VTBL_ENTRY)&_ZN7ee775023fooEv,
+ (VTBL_ENTRY)&_ZN7ee775023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775023barEv,_ZTv0_n20_N7ee775023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775023fooEv,_ZTv0_n24_N7ee775023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775023barEv,_ZTv0_n16_N7ee775023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775023fooEv,_ZTv0_n12_N7ee775023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775023barEv,_ZTv0_n16_N7ee775023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77502[];
+extern void _ZN6dd75023barEv();
+extern void _ZN6dd75023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7502__7ee77502[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&_ZN6dd75023barEv,
+ (VTBL_ENTRY)&_ZN6dd75023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc502__6dd7502__7ee77502[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv)();
+extern void ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7502__7ee77502[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7502[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv),
+};
+extern void _ZN5cc5023barEv();
+static VTBL_ENTRY _tg__ZTV5cc502__7ee77502[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN5cc5023barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv)();
+extern void ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc502__7ee77502[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc502[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv),
+};
+static VTT_ENTRY vtt_ee77502[] = {
+ {&(_ZTV7ee77502[5]), 5,26},
+ {&(_ZTV7ee77502[13]), 13,26},
+ {&(_ZTV7ee77502[19]), 19,26},
+ {&(_ZTV7ee77502[24]), 24,26},
+ {&(_tg__ZTV6dd7502__7ee77502[4]), 4,6},
+ {&(_tg__ZTV5cc502__6dd7502__7ee77502[4]), 4,5},
+ {&(_tg__ZTV3aa24bb02__6dd7502__7ee77502[4]), 4,6},
+ {&(_tg__ZTV5cc502__7ee77502[3]), 3,4},
+ {&(_tg__ZTV3aa24bb02__5cc502__7ee77502[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77502[];
+extern VTBL_ENTRY _ZTV7ee77502[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77502[];
+static VTBL_ENTRY alt_thunk_names1038[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5023barEv,_ZTv0_n16_N5cc5023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5023barEv,_ZThn8_N5cc5023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75023fooEv,_ZTv0_n12_N6dd75023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023fooEv,_ZThn16_N6dd75023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75023barEv,_ZTv0_n16_N6dd75023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75023barEv,_ZThn16_N6dd75023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75023barEv,_ZThn8_N6dd75023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775023fooEv,_ZTv0_n12_N7ee775023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775023fooEv,_ZThn24_N7ee775023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775023barEv,_ZTv0_n16_N7ee775023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775023barEv,_ZThn24_N7ee775023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775023barEv,_ZThn16_N7ee775023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775023fooEv,_ZTv0_n24_N7ee775023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775023fooEv,_ZThn8_N7ee775023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775023barEv,_ZTv0_n20_N7ee775023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775023barEv,_ZThn8_N7ee775023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77502 = { "ee77502", // class name
+ bases_ee77502, 4,
+ &(vtc_ee77502[0]), // expected_vtbl_contents
+ &(vtt_ee77502[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77502),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77502),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77502),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1038,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc602 : bb02 {
+ int c;
+ virtual void foo(); // _ZN5cc6023fooEv
+ virtual void bar(); // _ZN5cc6023barEv
+ ~cc602(); // tgen
+ cc602(); // tgen
+};
+//SIG(-1 cc602) C1{ BC2{ BC3{ v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void cc602 ::foo(){vfunc_called(this, "_ZN5cc6023fooEv");}
+void cc602 ::bar(){vfunc_called(this, "_ZN5cc6023barEv");}
+cc602 ::~cc602(){ note_dtor("cc602", this);} // tgen
+cc602 ::cc602(){ note_ctor("cc602", this);} // tgen
+
+static void Test_cc602()
+{
+ extern Class_Descriptor cd_cc602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc602, buf);
+ cc602 *dp, &lv = *(dp=new (buf) cc602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc602)");
+ check_base_class_offset(lv, (aa2*)(bb02*), 0, "cc602");
+ check_base_class_offset(lv, (bb02*), 0, "cc602");
+ check_field_offset(lv, c, ABISELECT(16,12), "cc602.c");
+ test_class_info(&lv, &cd_cc602);
+ dp->~cc602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc602(Test_cc602, "cc602", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc602C1Ev();
+extern void _ZN5cc602D1Ev();
+Name_Map name_map_cc602[] = {
+ NSPAIR(_ZN5cc602C1Ev),
+ NSPAIR(_ZN5cc602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+static Base_Class bases_cc602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_cc602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+Class_Descriptor cd_cc602 = { "cc602", // class name
+ bases_cc602, 2,
+ &(vtc_cc602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 2, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0602 : cc602 {
+ int d;
+ ~dd0602(); // tgen
+ dd0602(); // tgen
+};
+//SIG(-1 dd0602) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd0602 ::~dd0602(){ note_dtor("dd0602", this);} // tgen
+dd0602 ::dd0602(){ note_ctor("dd0602", this);} // tgen
+
+static void Test_dd0602()
+{
+ extern Class_Descriptor cd_dd0602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0602, buf);
+ dd0602 *dp, &lv = *(dp=new (buf) dd0602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), 0, "dd0602");
+ check_base_class_offset(lv, (bb02*)(cc602*), 0, "dd0602");
+ check_base_class_offset(lv, (cc602*), 0, "dd0602");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd0602.d");
+ test_class_info(&lv, &cd_dd0602);
+ dp->~dd0602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0602(Test_dd0602, "dd0602", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0602C1Ev();
+extern void _ZN6dd0602D1Ev();
+Name_Map name_map_dd0602[] = {
+ NSPAIR(_ZN6dd0602C1Ev),
+ NSPAIR(_ZN6dd0602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+static Base_Class bases_dd0602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_dd0602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+Class_Descriptor cd_dd0602 = { "dd0602", // class name
+ bases_dd0602, 3,
+ &(vtc_dd0602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00602 : dd0602 {
+ int e;
+ ~ee00602(); // tgen
+ ee00602(); // tgen
+};
+//SIG(1 ee00602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00602 ::~ee00602(){ note_dtor("ee00602", this);} // tgen
+ee00602 ::ee00602(){ note_ctor("ee00602", this);} // tgen
+
+static void Test_ee00602()
+{
+ extern Class_Descriptor cd_ee00602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00602, buf);
+ ee00602 *dp, &lv = *(dp=new (buf) ee00602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd0602*), 0, "ee00602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd0602*), 0, "ee00602");
+ check_base_class_offset(lv, (cc602*)(dd0602*), 0, "ee00602");
+ check_base_class_offset(lv, (dd0602*), 0, "ee00602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee00602.e");
+ test_class_info(&lv, &cd_ee00602);
+ dp->~ee00602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00602(Test_ee00602, "ee00602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00602C1Ev();
+extern void _ZN7ee00602D1Ev();
+Name_Map name_map_ee00602[] = {
+ NSPAIR(_ZN7ee00602C1Ev),
+ NSPAIR(_ZN7ee00602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd0602;
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+static Base_Class bases_ee00602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee00602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee00602[];
+extern VTBL_ENTRY _ZTV7ee00602[];
+Class_Descriptor cd_ee00602 = { "ee00602", // class name
+ bases_ee00602, 4,
+ &(vtc_ee00602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10602 : virtual dd0602 {
+ int e;
+ ~ee10602(); // tgen
+ ee10602(); // tgen
+};
+//SIG(1 ee10602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10602 ::~ee10602(){ note_dtor("ee10602", this);} // tgen
+ee10602 ::ee10602(){ note_ctor("ee10602", this);} // tgen
+
+static void Test_ee10602()
+{
+ extern Class_Descriptor cd_ee10602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10602, buf);
+ ee10602 *dp, &lv = *(dp=new (buf) ee10602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd0602*), ABISELECT(16,8), "ee10602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd0602*), ABISELECT(16,8), "ee10602");
+ check_base_class_offset(lv, (cc602*)(dd0602*), ABISELECT(16,8), "ee10602");
+ check_base_class_offset(lv, (dd0602*), ABISELECT(16,8), "ee10602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10602.e");
+ test_class_info(&lv, &cd_ee10602);
+ dp->~ee10602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10602(Test_ee10602, "ee10602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10602C1Ev();
+extern void _ZN7ee10602D1Ev();
+Name_Map name_map_ee10602[] = {
+ NSPAIR(_ZN7ee10602C1Ev),
+ NSPAIR(_ZN7ee10602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd0602;
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+static Base_Class bases_ee10602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee10602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10602[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10602[];
+static VTT_ENTRY vtt_ee10602[] = {
+ {&(_ZTV7ee10602[3]), 3,9},
+ {&(_ZTV7ee10602[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee10602[];
+extern VTBL_ENTRY _ZTV7ee10602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10602[];
+Class_Descriptor cd_ee10602 = { "ee10602", // class name
+ bases_ee10602, 4,
+ &(vtc_ee10602[0]), // expected_vtbl_contents
+ &(vtt_ee10602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10602),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20602 : dd0602 {
+ int e;
+ virtual void foo(); // _ZN7ee206023fooEv
+ ~ee20602(); // tgen
+ ee20602(); // tgen
+};
+//SIG(1 ee20602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20602 ::foo(){vfunc_called(this, "_ZN7ee206023fooEv");}
+ee20602 ::~ee20602(){ note_dtor("ee20602", this);} // tgen
+ee20602 ::ee20602(){ note_ctor("ee20602", this);} // tgen
+
+static void Test_ee20602()
+{
+ extern Class_Descriptor cd_ee20602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20602, buf);
+ ee20602 *dp, &lv = *(dp=new (buf) ee20602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd0602*), 0, "ee20602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd0602*), 0, "ee20602");
+ check_base_class_offset(lv, (cc602*)(dd0602*), 0, "ee20602");
+ check_base_class_offset(lv, (dd0602*), 0, "ee20602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee20602.e");
+ test_class_info(&lv, &cd_ee20602);
+ dp->~ee20602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20602(Test_ee20602, "ee20602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20602C1Ev();
+extern void _ZN7ee20602D1Ev();
+Name_Map name_map_ee20602[] = {
+ NSPAIR(_ZN7ee20602C1Ev),
+ NSPAIR(_ZN7ee20602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd0602;
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+static Base_Class bases_ee20602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20602[];
+extern void _ZN7ee206023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee20602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20602[0]),
+ (VTBL_ENTRY)&_ZN7ee206023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee20602[];
+extern VTBL_ENTRY _ZTV7ee20602[];
+Class_Descriptor cd_ee20602 = { "ee20602", // class name
+ bases_ee20602, 4,
+ &(vtc_ee20602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30602 : virtual dd0602 {
+ int e;
+ virtual void foo(); // _ZN7ee306023fooEv
+ ~ee30602(); // tgen
+ ee30602(); // tgen
+};
+//SIG(1 ee30602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30602 ::foo(){vfunc_called(this, "_ZN7ee306023fooEv");}
+ee30602 ::~ee30602(){ note_dtor("ee30602", this);} // tgen
+ee30602 ::ee30602(){ note_ctor("ee30602", this);} // tgen
+
+static void Test_ee30602()
+{
+ extern Class_Descriptor cd_ee30602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30602, buf);
+ ee30602 *dp, &lv = *(dp=new (buf) ee30602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd0602*), ABISELECT(16,8), "ee30602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd0602*), ABISELECT(16,8), "ee30602");
+ check_base_class_offset(lv, (cc602*)(dd0602*), ABISELECT(16,8), "ee30602");
+ check_base_class_offset(lv, (dd0602*), ABISELECT(16,8), "ee30602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30602.e");
+ test_class_info(&lv, &cd_ee30602);
+ dp->~ee30602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30602(Test_ee30602, "ee30602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30602C1Ev();
+extern void _ZN7ee30602D1Ev();
+Name_Map name_map_ee30602[] = {
+ NSPAIR(_ZN7ee30602C1Ev),
+ NSPAIR(_ZN7ee30602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd0602;
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+static Base_Class bases_ee30602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30602[];
+extern void _ZN7ee306023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee306023fooEv,_ZTv0_n12_N7ee306023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306023fooEv,_ZThn8_N7ee306023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee30602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30602[0]),
+ (VTBL_ENTRY)&_ZN7ee306023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306023fooEv,_ZTv0_n12_N7ee306023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30602[];
+static VTT_ENTRY vtt_ee30602[] = {
+ {&(_ZTV7ee30602[3]), 3,10},
+ {&(_ZTV7ee30602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee30602[];
+extern VTBL_ENTRY _ZTV7ee30602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30602[];
+static VTBL_ENTRY alt_thunk_names1039[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306023fooEv,_ZTv0_n12_N7ee306023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306023fooEv,_ZThn8_N7ee306023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30602 = { "ee30602", // class name
+ bases_ee30602, 4,
+ &(vtc_ee30602[0]), // expected_vtbl_contents
+ &(vtt_ee30602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1039,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40602 : dd0602 {
+ int e;
+ virtual void bar(); // _ZN7ee406023barEv
+ ~ee40602(); // tgen
+ ee40602(); // tgen
+};
+//SIG(1 ee40602) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40602 ::bar(){vfunc_called(this, "_ZN7ee406023barEv");}
+ee40602 ::~ee40602(){ note_dtor("ee40602", this);} // tgen
+ee40602 ::ee40602(){ note_ctor("ee40602", this);} // tgen
+
+static void Test_ee40602()
+{
+ extern Class_Descriptor cd_ee40602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40602, buf);
+ ee40602 *dp, &lv = *(dp=new (buf) ee40602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd0602*), 0, "ee40602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd0602*), 0, "ee40602");
+ check_base_class_offset(lv, (cc602*)(dd0602*), 0, "ee40602");
+ check_base_class_offset(lv, (dd0602*), 0, "ee40602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee40602.e");
+ test_class_info(&lv, &cd_ee40602);
+ dp->~ee40602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40602(Test_ee40602, "ee40602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40602C1Ev();
+extern void _ZN7ee40602D1Ev();
+Name_Map name_map_ee40602[] = {
+ NSPAIR(_ZN7ee40602C1Ev),
+ NSPAIR(_ZN7ee40602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd0602;
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+static Base_Class bases_ee40602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN7ee406023barEv();
+static VTBL_ENTRY vtc_ee40602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN7ee406023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee40602[];
+extern VTBL_ENTRY _ZTV7ee40602[];
+Class_Descriptor cd_ee40602 = { "ee40602", // class name
+ bases_ee40602, 4,
+ &(vtc_ee40602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50602 : virtual dd0602 {
+ int e;
+ virtual void bar(); // _ZN7ee506023barEv
+ ~ee50602(); // tgen
+ ee50602(); // tgen
+};
+//SIG(1 ee50602) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50602 ::bar(){vfunc_called(this, "_ZN7ee506023barEv");}
+ee50602 ::~ee50602(){ note_dtor("ee50602", this);} // tgen
+ee50602 ::ee50602(){ note_ctor("ee50602", this);} // tgen
+
+static void Test_ee50602()
+{
+ extern Class_Descriptor cd_ee50602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50602, buf);
+ ee50602 *dp, &lv = *(dp=new (buf) ee50602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd0602*), ABISELECT(16,8), "ee50602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd0602*), ABISELECT(16,8), "ee50602");
+ check_base_class_offset(lv, (cc602*)(dd0602*), ABISELECT(16,8), "ee50602");
+ check_base_class_offset(lv, (dd0602*), ABISELECT(16,8), "ee50602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50602.e");
+ test_class_info(&lv, &cd_ee50602);
+ dp->~ee50602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50602(Test_ee50602, "ee50602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50602C1Ev();
+extern void _ZN7ee50602D1Ev();
+Name_Map name_map_ee50602[] = {
+ NSPAIR(_ZN7ee50602C1Ev),
+ NSPAIR(_ZN7ee50602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd0602;
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+static Base_Class bases_ee50602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50602[];
+extern void _ZN7ee506023barEv();
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506023barEv,_ZTv0_n16_N7ee506023barEv)();
+extern void ABISELECT(_ZThn16_N7ee506023barEv,_ZThn8_N7ee506023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50602[0]),
+ (VTBL_ENTRY)&_ZN7ee506023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506023barEv,_ZTv0_n16_N7ee506023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50602[];
+static VTT_ENTRY vtt_ee50602[] = {
+ {&(_ZTV7ee50602[3]), 3,10},
+ {&(_ZTV7ee50602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee50602[];
+extern VTBL_ENTRY _ZTV7ee50602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50602[];
+static VTBL_ENTRY alt_thunk_names1040[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506023barEv,_ZTv0_n16_N7ee506023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506023barEv,_ZThn8_N7ee506023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50602 = { "ee50602", // class name
+ bases_ee50602, 4,
+ &(vtc_ee50602[0]), // expected_vtbl_contents
+ &(vtt_ee50602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1040,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60602 : dd0602 {
+ int e;
+ virtual void foo(); // _ZN7ee606023fooEv
+ virtual void bar(); // _ZN7ee606023barEv
+ ~ee60602(); // tgen
+ ee60602(); // tgen
+};
+//SIG(1 ee60602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60602 ::foo(){vfunc_called(this, "_ZN7ee606023fooEv");}
+void ee60602 ::bar(){vfunc_called(this, "_ZN7ee606023barEv");}
+ee60602 ::~ee60602(){ note_dtor("ee60602", this);} // tgen
+ee60602 ::ee60602(){ note_ctor("ee60602", this);} // tgen
+
+static void Test_ee60602()
+{
+ extern Class_Descriptor cd_ee60602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60602, buf);
+ ee60602 *dp, &lv = *(dp=new (buf) ee60602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd0602*), 0, "ee60602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd0602*), 0, "ee60602");
+ check_base_class_offset(lv, (cc602*)(dd0602*), 0, "ee60602");
+ check_base_class_offset(lv, (dd0602*), 0, "ee60602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee60602.e");
+ test_class_info(&lv, &cd_ee60602);
+ dp->~ee60602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60602(Test_ee60602, "ee60602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60602C1Ev();
+extern void _ZN7ee60602D1Ev();
+Name_Map name_map_ee60602[] = {
+ NSPAIR(_ZN7ee60602C1Ev),
+ NSPAIR(_ZN7ee60602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd0602;
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+static Base_Class bases_ee60602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60602[];
+extern void _ZN7ee606023fooEv();
+extern void _ZN7ee606023barEv();
+static VTBL_ENTRY vtc_ee60602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60602[0]),
+ (VTBL_ENTRY)&_ZN7ee606023fooEv,
+ (VTBL_ENTRY)&_ZN7ee606023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee60602[];
+extern VTBL_ENTRY _ZTV7ee60602[];
+Class_Descriptor cd_ee60602 = { "ee60602", // class name
+ bases_ee60602, 4,
+ &(vtc_ee60602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70602 : virtual dd0602 {
+ int e;
+ virtual void foo(); // _ZN7ee706023fooEv
+ virtual void bar(); // _ZN7ee706023barEv
+ ~ee70602(); // tgen
+ ee70602(); // tgen
+};
+//SIG(1 ee70602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70602 ::foo(){vfunc_called(this, "_ZN7ee706023fooEv");}
+void ee70602 ::bar(){vfunc_called(this, "_ZN7ee706023barEv");}
+ee70602 ::~ee70602(){ note_dtor("ee70602", this);} // tgen
+ee70602 ::ee70602(){ note_ctor("ee70602", this);} // tgen
+
+static void Test_ee70602()
+{
+ extern Class_Descriptor cd_ee70602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70602, buf);
+ ee70602 *dp, &lv = *(dp=new (buf) ee70602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd0602*), ABISELECT(16,8), "ee70602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd0602*), ABISELECT(16,8), "ee70602");
+ check_base_class_offset(lv, (cc602*)(dd0602*), ABISELECT(16,8), "ee70602");
+ check_base_class_offset(lv, (dd0602*), ABISELECT(16,8), "ee70602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70602.e");
+ test_class_info(&lv, &cd_ee70602);
+ dp->~ee70602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70602(Test_ee70602, "ee70602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70602C1Ev();
+extern void _ZN7ee70602D1Ev();
+Name_Map name_map_ee70602[] = {
+ NSPAIR(_ZN7ee70602C1Ev),
+ NSPAIR(_ZN7ee70602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd0602;
+extern VTBL_ENTRY _ZTI6dd0602[];
+extern VTBL_ENTRY _ZTV6dd0602[];
+static Base_Class bases_ee70602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70602[];
+extern void _ZN7ee706023fooEv();
+extern void _ZN7ee706023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee706023fooEv,_ZTv0_n12_N7ee706023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706023fooEv,_ZThn8_N7ee706023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706023barEv,_ZTv0_n16_N7ee706023barEv)();
+extern void ABISELECT(_ZThn16_N7ee706023barEv,_ZThn8_N7ee706023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70602[0]),
+ (VTBL_ENTRY)&_ZN7ee706023fooEv,
+ (VTBL_ENTRY)&_ZN7ee706023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706023fooEv,_ZTv0_n12_N7ee706023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706023barEv,_ZTv0_n16_N7ee706023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70602[];
+static VTT_ENTRY vtt_ee70602[] = {
+ {&(_ZTV7ee70602[3]), 3,11},
+ {&(_ZTV7ee70602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee70602[];
+extern VTBL_ENTRY _ZTV7ee70602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70602[];
+static VTBL_ENTRY alt_thunk_names1041[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706023barEv,_ZTv0_n16_N7ee706023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706023barEv,_ZThn8_N7ee706023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706023fooEv,_ZTv0_n12_N7ee706023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706023fooEv,_ZThn8_N7ee706023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70602 = { "ee70602", // class name
+ bases_ee70602, 4,
+ &(vtc_ee70602[0]), // expected_vtbl_contents
+ &(vtt_ee70602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1041,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1602 : virtual cc602 {
+ int d;
+ ~dd1602(); // tgen
+ dd1602(); // tgen
+};
+//SIG(-1 dd1602) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd1602 ::~dd1602(){ note_dtor("dd1602", this);} // tgen
+dd1602 ::dd1602(){ note_ctor("dd1602", this);} // tgen
+
+static void Test_dd1602()
+{
+ extern Class_Descriptor cd_dd1602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1602, buf);
+ dd1602 *dp, &lv = *(dp=new (buf) dd1602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,8), "dd1602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,8), "dd1602");
+ check_base_class_offset(lv, (cc602*), ABISELECT(16,8), "dd1602");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1602.d");
+ test_class_info(&lv, &cd_dd1602);
+ dp->~dd1602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1602(Test_dd1602, "dd1602", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1602C1Ev();
+extern void _ZN6dd1602D1Ev();
+Name_Map name_map_dd1602[] = {
+ NSPAIR(_ZN6dd1602C1Ev),
+ NSPAIR(_ZN6dd1602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+static Base_Class bases_dd1602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_dd1602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1602[];
+static VTT_ENTRY vtt_dd1602[] = {
+ {&(_ZTV6dd1602[3]), 3,9},
+ {&(_ZTV6dd1602[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+Class_Descriptor cd_dd1602 = { "dd1602", // class name
+ bases_dd1602, 3,
+ &(vtc_dd1602[0]), // expected_vtbl_contents
+ &(vtt_dd1602[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1602),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1602),2, //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 ee01602 : dd1602 {
+ int e;
+ ~ee01602(); // tgen
+ ee01602(); // tgen
+};
+//SIG(1 ee01602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01602 ::~ee01602(){ note_dtor("ee01602", this);} // tgen
+ee01602 ::ee01602(){ note_ctor("ee01602", this);} // tgen
+
+static void Test_ee01602()
+{
+ extern Class_Descriptor cd_ee01602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01602, buf);
+ ee01602 *dp, &lv = *(dp=new (buf) ee01602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee01602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee01602");
+ check_base_class_offset(lv, (cc602*)(dd1602*), ABISELECT(16,12), "ee01602");
+ check_base_class_offset(lv, (dd1602*), 0, "ee01602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01602.e");
+ test_class_info(&lv, &cd_ee01602);
+ dp->~ee01602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01602(Test_ee01602, "ee01602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01602C1Ev();
+extern void _ZN7ee01602D1Ev();
+Name_Map name_map_ee01602[] = {
+ NSPAIR(_ZN7ee01602C1Ev),
+ NSPAIR(_ZN7ee01602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd1602;
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+static Base_Class bases_ee01602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee01602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01602[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01602[];
+static VTBL_ENTRY _tg__ZTV6dd1602__7ee01602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+};
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd1602__7ee01602[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee01602[] = {
+ {&(_ZTV7ee01602[3]), 3,9},
+ {&(_tg__ZTV6dd1602__7ee01602[3]), 3,3},
+ {&(_tg__ZTV5cc602__6dd1602__7ee01602[4]), 4,6},
+ {&(_ZTV7ee01602[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee01602[];
+extern VTBL_ENTRY _ZTV7ee01602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01602[];
+Class_Descriptor cd_ee01602 = { "ee01602", // class name
+ bases_ee01602, 4,
+ &(vtc_ee01602[0]), // expected_vtbl_contents
+ &(vtt_ee01602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01602),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11602 : virtual dd1602 {
+ int e;
+ ~ee11602(); // tgen
+ ee11602(); // tgen
+};
+//SIG(1 ee11602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11602 ::~ee11602(){ note_dtor("ee11602", this);} // tgen
+ee11602 ::ee11602(){ note_ctor("ee11602", this);} // tgen
+
+static void Test_ee11602()
+{
+ extern Class_Descriptor cd_ee11602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11602, buf);
+ ee11602 *dp, &lv = *(dp=new (buf) ee11602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee11602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee11602");
+ check_base_class_offset(lv, (cc602*)(dd1602*), ABISELECT(32,16), "ee11602");
+ check_base_class_offset(lv, (dd1602*), ABISELECT(16,8), "ee11602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11602.e");
+ test_class_info(&lv, &cd_ee11602);
+ dp->~ee11602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11602(Test_ee11602, "ee11602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11602C1Ev();
+extern void _ZN7ee11602D1Ev();
+Name_Map name_map_ee11602[] = {
+ NSPAIR(_ZN7ee11602C1Ev),
+ NSPAIR(_ZN7ee11602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd1602;
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+static Base_Class bases_ee11602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee11602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11602[0]),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11602[0]),
+ 0,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11602[];
+static VTBL_ENTRY _tg__ZTV6dd1602__7ee11602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+};
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd1602__7ee11602[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee11602[] = {
+ {&(_ZTV7ee11602[4]), 4,13},
+ {&(_ZTV7ee11602[7]), 7,13},
+ {&(_ZTV7ee11602[11]), 11,13},
+ {&(_tg__ZTV6dd1602__7ee11602[3]), 3,3},
+ {&(_tg__ZTV5cc602__6dd1602__7ee11602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11602[];
+extern VTBL_ENTRY _ZTV7ee11602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11602[];
+Class_Descriptor cd_ee11602 = { "ee11602", // class name
+ bases_ee11602, 4,
+ &(vtc_ee11602[0]), // expected_vtbl_contents
+ &(vtt_ee11602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11602),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21602 : dd1602 {
+ int e;
+ virtual void foo(); // _ZN7ee216023fooEv
+ ~ee21602(); // tgen
+ ee21602(); // tgen
+};
+//SIG(1 ee21602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21602 ::foo(){vfunc_called(this, "_ZN7ee216023fooEv");}
+ee21602 ::~ee21602(){ note_dtor("ee21602", this);} // tgen
+ee21602 ::ee21602(){ note_ctor("ee21602", this);} // tgen
+
+static void Test_ee21602()
+{
+ extern Class_Descriptor cd_ee21602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21602, buf);
+ ee21602 *dp, &lv = *(dp=new (buf) ee21602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee21602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee21602");
+ check_base_class_offset(lv, (cc602*)(dd1602*), ABISELECT(16,12), "ee21602");
+ check_base_class_offset(lv, (dd1602*), 0, "ee21602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21602.e");
+ test_class_info(&lv, &cd_ee21602);
+ dp->~ee21602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21602(Test_ee21602, "ee21602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21602C1Ev();
+extern void _ZN7ee21602D1Ev();
+Name_Map name_map_ee21602[] = {
+ NSPAIR(_ZN7ee21602C1Ev),
+ NSPAIR(_ZN7ee21602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd1602;
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+static Base_Class bases_ee21602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21602[];
+extern void _ZN7ee216023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee216023fooEv,_ZTv0_n12_N7ee216023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216023fooEv,_ZThn12_N7ee216023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee21602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21602[0]),
+ (VTBL_ENTRY)&_ZN7ee216023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216023fooEv,_ZTv0_n12_N7ee216023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21602[];
+static VTBL_ENTRY _tg__ZTV6dd1602__7ee21602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+};
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd1602__7ee21602[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee21602[] = {
+ {&(_ZTV7ee21602[3]), 3,10},
+ {&(_tg__ZTV6dd1602__7ee21602[3]), 3,3},
+ {&(_tg__ZTV5cc602__6dd1602__7ee21602[4]), 4,6},
+ {&(_ZTV7ee21602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee21602[];
+extern VTBL_ENTRY _ZTV7ee21602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21602[];
+static VTBL_ENTRY alt_thunk_names1042[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216023fooEv,_ZTv0_n12_N7ee216023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216023fooEv,_ZThn12_N7ee216023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21602 = { "ee21602", // class name
+ bases_ee21602, 4,
+ &(vtc_ee21602[0]), // expected_vtbl_contents
+ &(vtt_ee21602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1042,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31602 : virtual dd1602 {
+ int e;
+ virtual void foo(); // _ZN7ee316023fooEv
+ ~ee31602(); // tgen
+ ee31602(); // tgen
+};
+//SIG(1 ee31602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31602 ::foo(){vfunc_called(this, "_ZN7ee316023fooEv");}
+ee31602 ::~ee31602(){ note_dtor("ee31602", this);} // tgen
+ee31602 ::ee31602(){ note_ctor("ee31602", this);} // tgen
+
+static void Test_ee31602()
+{
+ extern Class_Descriptor cd_ee31602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31602, buf);
+ ee31602 *dp, &lv = *(dp=new (buf) ee31602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee31602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee31602");
+ check_base_class_offset(lv, (cc602*)(dd1602*), ABISELECT(32,16), "ee31602");
+ check_base_class_offset(lv, (dd1602*), ABISELECT(16,8), "ee31602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31602.e");
+ test_class_info(&lv, &cd_ee31602);
+ dp->~ee31602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31602(Test_ee31602, "ee31602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31602C1Ev();
+extern void _ZN7ee31602D1Ev();
+Name_Map name_map_ee31602[] = {
+ NSPAIR(_ZN7ee31602C1Ev),
+ NSPAIR(_ZN7ee31602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd1602;
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+static Base_Class bases_ee31602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31602[];
+extern void _ZN7ee316023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee316023fooEv,_ZTv0_n12_N7ee316023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316023fooEv,_ZThn16_N7ee316023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee31602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31602[0]),
+ (VTBL_ENTRY)&_ZN7ee316023fooEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31602[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316023fooEv,_ZTv0_n12_N7ee316023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31602[];
+static VTBL_ENTRY _tg__ZTV6dd1602__7ee31602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+};
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd1602__7ee31602[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee31602[] = {
+ {&(_ZTV7ee31602[4]), 4,14},
+ {&(_ZTV7ee31602[8]), 8,14},
+ {&(_ZTV7ee31602[12]), 12,14},
+ {&(_tg__ZTV6dd1602__7ee31602[3]), 3,3},
+ {&(_tg__ZTV5cc602__6dd1602__7ee31602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31602[];
+extern VTBL_ENTRY _ZTV7ee31602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31602[];
+static VTBL_ENTRY alt_thunk_names1043[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316023fooEv,_ZTv0_n12_N7ee316023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316023fooEv,_ZThn16_N7ee316023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31602 = { "ee31602", // class name
+ bases_ee31602, 4,
+ &(vtc_ee31602[0]), // expected_vtbl_contents
+ &(vtt_ee31602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31602),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1043,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41602 : dd1602 {
+ int e;
+ virtual void bar(); // _ZN7ee416023barEv
+ ~ee41602(); // tgen
+ ee41602(); // tgen
+};
+//SIG(1 ee41602) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41602 ::bar(){vfunc_called(this, "_ZN7ee416023barEv");}
+ee41602 ::~ee41602(){ note_dtor("ee41602", this);} // tgen
+ee41602 ::ee41602(){ note_ctor("ee41602", this);} // tgen
+
+static void Test_ee41602()
+{
+ extern Class_Descriptor cd_ee41602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41602, buf);
+ ee41602 *dp, &lv = *(dp=new (buf) ee41602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee41602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee41602");
+ check_base_class_offset(lv, (cc602*)(dd1602*), ABISELECT(16,12), "ee41602");
+ check_base_class_offset(lv, (dd1602*), 0, "ee41602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41602.e");
+ test_class_info(&lv, &cd_ee41602);
+ dp->~ee41602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41602(Test_ee41602, "ee41602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41602C1Ev();
+extern void _ZN7ee41602D1Ev();
+Name_Map name_map_ee41602[] = {
+ NSPAIR(_ZN7ee41602C1Ev),
+ NSPAIR(_ZN7ee41602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd1602;
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+static Base_Class bases_ee41602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41602[];
+extern void _ZN7ee416023barEv();
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416023barEv,_ZTv0_n16_N7ee416023barEv)();
+extern void ABISELECT(_ZThn16_N7ee416023barEv,_ZThn12_N7ee416023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41602[0]),
+ (VTBL_ENTRY)&_ZN7ee416023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416023barEv,_ZTv0_n16_N7ee416023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41602[];
+static VTBL_ENTRY _tg__ZTV6dd1602__7ee41602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+};
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd1602__7ee41602[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee41602[] = {
+ {&(_ZTV7ee41602[3]), 3,10},
+ {&(_tg__ZTV6dd1602__7ee41602[3]), 3,3},
+ {&(_tg__ZTV5cc602__6dd1602__7ee41602[4]), 4,6},
+ {&(_ZTV7ee41602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee41602[];
+extern VTBL_ENTRY _ZTV7ee41602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41602[];
+static VTBL_ENTRY alt_thunk_names1044[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416023barEv,_ZTv0_n16_N7ee416023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416023barEv,_ZThn12_N7ee416023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41602 = { "ee41602", // class name
+ bases_ee41602, 4,
+ &(vtc_ee41602[0]), // expected_vtbl_contents
+ &(vtt_ee41602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1044,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51602 : virtual dd1602 {
+ int e;
+ virtual void bar(); // _ZN7ee516023barEv
+ ~ee51602(); // tgen
+ ee51602(); // tgen
+};
+//SIG(1 ee51602) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51602 ::bar(){vfunc_called(this, "_ZN7ee516023barEv");}
+ee51602 ::~ee51602(){ note_dtor("ee51602", this);} // tgen
+ee51602 ::ee51602(){ note_ctor("ee51602", this);} // tgen
+
+static void Test_ee51602()
+{
+ extern Class_Descriptor cd_ee51602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51602, buf);
+ ee51602 *dp, &lv = *(dp=new (buf) ee51602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee51602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee51602");
+ check_base_class_offset(lv, (cc602*)(dd1602*), ABISELECT(32,16), "ee51602");
+ check_base_class_offset(lv, (dd1602*), ABISELECT(16,8), "ee51602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51602.e");
+ test_class_info(&lv, &cd_ee51602);
+ dp->~ee51602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51602(Test_ee51602, "ee51602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51602C1Ev();
+extern void _ZN7ee51602D1Ev();
+Name_Map name_map_ee51602[] = {
+ NSPAIR(_ZN7ee51602C1Ev),
+ NSPAIR(_ZN7ee51602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd1602;
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+static Base_Class bases_ee51602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51602[];
+extern void _ZN7ee516023barEv();
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516023barEv,_ZTv0_n16_N7ee516023barEv)();
+extern void ABISELECT(_ZThn32_N7ee516023barEv,_ZThn16_N7ee516023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51602[0]),
+ (VTBL_ENTRY)&_ZN7ee516023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51602[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516023barEv,_ZTv0_n16_N7ee516023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51602[];
+static VTBL_ENTRY _tg__ZTV6dd1602__7ee51602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+};
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd1602__7ee51602[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee51602[] = {
+ {&(_ZTV7ee51602[4]), 4,14},
+ {&(_ZTV7ee51602[8]), 8,14},
+ {&(_ZTV7ee51602[12]), 12,14},
+ {&(_tg__ZTV6dd1602__7ee51602[3]), 3,3},
+ {&(_tg__ZTV5cc602__6dd1602__7ee51602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51602[];
+extern VTBL_ENTRY _ZTV7ee51602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51602[];
+static VTBL_ENTRY alt_thunk_names1045[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516023barEv,_ZTv0_n16_N7ee516023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516023barEv,_ZThn16_N7ee516023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51602 = { "ee51602", // class name
+ bases_ee51602, 4,
+ &(vtc_ee51602[0]), // expected_vtbl_contents
+ &(vtt_ee51602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51602),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1045,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61602 : dd1602 {
+ int e;
+ virtual void foo(); // _ZN7ee616023fooEv
+ virtual void bar(); // _ZN7ee616023barEv
+ ~ee61602(); // tgen
+ ee61602(); // tgen
+};
+//SIG(1 ee61602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61602 ::foo(){vfunc_called(this, "_ZN7ee616023fooEv");}
+void ee61602 ::bar(){vfunc_called(this, "_ZN7ee616023barEv");}
+ee61602 ::~ee61602(){ note_dtor("ee61602", this);} // tgen
+ee61602 ::ee61602(){ note_ctor("ee61602", this);} // tgen
+
+static void Test_ee61602()
+{
+ extern Class_Descriptor cd_ee61602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61602, buf);
+ ee61602 *dp, &lv = *(dp=new (buf) ee61602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee61602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee61602");
+ check_base_class_offset(lv, (cc602*)(dd1602*), ABISELECT(16,12), "ee61602");
+ check_base_class_offset(lv, (dd1602*), 0, "ee61602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61602.e");
+ test_class_info(&lv, &cd_ee61602);
+ dp->~ee61602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61602(Test_ee61602, "ee61602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61602C1Ev();
+extern void _ZN7ee61602D1Ev();
+Name_Map name_map_ee61602[] = {
+ NSPAIR(_ZN7ee61602C1Ev),
+ NSPAIR(_ZN7ee61602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd1602;
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+static Base_Class bases_ee61602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61602[];
+extern void _ZN7ee616023fooEv();
+extern void _ZN7ee616023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee616023fooEv,_ZTv0_n12_N7ee616023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616023fooEv,_ZThn12_N7ee616023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616023barEv,_ZTv0_n16_N7ee616023barEv)();
+extern void ABISELECT(_ZThn16_N7ee616023barEv,_ZThn12_N7ee616023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61602[0]),
+ (VTBL_ENTRY)&_ZN7ee616023fooEv,
+ (VTBL_ENTRY)&_ZN7ee616023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616023fooEv,_ZTv0_n12_N7ee616023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616023barEv,_ZTv0_n16_N7ee616023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61602[];
+static VTBL_ENTRY _tg__ZTV6dd1602__7ee61602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+};
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd1602__7ee61602[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee61602[] = {
+ {&(_ZTV7ee61602[3]), 3,11},
+ {&(_tg__ZTV6dd1602__7ee61602[3]), 3,3},
+ {&(_tg__ZTV5cc602__6dd1602__7ee61602[4]), 4,6},
+ {&(_ZTV7ee61602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee61602[];
+extern VTBL_ENTRY _ZTV7ee61602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61602[];
+static VTBL_ENTRY alt_thunk_names1046[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616023barEv,_ZTv0_n16_N7ee616023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616023barEv,_ZThn12_N7ee616023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616023fooEv,_ZTv0_n12_N7ee616023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616023fooEv,_ZThn12_N7ee616023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61602 = { "ee61602", // class name
+ bases_ee61602, 4,
+ &(vtc_ee61602[0]), // expected_vtbl_contents
+ &(vtt_ee61602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1046,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71602 : virtual dd1602 {
+ int e;
+ virtual void foo(); // _ZN7ee716023fooEv
+ virtual void bar(); // _ZN7ee716023barEv
+ ~ee71602(); // tgen
+ ee71602(); // tgen
+};
+//SIG(1 ee71602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71602 ::foo(){vfunc_called(this, "_ZN7ee716023fooEv");}
+void ee71602 ::bar(){vfunc_called(this, "_ZN7ee716023barEv");}
+ee71602 ::~ee71602(){ note_dtor("ee71602", this);} // tgen
+ee71602 ::ee71602(){ note_ctor("ee71602", this);} // tgen
+
+static void Test_ee71602()
+{
+ extern Class_Descriptor cd_ee71602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71602, buf);
+ ee71602 *dp, &lv = *(dp=new (buf) ee71602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee71602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee71602");
+ check_base_class_offset(lv, (cc602*)(dd1602*), ABISELECT(32,16), "ee71602");
+ check_base_class_offset(lv, (dd1602*), ABISELECT(16,8), "ee71602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71602.e");
+ test_class_info(&lv, &cd_ee71602);
+ dp->~ee71602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71602(Test_ee71602, "ee71602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71602C1Ev();
+extern void _ZN7ee71602D1Ev();
+Name_Map name_map_ee71602[] = {
+ NSPAIR(_ZN7ee71602C1Ev),
+ NSPAIR(_ZN7ee71602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd1602;
+extern VTBL_ENTRY _ZTI6dd1602[];
+extern VTBL_ENTRY _ZTV6dd1602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1602[];
+static Base_Class bases_ee71602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1602, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71602[];
+extern void _ZN7ee716023fooEv();
+extern void _ZN7ee716023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee716023fooEv,_ZTv0_n12_N7ee716023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716023fooEv,_ZThn16_N7ee716023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716023barEv,_ZTv0_n16_N7ee716023barEv)();
+extern void ABISELECT(_ZThn32_N7ee716023barEv,_ZThn16_N7ee716023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71602[0]),
+ (VTBL_ENTRY)&_ZN7ee716023fooEv,
+ (VTBL_ENTRY)&_ZN7ee716023barEv,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71602[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716023fooEv,_ZTv0_n12_N7ee716023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716023barEv,_ZTv0_n16_N7ee716023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71602[];
+static VTBL_ENTRY _tg__ZTV6dd1602__7ee71602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+};
+extern void _ZN5cc6023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd1602__7ee71602[] = {
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee71602[] = {
+ {&(_ZTV7ee71602[4]), 4,15},
+ {&(_ZTV7ee71602[9]), 9,15},
+ {&(_ZTV7ee71602[13]), 13,15},
+ {&(_tg__ZTV6dd1602__7ee71602[3]), 3,3},
+ {&(_tg__ZTV5cc602__6dd1602__7ee71602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71602[];
+extern VTBL_ENTRY _ZTV7ee71602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71602[];
+static VTBL_ENTRY alt_thunk_names1047[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716023barEv,_ZTv0_n16_N7ee716023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716023barEv,_ZThn16_N7ee716023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716023fooEv,_ZTv0_n12_N7ee716023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716023fooEv,_ZThn16_N7ee716023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71602 = { "ee71602", // class name
+ bases_ee71602, 4,
+ &(vtc_ee71602[0]), // expected_vtbl_contents
+ &(vtt_ee71602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71602),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1047,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2602 : cc602 {
+ int d;
+ virtual void foo(); // _ZN6dd26023fooEv
+ ~dd2602(); // tgen
+ dd2602(); // tgen
+};
+//SIG(-1 dd2602) C1{ BC2{ BC3{ BC4{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2602 ::foo(){vfunc_called(this, "_ZN6dd26023fooEv");}
+dd2602 ::~dd2602(){ note_dtor("dd2602", this);} // tgen
+dd2602 ::dd2602(){ note_ctor("dd2602", this);} // tgen
+
+static void Test_dd2602()
+{
+ extern Class_Descriptor cd_dd2602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2602, buf);
+ dd2602 *dp, &lv = *(dp=new (buf) dd2602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), 0, "dd2602");
+ check_base_class_offset(lv, (bb02*)(cc602*), 0, "dd2602");
+ check_base_class_offset(lv, (cc602*), 0, "dd2602");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd2602.d");
+ test_class_info(&lv, &cd_dd2602);
+ dp->~dd2602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2602(Test_dd2602, "dd2602", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2602C1Ev();
+extern void _ZN6dd2602D1Ev();
+Name_Map name_map_dd2602[] = {
+ NSPAIR(_ZN6dd2602C1Ev),
+ NSPAIR(_ZN6dd2602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+static Base_Class bases_dd2602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern void _ZN6dd26023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_dd2602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2602[0]),
+ (VTBL_ENTRY)&_ZN6dd26023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+Class_Descriptor cd_dd2602 = { "dd2602", // class name
+ bases_dd2602, 3,
+ &(vtc_dd2602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02602 : dd2602 {
+ int e;
+ ~ee02602(); // tgen
+ ee02602(); // tgen
+};
+//SIG(1 ee02602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02602 ::~ee02602(){ note_dtor("ee02602", this);} // tgen
+ee02602 ::ee02602(){ note_ctor("ee02602", this);} // tgen
+
+static void Test_ee02602()
+{
+ extern Class_Descriptor cd_ee02602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02602, buf);
+ ee02602 *dp, &lv = *(dp=new (buf) ee02602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd2602*), 0, "ee02602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd2602*), 0, "ee02602");
+ check_base_class_offset(lv, (cc602*)(dd2602*), 0, "ee02602");
+ check_base_class_offset(lv, (dd2602*), 0, "ee02602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee02602.e");
+ test_class_info(&lv, &cd_ee02602);
+ dp->~ee02602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02602(Test_ee02602, "ee02602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02602C1Ev();
+extern void _ZN7ee02602D1Ev();
+Name_Map name_map_ee02602[] = {
+ NSPAIR(_ZN7ee02602C1Ev),
+ NSPAIR(_ZN7ee02602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd2602;
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+static Base_Class bases_ee02602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2602, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02602[];
+extern void _ZN6dd26023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee02602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02602[0]),
+ (VTBL_ENTRY)&_ZN6dd26023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee02602[];
+extern VTBL_ENTRY _ZTV7ee02602[];
+Class_Descriptor cd_ee02602 = { "ee02602", // class name
+ bases_ee02602, 4,
+ &(vtc_ee02602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12602 : virtual dd2602 {
+ int e;
+ ~ee12602(); // tgen
+ ee12602(); // tgen
+};
+//SIG(1 ee12602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12602 ::~ee12602(){ note_dtor("ee12602", this);} // tgen
+ee12602 ::ee12602(){ note_ctor("ee12602", this);} // tgen
+
+static void Test_ee12602()
+{
+ extern Class_Descriptor cd_ee12602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12602, buf);
+ ee12602 *dp, &lv = *(dp=new (buf) ee12602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd2602*), ABISELECT(16,8), "ee12602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd2602*), ABISELECT(16,8), "ee12602");
+ check_base_class_offset(lv, (cc602*)(dd2602*), ABISELECT(16,8), "ee12602");
+ check_base_class_offset(lv, (dd2602*), ABISELECT(16,8), "ee12602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12602.e");
+ test_class_info(&lv, &cd_ee12602);
+ dp->~ee12602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12602(Test_ee12602, "ee12602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12602C1Ev();
+extern void _ZN7ee12602D1Ev();
+Name_Map name_map_ee12602[] = {
+ NSPAIR(_ZN7ee12602C1Ev),
+ NSPAIR(_ZN7ee12602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd2602;
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+static Base_Class bases_ee12602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2602, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12602[];
+extern void _ZN6dd26023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee12602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12602[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12602[0]),
+ (VTBL_ENTRY)&_ZN6dd26023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12602[];
+static VTT_ENTRY vtt_ee12602[] = {
+ {&(_ZTV7ee12602[3]), 3,9},
+ {&(_ZTV7ee12602[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee12602[];
+extern VTBL_ENTRY _ZTV7ee12602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12602[];
+Class_Descriptor cd_ee12602 = { "ee12602", // class name
+ bases_ee12602, 4,
+ &(vtc_ee12602[0]), // expected_vtbl_contents
+ &(vtt_ee12602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12602),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22602 : dd2602 {
+ int e;
+ virtual void foo(); // _ZN7ee226023fooEv
+ ~ee22602(); // tgen
+ ee22602(); // tgen
+};
+//SIG(1 ee22602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22602 ::foo(){vfunc_called(this, "_ZN7ee226023fooEv");}
+ee22602 ::~ee22602(){ note_dtor("ee22602", this);} // tgen
+ee22602 ::ee22602(){ note_ctor("ee22602", this);} // tgen
+
+static void Test_ee22602()
+{
+ extern Class_Descriptor cd_ee22602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22602, buf);
+ ee22602 *dp, &lv = *(dp=new (buf) ee22602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd2602*), 0, "ee22602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd2602*), 0, "ee22602");
+ check_base_class_offset(lv, (cc602*)(dd2602*), 0, "ee22602");
+ check_base_class_offset(lv, (dd2602*), 0, "ee22602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee22602.e");
+ test_class_info(&lv, &cd_ee22602);
+ dp->~ee22602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22602(Test_ee22602, "ee22602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22602C1Ev();
+extern void _ZN7ee22602D1Ev();
+Name_Map name_map_ee22602[] = {
+ NSPAIR(_ZN7ee22602C1Ev),
+ NSPAIR(_ZN7ee22602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd2602;
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+static Base_Class bases_ee22602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22602[];
+extern void _ZN7ee226023fooEv();
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee22602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22602[0]),
+ (VTBL_ENTRY)&_ZN7ee226023fooEv,
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee22602[];
+extern VTBL_ENTRY _ZTV7ee22602[];
+Class_Descriptor cd_ee22602 = { "ee22602", // class name
+ bases_ee22602, 4,
+ &(vtc_ee22602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32602 : virtual dd2602 {
+ int e;
+ virtual void foo(); // _ZN7ee326023fooEv
+ ~ee32602(); // tgen
+ ee32602(); // tgen
+};
+//SIG(1 ee32602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32602 ::foo(){vfunc_called(this, "_ZN7ee326023fooEv");}
+ee32602 ::~ee32602(){ note_dtor("ee32602", this);} // tgen
+ee32602 ::ee32602(){ note_ctor("ee32602", this);} // tgen
+
+static void Test_ee32602()
+{
+ extern Class_Descriptor cd_ee32602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32602, buf);
+ ee32602 *dp, &lv = *(dp=new (buf) ee32602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd2602*), ABISELECT(16,8), "ee32602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd2602*), ABISELECT(16,8), "ee32602");
+ check_base_class_offset(lv, (cc602*)(dd2602*), ABISELECT(16,8), "ee32602");
+ check_base_class_offset(lv, (dd2602*), ABISELECT(16,8), "ee32602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32602.e");
+ test_class_info(&lv, &cd_ee32602);
+ dp->~ee32602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32602(Test_ee32602, "ee32602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32602C1Ev();
+extern void _ZN7ee32602D1Ev();
+Name_Map name_map_ee32602[] = {
+ NSPAIR(_ZN7ee32602C1Ev),
+ NSPAIR(_ZN7ee32602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd2602;
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+static Base_Class bases_ee32602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32602[];
+extern void _ZN7ee326023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee326023fooEv,_ZTv0_n12_N7ee326023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326023fooEv,_ZThn8_N7ee326023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee32602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32602[0]),
+ (VTBL_ENTRY)&_ZN7ee326023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326023fooEv,_ZTv0_n12_N7ee326023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32602[];
+static VTT_ENTRY vtt_ee32602[] = {
+ {&(_ZTV7ee32602[3]), 3,10},
+ {&(_ZTV7ee32602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee32602[];
+extern VTBL_ENTRY _ZTV7ee32602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32602[];
+static VTBL_ENTRY alt_thunk_names1048[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326023fooEv,_ZTv0_n12_N7ee326023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326023fooEv,_ZThn8_N7ee326023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32602 = { "ee32602", // class name
+ bases_ee32602, 4,
+ &(vtc_ee32602[0]), // expected_vtbl_contents
+ &(vtt_ee32602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1048,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42602 : dd2602 {
+ int e;
+ virtual void bar(); // _ZN7ee426023barEv
+ ~ee42602(); // tgen
+ ee42602(); // tgen
+};
+//SIG(1 ee42602) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42602 ::bar(){vfunc_called(this, "_ZN7ee426023barEv");}
+ee42602 ::~ee42602(){ note_dtor("ee42602", this);} // tgen
+ee42602 ::ee42602(){ note_ctor("ee42602", this);} // tgen
+
+static void Test_ee42602()
+{
+ extern Class_Descriptor cd_ee42602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42602, buf);
+ ee42602 *dp, &lv = *(dp=new (buf) ee42602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd2602*), 0, "ee42602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd2602*), 0, "ee42602");
+ check_base_class_offset(lv, (cc602*)(dd2602*), 0, "ee42602");
+ check_base_class_offset(lv, (dd2602*), 0, "ee42602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee42602.e");
+ test_class_info(&lv, &cd_ee42602);
+ dp->~ee42602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42602(Test_ee42602, "ee42602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42602C1Ev();
+extern void _ZN7ee42602D1Ev();
+Name_Map name_map_ee42602[] = {
+ NSPAIR(_ZN7ee42602C1Ev),
+ NSPAIR(_ZN7ee42602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd2602;
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+static Base_Class bases_ee42602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42602[];
+extern void _ZN6dd26023fooEv();
+extern void _ZN7ee426023barEv();
+static VTBL_ENTRY vtc_ee42602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42602[0]),
+ (VTBL_ENTRY)&_ZN6dd26023fooEv,
+ (VTBL_ENTRY)&_ZN7ee426023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee42602[];
+extern VTBL_ENTRY _ZTV7ee42602[];
+Class_Descriptor cd_ee42602 = { "ee42602", // class name
+ bases_ee42602, 4,
+ &(vtc_ee42602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52602 : virtual dd2602 {
+ int e;
+ virtual void bar(); // _ZN7ee526023barEv
+ ~ee52602(); // tgen
+ ee52602(); // tgen
+};
+//SIG(1 ee52602) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52602 ::bar(){vfunc_called(this, "_ZN7ee526023barEv");}
+ee52602 ::~ee52602(){ note_dtor("ee52602", this);} // tgen
+ee52602 ::ee52602(){ note_ctor("ee52602", this);} // tgen
+
+static void Test_ee52602()
+{
+ extern Class_Descriptor cd_ee52602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52602, buf);
+ ee52602 *dp, &lv = *(dp=new (buf) ee52602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd2602*), ABISELECT(16,8), "ee52602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd2602*), ABISELECT(16,8), "ee52602");
+ check_base_class_offset(lv, (cc602*)(dd2602*), ABISELECT(16,8), "ee52602");
+ check_base_class_offset(lv, (dd2602*), ABISELECT(16,8), "ee52602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52602.e");
+ test_class_info(&lv, &cd_ee52602);
+ dp->~ee52602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52602(Test_ee52602, "ee52602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52602C1Ev();
+extern void _ZN7ee52602D1Ev();
+Name_Map name_map_ee52602[] = {
+ NSPAIR(_ZN7ee52602C1Ev),
+ NSPAIR(_ZN7ee52602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd2602;
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+static Base_Class bases_ee52602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52602[];
+extern void _ZN7ee526023barEv();
+extern void _ZN6dd26023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526023barEv,_ZTv0_n16_N7ee526023barEv)();
+extern void ABISELECT(_ZThn16_N7ee526023barEv,_ZThn8_N7ee526023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52602[0]),
+ (VTBL_ENTRY)&_ZN7ee526023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52602[0]),
+ (VTBL_ENTRY)&_ZN6dd26023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526023barEv,_ZTv0_n16_N7ee526023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52602[];
+static VTT_ENTRY vtt_ee52602[] = {
+ {&(_ZTV7ee52602[3]), 3,10},
+ {&(_ZTV7ee52602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee52602[];
+extern VTBL_ENTRY _ZTV7ee52602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52602[];
+static VTBL_ENTRY alt_thunk_names1049[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526023barEv,_ZTv0_n16_N7ee526023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526023barEv,_ZThn8_N7ee526023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52602 = { "ee52602", // class name
+ bases_ee52602, 4,
+ &(vtc_ee52602[0]), // expected_vtbl_contents
+ &(vtt_ee52602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1049,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62602 : dd2602 {
+ int e;
+ virtual void foo(); // _ZN7ee626023fooEv
+ virtual void bar(); // _ZN7ee626023barEv
+ ~ee62602(); // tgen
+ ee62602(); // tgen
+};
+//SIG(1 ee62602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62602 ::foo(){vfunc_called(this, "_ZN7ee626023fooEv");}
+void ee62602 ::bar(){vfunc_called(this, "_ZN7ee626023barEv");}
+ee62602 ::~ee62602(){ note_dtor("ee62602", this);} // tgen
+ee62602 ::ee62602(){ note_ctor("ee62602", this);} // tgen
+
+static void Test_ee62602()
+{
+ extern Class_Descriptor cd_ee62602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62602, buf);
+ ee62602 *dp, &lv = *(dp=new (buf) ee62602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd2602*), 0, "ee62602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd2602*), 0, "ee62602");
+ check_base_class_offset(lv, (cc602*)(dd2602*), 0, "ee62602");
+ check_base_class_offset(lv, (dd2602*), 0, "ee62602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee62602.e");
+ test_class_info(&lv, &cd_ee62602);
+ dp->~ee62602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62602(Test_ee62602, "ee62602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62602C1Ev();
+extern void _ZN7ee62602D1Ev();
+Name_Map name_map_ee62602[] = {
+ NSPAIR(_ZN7ee62602C1Ev),
+ NSPAIR(_ZN7ee62602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd2602;
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+static Base_Class bases_ee62602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62602[];
+extern void _ZN7ee626023fooEv();
+extern void _ZN7ee626023barEv();
+static VTBL_ENTRY vtc_ee62602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62602[0]),
+ (VTBL_ENTRY)&_ZN7ee626023fooEv,
+ (VTBL_ENTRY)&_ZN7ee626023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee62602[];
+extern VTBL_ENTRY _ZTV7ee62602[];
+Class_Descriptor cd_ee62602 = { "ee62602", // class name
+ bases_ee62602, 4,
+ &(vtc_ee62602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72602 : virtual dd2602 {
+ int e;
+ virtual void foo(); // _ZN7ee726023fooEv
+ virtual void bar(); // _ZN7ee726023barEv
+ ~ee72602(); // tgen
+ ee72602(); // tgen
+};
+//SIG(1 ee72602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72602 ::foo(){vfunc_called(this, "_ZN7ee726023fooEv");}
+void ee72602 ::bar(){vfunc_called(this, "_ZN7ee726023barEv");}
+ee72602 ::~ee72602(){ note_dtor("ee72602", this);} // tgen
+ee72602 ::ee72602(){ note_ctor("ee72602", this);} // tgen
+
+static void Test_ee72602()
+{
+ extern Class_Descriptor cd_ee72602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72602, buf);
+ ee72602 *dp, &lv = *(dp=new (buf) ee72602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd2602*), ABISELECT(16,8), "ee72602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd2602*), ABISELECT(16,8), "ee72602");
+ check_base_class_offset(lv, (cc602*)(dd2602*), ABISELECT(16,8), "ee72602");
+ check_base_class_offset(lv, (dd2602*), ABISELECT(16,8), "ee72602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72602.e");
+ test_class_info(&lv, &cd_ee72602);
+ dp->~ee72602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72602(Test_ee72602, "ee72602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72602C1Ev();
+extern void _ZN7ee72602D1Ev();
+Name_Map name_map_ee72602[] = {
+ NSPAIR(_ZN7ee72602C1Ev),
+ NSPAIR(_ZN7ee72602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd2602;
+extern VTBL_ENTRY _ZTI6dd2602[];
+extern VTBL_ENTRY _ZTV6dd2602[];
+static Base_Class bases_ee72602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72602[];
+extern void _ZN7ee726023fooEv();
+extern void _ZN7ee726023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee726023fooEv,_ZTv0_n12_N7ee726023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726023fooEv,_ZThn8_N7ee726023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726023barEv,_ZTv0_n16_N7ee726023barEv)();
+extern void ABISELECT(_ZThn16_N7ee726023barEv,_ZThn8_N7ee726023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72602[0]),
+ (VTBL_ENTRY)&_ZN7ee726023fooEv,
+ (VTBL_ENTRY)&_ZN7ee726023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726023fooEv,_ZTv0_n12_N7ee726023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726023barEv,_ZTv0_n16_N7ee726023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72602[];
+static VTT_ENTRY vtt_ee72602[] = {
+ {&(_ZTV7ee72602[3]), 3,11},
+ {&(_ZTV7ee72602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee72602[];
+extern VTBL_ENTRY _ZTV7ee72602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72602[];
+static VTBL_ENTRY alt_thunk_names1050[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726023barEv,_ZTv0_n16_N7ee726023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726023barEv,_ZThn8_N7ee726023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726023fooEv,_ZTv0_n12_N7ee726023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726023fooEv,_ZThn8_N7ee726023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72602 = { "ee72602", // class name
+ bases_ee72602, 4,
+ &(vtc_ee72602[0]), // expected_vtbl_contents
+ &(vtt_ee72602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1050,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3602 : virtual cc602 {
+ int d;
+ virtual void foo(); // _ZN6dd36023fooEv
+ ~dd3602(); // tgen
+ dd3602(); // tgen
+};
+//SIG(-1 dd3602) C1{ VBC2{ BC3{ BC4{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3602 ::foo(){vfunc_called(this, "_ZN6dd36023fooEv");}
+dd3602 ::~dd3602(){ note_dtor("dd3602", this);} // tgen
+dd3602 ::dd3602(){ note_ctor("dd3602", this);} // tgen
+
+static void Test_dd3602()
+{
+ extern Class_Descriptor cd_dd3602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3602, buf);
+ dd3602 *dp, &lv = *(dp=new (buf) dd3602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,8), "dd3602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,8), "dd3602");
+ check_base_class_offset(lv, (cc602*), ABISELECT(16,8), "dd3602");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3602.d");
+ test_class_info(&lv, &cd_dd3602);
+ dp->~dd3602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3602(Test_dd3602, "dd3602", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3602C1Ev();
+extern void _ZN6dd3602D1Ev();
+Name_Map name_map_dd3602[] = {
+ NSPAIR(_ZN6dd3602C1Ev),
+ NSPAIR(_ZN6dd3602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+static Base_Class bases_dd3602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern void _ZN6dd36023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_dd3602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3602[];
+static VTT_ENTRY vtt_dd3602[] = {
+ {&(_ZTV6dd3602[3]), 3,10},
+ {&(_ZTV6dd3602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static VTBL_ENTRY alt_thunk_names1051[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3602 = { "dd3602", // class name
+ bases_dd3602, 3,
+ &(vtc_dd3602[0]), // expected_vtbl_contents
+ &(vtt_dd3602[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3602),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1051,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03602 : dd3602 {
+ int e;
+ ~ee03602(); // tgen
+ ee03602(); // tgen
+};
+//SIG(1 ee03602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03602 ::~ee03602(){ note_dtor("ee03602", this);} // tgen
+ee03602 ::ee03602(){ note_ctor("ee03602", this);} // tgen
+
+static void Test_ee03602()
+{
+ extern Class_Descriptor cd_ee03602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03602, buf);
+ ee03602 *dp, &lv = *(dp=new (buf) ee03602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee03602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee03602");
+ check_base_class_offset(lv, (cc602*)(dd3602*), ABISELECT(16,12), "ee03602");
+ check_base_class_offset(lv, (dd3602*), 0, "ee03602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03602.e");
+ test_class_info(&lv, &cd_ee03602);
+ dp->~ee03602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03602(Test_ee03602, "ee03602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03602C1Ev();
+extern void _ZN7ee03602D1Ev();
+Name_Map name_map_ee03602[] = {
+ NSPAIR(_ZN7ee03602C1Ev),
+ NSPAIR(_ZN7ee03602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd3602;
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static Base_Class bases_ee03602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03602[];
+extern void _ZN6dd36023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee03602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03602[];
+extern void _ZN6dd36023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3602__7ee03602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd3602__7ee03602[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee03602[] = {
+ {&(_ZTV7ee03602[3]), 3,10},
+ {&(_tg__ZTV6dd3602__7ee03602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd3602__7ee03602[4]), 4,6},
+ {&(_ZTV7ee03602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee03602[];
+extern VTBL_ENTRY _ZTV7ee03602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03602[];
+static VTBL_ENTRY alt_thunk_names1052[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03602 = { "ee03602", // class name
+ bases_ee03602, 4,
+ &(vtc_ee03602[0]), // expected_vtbl_contents
+ &(vtt_ee03602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1052,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13602 : virtual dd3602 {
+ int e;
+ ~ee13602(); // tgen
+ ee13602(); // tgen
+};
+//SIG(1 ee13602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13602 ::~ee13602(){ note_dtor("ee13602", this);} // tgen
+ee13602 ::ee13602(){ note_ctor("ee13602", this);} // tgen
+
+static void Test_ee13602()
+{
+ extern Class_Descriptor cd_ee13602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13602, buf);
+ ee13602 *dp, &lv = *(dp=new (buf) ee13602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee13602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee13602");
+ check_base_class_offset(lv, (cc602*)(dd3602*), ABISELECT(32,16), "ee13602");
+ check_base_class_offset(lv, (dd3602*), ABISELECT(16,8), "ee13602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13602.e");
+ test_class_info(&lv, &cd_ee13602);
+ dp->~ee13602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13602(Test_ee13602, "ee13602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13602C1Ev();
+extern void _ZN7ee13602D1Ev();
+Name_Map name_map_ee13602[] = {
+ NSPAIR(_ZN7ee13602C1Ev),
+ NSPAIR(_ZN7ee13602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd3602;
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static Base_Class bases_ee13602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13602[];
+extern void _ZN6dd36023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee13602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13602[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13602[];
+extern void _ZN6dd36023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3602__7ee13602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd3602__7ee13602[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee13602[] = {
+ {&(_ZTV7ee13602[4]), 4,15},
+ {&(_ZTV7ee13602[8]), 8,15},
+ {&(_ZTV7ee13602[13]), 13,15},
+ {&(_tg__ZTV6dd3602__7ee13602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd3602__7ee13602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13602[];
+extern VTBL_ENTRY _ZTV7ee13602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13602[];
+static VTBL_ENTRY alt_thunk_names1053[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13602 = { "ee13602", // class name
+ bases_ee13602, 4,
+ &(vtc_ee13602[0]), // expected_vtbl_contents
+ &(vtt_ee13602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13602),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1053,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23602 : dd3602 {
+ int e;
+ virtual void foo(); // _ZN7ee236023fooEv
+ ~ee23602(); // tgen
+ ee23602(); // tgen
+};
+//SIG(1 ee23602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23602 ::foo(){vfunc_called(this, "_ZN7ee236023fooEv");}
+ee23602 ::~ee23602(){ note_dtor("ee23602", this);} // tgen
+ee23602 ::ee23602(){ note_ctor("ee23602", this);} // tgen
+
+static void Test_ee23602()
+{
+ extern Class_Descriptor cd_ee23602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23602, buf);
+ ee23602 *dp, &lv = *(dp=new (buf) ee23602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee23602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee23602");
+ check_base_class_offset(lv, (cc602*)(dd3602*), ABISELECT(16,12), "ee23602");
+ check_base_class_offset(lv, (dd3602*), 0, "ee23602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23602.e");
+ test_class_info(&lv, &cd_ee23602);
+ dp->~ee23602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23602(Test_ee23602, "ee23602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23602C1Ev();
+extern void _ZN7ee23602D1Ev();
+Name_Map name_map_ee23602[] = {
+ NSPAIR(_ZN7ee23602C1Ev),
+ NSPAIR(_ZN7ee23602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd3602;
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static Base_Class bases_ee23602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23602[];
+extern void _ZN7ee236023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee236023fooEv,_ZTv0_n12_N7ee236023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236023fooEv,_ZThn12_N7ee236023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee23602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23602[0]),
+ (VTBL_ENTRY)&_ZN7ee236023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236023fooEv,_ZTv0_n12_N7ee236023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23602[];
+extern void _ZN6dd36023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3602__7ee23602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd3602__7ee23602[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee23602[] = {
+ {&(_ZTV7ee23602[3]), 3,10},
+ {&(_tg__ZTV6dd3602__7ee23602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd3602__7ee23602[4]), 4,6},
+ {&(_ZTV7ee23602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee23602[];
+extern VTBL_ENTRY _ZTV7ee23602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23602[];
+static VTBL_ENTRY alt_thunk_names1054[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236023fooEv,_ZTv0_n12_N7ee236023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236023fooEv,_ZThn12_N7ee236023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23602 = { "ee23602", // class name
+ bases_ee23602, 4,
+ &(vtc_ee23602[0]), // expected_vtbl_contents
+ &(vtt_ee23602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1054,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33602 : virtual dd3602 {
+ int e;
+ virtual void foo(); // _ZN7ee336023fooEv
+ ~ee33602(); // tgen
+ ee33602(); // tgen
+};
+//SIG(1 ee33602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33602 ::foo(){vfunc_called(this, "_ZN7ee336023fooEv");}
+ee33602 ::~ee33602(){ note_dtor("ee33602", this);} // tgen
+ee33602 ::ee33602(){ note_ctor("ee33602", this);} // tgen
+
+static void Test_ee33602()
+{
+ extern Class_Descriptor cd_ee33602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33602, buf);
+ ee33602 *dp, &lv = *(dp=new (buf) ee33602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee33602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee33602");
+ check_base_class_offset(lv, (cc602*)(dd3602*), ABISELECT(32,16), "ee33602");
+ check_base_class_offset(lv, (dd3602*), ABISELECT(16,8), "ee33602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33602.e");
+ test_class_info(&lv, &cd_ee33602);
+ dp->~ee33602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33602(Test_ee33602, "ee33602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33602C1Ev();
+extern void _ZN7ee33602D1Ev();
+Name_Map name_map_ee33602[] = {
+ NSPAIR(_ZN7ee33602C1Ev),
+ NSPAIR(_ZN7ee33602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd3602;
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static Base_Class bases_ee33602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33602[];
+extern void _ZN7ee336023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee336023fooEv,_ZTv0_n16_N7ee336023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336023fooEv,_ZThn8_N7ee336023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336023fooEv,_ZTv0_n12_N7ee336023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336023fooEv,_ZThn16_N7ee336023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY vtc_ee33602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33602[0]),
+ (VTBL_ENTRY)&_ZN7ee336023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee336023fooEv,_ZTv0_n16_N7ee336023fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336023fooEv,_ZTv0_n12_N7ee336023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33602[];
+extern void _ZN6dd36023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3602__7ee33602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd3602__7ee33602[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee33602[] = {
+ {&(_ZTV7ee33602[4]), 4,16},
+ {&(_ZTV7ee33602[9]), 9,16},
+ {&(_ZTV7ee33602[14]), 14,16},
+ {&(_tg__ZTV6dd3602__7ee33602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd3602__7ee33602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33602[];
+extern VTBL_ENTRY _ZTV7ee33602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33602[];
+static VTBL_ENTRY alt_thunk_names1055[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336023fooEv,_ZTv0_n12_N7ee336023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336023fooEv,_ZThn16_N7ee336023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee336023fooEv,_ZTv0_n16_N7ee336023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336023fooEv,_ZThn8_N7ee336023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33602 = { "ee33602", // class name
+ bases_ee33602, 4,
+ &(vtc_ee33602[0]), // expected_vtbl_contents
+ &(vtt_ee33602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33602),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1055,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43602 : dd3602 {
+ int e;
+ virtual void bar(); // _ZN7ee436023barEv
+ ~ee43602(); // tgen
+ ee43602(); // tgen
+};
+//SIG(1 ee43602) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43602 ::bar(){vfunc_called(this, "_ZN7ee436023barEv");}
+ee43602 ::~ee43602(){ note_dtor("ee43602", this);} // tgen
+ee43602 ::ee43602(){ note_ctor("ee43602", this);} // tgen
+
+static void Test_ee43602()
+{
+ extern Class_Descriptor cd_ee43602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43602, buf);
+ ee43602 *dp, &lv = *(dp=new (buf) ee43602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee43602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee43602");
+ check_base_class_offset(lv, (cc602*)(dd3602*), ABISELECT(16,12), "ee43602");
+ check_base_class_offset(lv, (dd3602*), 0, "ee43602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43602.e");
+ test_class_info(&lv, &cd_ee43602);
+ dp->~ee43602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43602(Test_ee43602, "ee43602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43602C1Ev();
+extern void _ZN7ee43602D1Ev();
+Name_Map name_map_ee43602[] = {
+ NSPAIR(_ZN7ee43602C1Ev),
+ NSPAIR(_ZN7ee43602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd3602;
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static Base_Class bases_ee43602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43602[];
+extern void _ZN6dd36023fooEv();
+extern void _ZN7ee436023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436023barEv,_ZTv0_n16_N7ee436023barEv)();
+extern void ABISELECT(_ZThn16_N7ee436023barEv,_ZThn12_N7ee436023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+ (VTBL_ENTRY)&_ZN7ee436023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436023barEv,_ZTv0_n16_N7ee436023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43602[];
+extern void _ZN6dd36023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3602__7ee43602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd3602__7ee43602[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee43602[] = {
+ {&(_ZTV7ee43602[3]), 3,11},
+ {&(_tg__ZTV6dd3602__7ee43602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd3602__7ee43602[4]), 4,6},
+ {&(_ZTV7ee43602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee43602[];
+extern VTBL_ENTRY _ZTV7ee43602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43602[];
+static VTBL_ENTRY alt_thunk_names1056[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436023barEv,_ZTv0_n16_N7ee436023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436023barEv,_ZThn12_N7ee436023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43602 = { "ee43602", // class name
+ bases_ee43602, 4,
+ &(vtc_ee43602[0]), // expected_vtbl_contents
+ &(vtt_ee43602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1056,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53602 : virtual dd3602 {
+ int e;
+ virtual void bar(); // _ZN7ee536023barEv
+ ~ee53602(); // tgen
+ ee53602(); // tgen
+};
+//SIG(1 ee53602) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53602 ::bar(){vfunc_called(this, "_ZN7ee536023barEv");}
+ee53602 ::~ee53602(){ note_dtor("ee53602", this);} // tgen
+ee53602 ::ee53602(){ note_ctor("ee53602", this);} // tgen
+
+static void Test_ee53602()
+{
+ extern Class_Descriptor cd_ee53602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53602, buf);
+ ee53602 *dp, &lv = *(dp=new (buf) ee53602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee53602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee53602");
+ check_base_class_offset(lv, (cc602*)(dd3602*), ABISELECT(32,16), "ee53602");
+ check_base_class_offset(lv, (dd3602*), ABISELECT(16,8), "ee53602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53602.e");
+ test_class_info(&lv, &cd_ee53602);
+ dp->~ee53602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53602(Test_ee53602, "ee53602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53602C1Ev();
+extern void _ZN7ee53602D1Ev();
+Name_Map name_map_ee53602[] = {
+ NSPAIR(_ZN7ee53602C1Ev),
+ NSPAIR(_ZN7ee53602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd3602;
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static Base_Class bases_ee53602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53602[];
+extern void _ZN7ee536023barEv();
+extern void _ZN6dd36023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536023barEv,_ZTv0_n16_N7ee536023barEv)();
+extern void ABISELECT(_ZThn32_N7ee536023barEv,_ZThn16_N7ee536023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53602[0]),
+ (VTBL_ENTRY)&_ZN7ee536023barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536023barEv,_ZTv0_n16_N7ee536023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53602[];
+extern void _ZN6dd36023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3602__7ee53602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd3602__7ee53602[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee53602[] = {
+ {&(_ZTV7ee53602[4]), 4,16},
+ {&(_ZTV7ee53602[9]), 9,16},
+ {&(_ZTV7ee53602[14]), 14,16},
+ {&(_tg__ZTV6dd3602__7ee53602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd3602__7ee53602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53602[];
+extern VTBL_ENTRY _ZTV7ee53602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53602[];
+static VTBL_ENTRY alt_thunk_names1057[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536023barEv,_ZTv0_n16_N7ee536023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536023barEv,_ZThn16_N7ee536023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53602 = { "ee53602", // class name
+ bases_ee53602, 4,
+ &(vtc_ee53602[0]), // expected_vtbl_contents
+ &(vtt_ee53602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53602),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1057,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63602 : dd3602 {
+ int e;
+ virtual void foo(); // _ZN7ee636023fooEv
+ virtual void bar(); // _ZN7ee636023barEv
+ ~ee63602(); // tgen
+ ee63602(); // tgen
+};
+//SIG(1 ee63602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63602 ::foo(){vfunc_called(this, "_ZN7ee636023fooEv");}
+void ee63602 ::bar(){vfunc_called(this, "_ZN7ee636023barEv");}
+ee63602 ::~ee63602(){ note_dtor("ee63602", this);} // tgen
+ee63602 ::ee63602(){ note_ctor("ee63602", this);} // tgen
+
+static void Test_ee63602()
+{
+ extern Class_Descriptor cd_ee63602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63602, buf);
+ ee63602 *dp, &lv = *(dp=new (buf) ee63602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee63602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee63602");
+ check_base_class_offset(lv, (cc602*)(dd3602*), ABISELECT(16,12), "ee63602");
+ check_base_class_offset(lv, (dd3602*), 0, "ee63602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63602.e");
+ test_class_info(&lv, &cd_ee63602);
+ dp->~ee63602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63602(Test_ee63602, "ee63602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63602C1Ev();
+extern void _ZN7ee63602D1Ev();
+Name_Map name_map_ee63602[] = {
+ NSPAIR(_ZN7ee63602C1Ev),
+ NSPAIR(_ZN7ee63602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd3602;
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static Base_Class bases_ee63602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63602[];
+extern void _ZN7ee636023fooEv();
+extern void _ZN7ee636023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee636023fooEv,_ZTv0_n12_N7ee636023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636023fooEv,_ZThn12_N7ee636023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636023barEv,_ZTv0_n16_N7ee636023barEv)();
+extern void ABISELECT(_ZThn16_N7ee636023barEv,_ZThn12_N7ee636023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63602[0]),
+ (VTBL_ENTRY)&_ZN7ee636023fooEv,
+ (VTBL_ENTRY)&_ZN7ee636023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636023fooEv,_ZTv0_n12_N7ee636023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636023barEv,_ZTv0_n16_N7ee636023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63602[];
+extern void _ZN6dd36023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3602__7ee63602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd3602__7ee63602[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee63602[] = {
+ {&(_ZTV7ee63602[3]), 3,11},
+ {&(_tg__ZTV6dd3602__7ee63602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd3602__7ee63602[4]), 4,6},
+ {&(_ZTV7ee63602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee63602[];
+extern VTBL_ENTRY _ZTV7ee63602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63602[];
+static VTBL_ENTRY alt_thunk_names1058[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn12_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636023barEv,_ZTv0_n16_N7ee636023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636023barEv,_ZThn12_N7ee636023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636023fooEv,_ZTv0_n12_N7ee636023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636023fooEv,_ZThn12_N7ee636023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63602 = { "ee63602", // class name
+ bases_ee63602, 4,
+ &(vtc_ee63602[0]), // expected_vtbl_contents
+ &(vtt_ee63602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1058,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73602 : virtual dd3602 {
+ int e;
+ virtual void foo(); // _ZN7ee736023fooEv
+ virtual void bar(); // _ZN7ee736023barEv
+ ~ee73602(); // tgen
+ ee73602(); // tgen
+};
+//SIG(1 ee73602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73602 ::foo(){vfunc_called(this, "_ZN7ee736023fooEv");}
+void ee73602 ::bar(){vfunc_called(this, "_ZN7ee736023barEv");}
+ee73602 ::~ee73602(){ note_dtor("ee73602", this);} // tgen
+ee73602 ::ee73602(){ note_ctor("ee73602", this);} // tgen
+
+static void Test_ee73602()
+{
+ extern Class_Descriptor cd_ee73602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73602, buf);
+ ee73602 *dp, &lv = *(dp=new (buf) ee73602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee73602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee73602");
+ check_base_class_offset(lv, (cc602*)(dd3602*), ABISELECT(32,16), "ee73602");
+ check_base_class_offset(lv, (dd3602*), ABISELECT(16,8), "ee73602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73602.e");
+ test_class_info(&lv, &cd_ee73602);
+ dp->~ee73602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73602(Test_ee73602, "ee73602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73602C1Ev();
+extern void _ZN7ee73602D1Ev();
+Name_Map name_map_ee73602[] = {
+ NSPAIR(_ZN7ee73602C1Ev),
+ NSPAIR(_ZN7ee73602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd3602;
+extern VTBL_ENTRY _ZTI6dd3602[];
+extern VTBL_ENTRY _ZTV6dd3602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3602[];
+static Base_Class bases_ee73602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3602, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73602[];
+extern void _ZN7ee736023fooEv();
+extern void _ZN7ee736023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee736023fooEv,_ZTv0_n16_N7ee736023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736023fooEv,_ZThn8_N7ee736023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736023fooEv,_ZTv0_n12_N7ee736023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736023fooEv,_ZThn16_N7ee736023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736023barEv,_ZTv0_n16_N7ee736023barEv)();
+extern void ABISELECT(_ZThn32_N7ee736023barEv,_ZThn16_N7ee736023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73602[0]),
+ (VTBL_ENTRY)&_ZN7ee736023fooEv,
+ (VTBL_ENTRY)&_ZN7ee736023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736023fooEv,_ZTv0_n16_N7ee736023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736023fooEv,_ZTv0_n12_N7ee736023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736023barEv,_ZTv0_n16_N7ee736023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73602[];
+extern void _ZN6dd36023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3602__7ee73602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&_ZN6dd36023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv)() __attribute__((weak));
+extern void _ZN5cc6023barEv();
+static VTBL_ENTRY _tg__ZTV5cc602__6dd3602__7ee73602[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv),
+ (VTBL_ENTRY)&_ZN5cc6023barEv,
+};
+static VTT_ENTRY vtt_ee73602[] = {
+ {&(_ZTV7ee73602[4]), 4,17},
+ {&(_ZTV7ee73602[10]), 10,17},
+ {&(_ZTV7ee73602[15]), 15,17},
+ {&(_tg__ZTV6dd3602__7ee73602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd3602__7ee73602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73602[];
+extern VTBL_ENTRY _ZTV7ee73602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73602[];
+static VTBL_ENTRY alt_thunk_names1059[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36023fooEv,_ZTv0_n12_N6dd36023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36023fooEv,_ZThn8_N6dd36023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736023barEv,_ZTv0_n16_N7ee736023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736023barEv,_ZThn16_N7ee736023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736023fooEv,_ZTv0_n12_N7ee736023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736023fooEv,_ZThn16_N7ee736023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736023fooEv,_ZTv0_n16_N7ee736023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736023fooEv,_ZThn8_N7ee736023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73602 = { "ee73602", // class name
+ bases_ee73602, 4,
+ &(vtc_ee73602[0]), // expected_vtbl_contents
+ &(vtt_ee73602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73602),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1059,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4602 : cc602 {
+ int d;
+ virtual void bar(); // _ZN6dd46023barEv
+ ~dd4602(); // tgen
+ dd4602(); // tgen
+};
+//SIG(-1 dd4602) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4602 ::bar(){vfunc_called(this, "_ZN6dd46023barEv");}
+dd4602 ::~dd4602(){ note_dtor("dd4602", this);} // tgen
+dd4602 ::dd4602(){ note_ctor("dd4602", this);} // tgen
+
+static void Test_dd4602()
+{
+ extern Class_Descriptor cd_dd4602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4602, buf);
+ dd4602 *dp, &lv = *(dp=new (buf) dd4602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), 0, "dd4602");
+ check_base_class_offset(lv, (bb02*)(cc602*), 0, "dd4602");
+ check_base_class_offset(lv, (cc602*), 0, "dd4602");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd4602.d");
+ test_class_info(&lv, &cd_dd4602);
+ dp->~dd4602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4602(Test_dd4602, "dd4602", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4602C1Ev();
+extern void _ZN6dd4602D1Ev();
+Name_Map name_map_dd4602[] = {
+ NSPAIR(_ZN6dd4602C1Ev),
+ NSPAIR(_ZN6dd4602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+static Base_Class bases_dd4602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN6dd46023barEv();
+static VTBL_ENTRY vtc_dd4602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN6dd46023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+Class_Descriptor cd_dd4602 = { "dd4602", // class name
+ bases_dd4602, 3,
+ &(vtc_dd4602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04602 : dd4602 {
+ int e;
+ ~ee04602(); // tgen
+ ee04602(); // tgen
+};
+//SIG(1 ee04602) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04602 ::~ee04602(){ note_dtor("ee04602", this);} // tgen
+ee04602 ::ee04602(){ note_ctor("ee04602", this);} // tgen
+
+static void Test_ee04602()
+{
+ extern Class_Descriptor cd_ee04602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04602, buf);
+ ee04602 *dp, &lv = *(dp=new (buf) ee04602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd4602*), 0, "ee04602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd4602*), 0, "ee04602");
+ check_base_class_offset(lv, (cc602*)(dd4602*), 0, "ee04602");
+ check_base_class_offset(lv, (dd4602*), 0, "ee04602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee04602.e");
+ test_class_info(&lv, &cd_ee04602);
+ dp->~ee04602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04602(Test_ee04602, "ee04602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04602C1Ev();
+extern void _ZN7ee04602D1Ev();
+Name_Map name_map_ee04602[] = {
+ NSPAIR(_ZN7ee04602C1Ev),
+ NSPAIR(_ZN7ee04602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd4602;
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+static Base_Class bases_ee04602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4602, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN6dd46023barEv();
+static VTBL_ENTRY vtc_ee04602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN6dd46023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee04602[];
+extern VTBL_ENTRY _ZTV7ee04602[];
+Class_Descriptor cd_ee04602 = { "ee04602", // class name
+ bases_ee04602, 4,
+ &(vtc_ee04602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14602 : virtual dd4602 {
+ int e;
+ ~ee14602(); // tgen
+ ee14602(); // tgen
+};
+//SIG(1 ee14602) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14602 ::~ee14602(){ note_dtor("ee14602", this);} // tgen
+ee14602 ::ee14602(){ note_ctor("ee14602", this);} // tgen
+
+static void Test_ee14602()
+{
+ extern Class_Descriptor cd_ee14602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14602, buf);
+ ee14602 *dp, &lv = *(dp=new (buf) ee14602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd4602*), ABISELECT(16,8), "ee14602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd4602*), ABISELECT(16,8), "ee14602");
+ check_base_class_offset(lv, (cc602*)(dd4602*), ABISELECT(16,8), "ee14602");
+ check_base_class_offset(lv, (dd4602*), ABISELECT(16,8), "ee14602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14602.e");
+ test_class_info(&lv, &cd_ee14602);
+ dp->~ee14602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14602(Test_ee14602, "ee14602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14602C1Ev();
+extern void _ZN7ee14602D1Ev();
+Name_Map name_map_ee14602[] = {
+ NSPAIR(_ZN7ee14602C1Ev),
+ NSPAIR(_ZN7ee14602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd4602;
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+static Base_Class bases_ee14602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4602, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN6dd46023barEv();
+static VTBL_ENTRY vtc_ee14602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14602[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN6dd46023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14602[];
+static VTT_ENTRY vtt_ee14602[] = {
+ {&(_ZTV7ee14602[3]), 3,9},
+ {&(_ZTV7ee14602[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee14602[];
+extern VTBL_ENTRY _ZTV7ee14602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14602[];
+Class_Descriptor cd_ee14602 = { "ee14602", // class name
+ bases_ee14602, 4,
+ &(vtc_ee14602[0]), // expected_vtbl_contents
+ &(vtt_ee14602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14602),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24602 : dd4602 {
+ int e;
+ virtual void foo(); // _ZN7ee246023fooEv
+ ~ee24602(); // tgen
+ ee24602(); // tgen
+};
+//SIG(1 ee24602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24602 ::foo(){vfunc_called(this, "_ZN7ee246023fooEv");}
+ee24602 ::~ee24602(){ note_dtor("ee24602", this);} // tgen
+ee24602 ::ee24602(){ note_ctor("ee24602", this);} // tgen
+
+static void Test_ee24602()
+{
+ extern Class_Descriptor cd_ee24602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24602, buf);
+ ee24602 *dp, &lv = *(dp=new (buf) ee24602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd4602*), 0, "ee24602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd4602*), 0, "ee24602");
+ check_base_class_offset(lv, (cc602*)(dd4602*), 0, "ee24602");
+ check_base_class_offset(lv, (dd4602*), 0, "ee24602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee24602.e");
+ test_class_info(&lv, &cd_ee24602);
+ dp->~ee24602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24602(Test_ee24602, "ee24602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24602C1Ev();
+extern void _ZN7ee24602D1Ev();
+Name_Map name_map_ee24602[] = {
+ NSPAIR(_ZN7ee24602C1Ev),
+ NSPAIR(_ZN7ee24602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd4602;
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+static Base_Class bases_ee24602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24602[];
+extern void _ZN7ee246023fooEv();
+extern void _ZN6dd46023barEv();
+static VTBL_ENTRY vtc_ee24602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24602[0]),
+ (VTBL_ENTRY)&_ZN7ee246023fooEv,
+ (VTBL_ENTRY)&_ZN6dd46023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee24602[];
+extern VTBL_ENTRY _ZTV7ee24602[];
+Class_Descriptor cd_ee24602 = { "ee24602", // class name
+ bases_ee24602, 4,
+ &(vtc_ee24602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34602 : virtual dd4602 {
+ int e;
+ virtual void foo(); // _ZN7ee346023fooEv
+ ~ee34602(); // tgen
+ ee34602(); // tgen
+};
+//SIG(1 ee34602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34602 ::foo(){vfunc_called(this, "_ZN7ee346023fooEv");}
+ee34602 ::~ee34602(){ note_dtor("ee34602", this);} // tgen
+ee34602 ::ee34602(){ note_ctor("ee34602", this);} // tgen
+
+static void Test_ee34602()
+{
+ extern Class_Descriptor cd_ee34602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34602, buf);
+ ee34602 *dp, &lv = *(dp=new (buf) ee34602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd4602*), ABISELECT(16,8), "ee34602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd4602*), ABISELECT(16,8), "ee34602");
+ check_base_class_offset(lv, (cc602*)(dd4602*), ABISELECT(16,8), "ee34602");
+ check_base_class_offset(lv, (dd4602*), ABISELECT(16,8), "ee34602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34602.e");
+ test_class_info(&lv, &cd_ee34602);
+ dp->~ee34602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34602(Test_ee34602, "ee34602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34602C1Ev();
+extern void _ZN7ee34602D1Ev();
+Name_Map name_map_ee34602[] = {
+ NSPAIR(_ZN7ee34602C1Ev),
+ NSPAIR(_ZN7ee34602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd4602;
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+static Base_Class bases_ee34602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34602[];
+extern void _ZN7ee346023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee346023fooEv,_ZTv0_n12_N7ee346023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346023fooEv,_ZThn8_N7ee346023fooEv)() __attribute__((weak));
+extern void _ZN6dd46023barEv();
+static VTBL_ENTRY vtc_ee34602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34602[0]),
+ (VTBL_ENTRY)&_ZN7ee346023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346023fooEv,_ZTv0_n12_N7ee346023fooEv),
+ (VTBL_ENTRY)&_ZN6dd46023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34602[];
+static VTT_ENTRY vtt_ee34602[] = {
+ {&(_ZTV7ee34602[3]), 3,10},
+ {&(_ZTV7ee34602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee34602[];
+extern VTBL_ENTRY _ZTV7ee34602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34602[];
+static VTBL_ENTRY alt_thunk_names1060[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346023fooEv,_ZTv0_n12_N7ee346023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346023fooEv,_ZThn8_N7ee346023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34602 = { "ee34602", // class name
+ bases_ee34602, 4,
+ &(vtc_ee34602[0]), // expected_vtbl_contents
+ &(vtt_ee34602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1060,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44602 : dd4602 {
+ int e;
+ virtual void bar(); // _ZN7ee446023barEv
+ ~ee44602(); // tgen
+ ee44602(); // tgen
+};
+//SIG(1 ee44602) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44602 ::bar(){vfunc_called(this, "_ZN7ee446023barEv");}
+ee44602 ::~ee44602(){ note_dtor("ee44602", this);} // tgen
+ee44602 ::ee44602(){ note_ctor("ee44602", this);} // tgen
+
+static void Test_ee44602()
+{
+ extern Class_Descriptor cd_ee44602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44602, buf);
+ ee44602 *dp, &lv = *(dp=new (buf) ee44602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd4602*), 0, "ee44602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd4602*), 0, "ee44602");
+ check_base_class_offset(lv, (cc602*)(dd4602*), 0, "ee44602");
+ check_base_class_offset(lv, (dd4602*), 0, "ee44602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee44602.e");
+ test_class_info(&lv, &cd_ee44602);
+ dp->~ee44602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44602(Test_ee44602, "ee44602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44602C1Ev();
+extern void _ZN7ee44602D1Ev();
+Name_Map name_map_ee44602[] = {
+ NSPAIR(_ZN7ee44602C1Ev),
+ NSPAIR(_ZN7ee44602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd4602;
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+static Base_Class bases_ee44602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44602[];
+extern void _ZN5cc6023fooEv();
+extern void _ZN7ee446023barEv();
+static VTBL_ENTRY vtc_ee44602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&_ZN7ee446023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee44602[];
+extern VTBL_ENTRY _ZTV7ee44602[];
+Class_Descriptor cd_ee44602 = { "ee44602", // class name
+ bases_ee44602, 4,
+ &(vtc_ee44602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54602 : virtual dd4602 {
+ int e;
+ virtual void bar(); // _ZN7ee546023barEv
+ ~ee54602(); // tgen
+ ee54602(); // tgen
+};
+//SIG(1 ee54602) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54602 ::bar(){vfunc_called(this, "_ZN7ee546023barEv");}
+ee54602 ::~ee54602(){ note_dtor("ee54602", this);} // tgen
+ee54602 ::ee54602(){ note_ctor("ee54602", this);} // tgen
+
+static void Test_ee54602()
+{
+ extern Class_Descriptor cd_ee54602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54602, buf);
+ ee54602 *dp, &lv = *(dp=new (buf) ee54602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd4602*), ABISELECT(16,8), "ee54602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd4602*), ABISELECT(16,8), "ee54602");
+ check_base_class_offset(lv, (cc602*)(dd4602*), ABISELECT(16,8), "ee54602");
+ check_base_class_offset(lv, (dd4602*), ABISELECT(16,8), "ee54602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54602.e");
+ test_class_info(&lv, &cd_ee54602);
+ dp->~ee54602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54602(Test_ee54602, "ee54602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54602C1Ev();
+extern void _ZN7ee54602D1Ev();
+Name_Map name_map_ee54602[] = {
+ NSPAIR(_ZN7ee54602C1Ev),
+ NSPAIR(_ZN7ee54602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd4602;
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+static Base_Class bases_ee54602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54602[];
+extern void _ZN7ee546023barEv();
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546023barEv,_ZTv0_n16_N7ee546023barEv)();
+extern void ABISELECT(_ZThn16_N7ee546023barEv,_ZThn8_N7ee546023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54602[0]),
+ (VTBL_ENTRY)&_ZN7ee546023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546023barEv,_ZTv0_n16_N7ee546023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54602[];
+static VTT_ENTRY vtt_ee54602[] = {
+ {&(_ZTV7ee54602[3]), 3,10},
+ {&(_ZTV7ee54602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee54602[];
+extern VTBL_ENTRY _ZTV7ee54602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54602[];
+static VTBL_ENTRY alt_thunk_names1061[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546023barEv,_ZTv0_n16_N7ee546023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546023barEv,_ZThn8_N7ee546023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54602 = { "ee54602", // class name
+ bases_ee54602, 4,
+ &(vtc_ee54602[0]), // expected_vtbl_contents
+ &(vtt_ee54602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1061,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64602 : dd4602 {
+ int e;
+ virtual void foo(); // _ZN7ee646023fooEv
+ virtual void bar(); // _ZN7ee646023barEv
+ ~ee64602(); // tgen
+ ee64602(); // tgen
+};
+//SIG(1 ee64602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64602 ::foo(){vfunc_called(this, "_ZN7ee646023fooEv");}
+void ee64602 ::bar(){vfunc_called(this, "_ZN7ee646023barEv");}
+ee64602 ::~ee64602(){ note_dtor("ee64602", this);} // tgen
+ee64602 ::ee64602(){ note_ctor("ee64602", this);} // tgen
+
+static void Test_ee64602()
+{
+ extern Class_Descriptor cd_ee64602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64602, buf);
+ ee64602 *dp, &lv = *(dp=new (buf) ee64602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd4602*), 0, "ee64602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd4602*), 0, "ee64602");
+ check_base_class_offset(lv, (cc602*)(dd4602*), 0, "ee64602");
+ check_base_class_offset(lv, (dd4602*), 0, "ee64602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee64602.e");
+ test_class_info(&lv, &cd_ee64602);
+ dp->~ee64602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64602(Test_ee64602, "ee64602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64602C1Ev();
+extern void _ZN7ee64602D1Ev();
+Name_Map name_map_ee64602[] = {
+ NSPAIR(_ZN7ee64602C1Ev),
+ NSPAIR(_ZN7ee64602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd4602;
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+static Base_Class bases_ee64602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64602[];
+extern void _ZN7ee646023fooEv();
+extern void _ZN7ee646023barEv();
+static VTBL_ENTRY vtc_ee64602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64602[0]),
+ (VTBL_ENTRY)&_ZN7ee646023fooEv,
+ (VTBL_ENTRY)&_ZN7ee646023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee64602[];
+extern VTBL_ENTRY _ZTV7ee64602[];
+Class_Descriptor cd_ee64602 = { "ee64602", // class name
+ bases_ee64602, 4,
+ &(vtc_ee64602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74602 : virtual dd4602 {
+ int e;
+ virtual void foo(); // _ZN7ee746023fooEv
+ virtual void bar(); // _ZN7ee746023barEv
+ ~ee74602(); // tgen
+ ee74602(); // tgen
+};
+//SIG(1 ee74602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74602 ::foo(){vfunc_called(this, "_ZN7ee746023fooEv");}
+void ee74602 ::bar(){vfunc_called(this, "_ZN7ee746023barEv");}
+ee74602 ::~ee74602(){ note_dtor("ee74602", this);} // tgen
+ee74602 ::ee74602(){ note_ctor("ee74602", this);} // tgen
+
+static void Test_ee74602()
+{
+ extern Class_Descriptor cd_ee74602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74602, buf);
+ ee74602 *dp, &lv = *(dp=new (buf) ee74602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd4602*), ABISELECT(16,8), "ee74602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd4602*), ABISELECT(16,8), "ee74602");
+ check_base_class_offset(lv, (cc602*)(dd4602*), ABISELECT(16,8), "ee74602");
+ check_base_class_offset(lv, (dd4602*), ABISELECT(16,8), "ee74602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74602.e");
+ test_class_info(&lv, &cd_ee74602);
+ dp->~ee74602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74602(Test_ee74602, "ee74602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74602C1Ev();
+extern void _ZN7ee74602D1Ev();
+Name_Map name_map_ee74602[] = {
+ NSPAIR(_ZN7ee74602C1Ev),
+ NSPAIR(_ZN7ee74602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd4602;
+extern VTBL_ENTRY _ZTI6dd4602[];
+extern VTBL_ENTRY _ZTV6dd4602[];
+static Base_Class bases_ee74602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74602[];
+extern void _ZN7ee746023fooEv();
+extern void _ZN7ee746023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee746023fooEv,_ZTv0_n12_N7ee746023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746023fooEv,_ZThn8_N7ee746023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746023barEv,_ZTv0_n16_N7ee746023barEv)();
+extern void ABISELECT(_ZThn16_N7ee746023barEv,_ZThn8_N7ee746023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74602[0]),
+ (VTBL_ENTRY)&_ZN7ee746023fooEv,
+ (VTBL_ENTRY)&_ZN7ee746023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746023fooEv,_ZTv0_n12_N7ee746023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746023barEv,_ZTv0_n16_N7ee746023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74602[];
+static VTT_ENTRY vtt_ee74602[] = {
+ {&(_ZTV7ee74602[3]), 3,11},
+ {&(_ZTV7ee74602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee74602[];
+extern VTBL_ENTRY _ZTV7ee74602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74602[];
+static VTBL_ENTRY alt_thunk_names1062[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746023barEv,_ZTv0_n16_N7ee746023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746023barEv,_ZThn8_N7ee746023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746023fooEv,_ZTv0_n12_N7ee746023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746023fooEv,_ZThn8_N7ee746023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74602 = { "ee74602", // class name
+ bases_ee74602, 4,
+ &(vtc_ee74602[0]), // expected_vtbl_contents
+ &(vtt_ee74602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1062,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5602 : virtual cc602 {
+ int d;
+ virtual void bar(); // _ZN6dd56023barEv
+ ~dd5602(); // tgen
+ dd5602(); // tgen
+};
+//SIG(-1 dd5602) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5602 ::bar(){vfunc_called(this, "_ZN6dd56023barEv");}
+dd5602 ::~dd5602(){ note_dtor("dd5602", this);} // tgen
+dd5602 ::dd5602(){ note_ctor("dd5602", this);} // tgen
+
+static void Test_dd5602()
+{
+ extern Class_Descriptor cd_dd5602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5602, buf);
+ dd5602 *dp, &lv = *(dp=new (buf) dd5602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,8), "dd5602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,8), "dd5602");
+ check_base_class_offset(lv, (cc602*), ABISELECT(16,8), "dd5602");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5602.d");
+ test_class_info(&lv, &cd_dd5602);
+ dp->~dd5602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5602(Test_dd5602, "dd5602", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5602C1Ev();
+extern void _ZN6dd5602D1Ev();
+Name_Map name_map_dd5602[] = {
+ NSPAIR(_ZN6dd5602C1Ev),
+ NSPAIR(_ZN6dd5602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+static Base_Class bases_dd5602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern void _ZN6dd56023barEv();
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5602[];
+static VTT_ENTRY vtt_dd5602[] = {
+ {&(_ZTV6dd5602[3]), 3,10},
+ {&(_ZTV6dd5602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static VTBL_ENTRY alt_thunk_names1063[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5602 = { "dd5602", // class name
+ bases_dd5602, 3,
+ &(vtc_dd5602[0]), // expected_vtbl_contents
+ &(vtt_dd5602[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5602),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1063,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05602 : dd5602 {
+ int e;
+ ~ee05602(); // tgen
+ ee05602(); // tgen
+};
+//SIG(1 ee05602) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05602 ::~ee05602(){ note_dtor("ee05602", this);} // tgen
+ee05602 ::ee05602(){ note_ctor("ee05602", this);} // tgen
+
+static void Test_ee05602()
+{
+ extern Class_Descriptor cd_ee05602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05602, buf);
+ ee05602 *dp, &lv = *(dp=new (buf) ee05602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee05602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee05602");
+ check_base_class_offset(lv, (cc602*)(dd5602*), ABISELECT(16,12), "ee05602");
+ check_base_class_offset(lv, (dd5602*), 0, "ee05602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05602.e");
+ test_class_info(&lv, &cd_ee05602);
+ dp->~ee05602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05602(Test_ee05602, "ee05602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05602C1Ev();
+extern void _ZN7ee05602D1Ev();
+Name_Map name_map_ee05602[] = {
+ NSPAIR(_ZN7ee05602C1Ev),
+ NSPAIR(_ZN7ee05602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd5602;
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static Base_Class bases_ee05602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05602[];
+extern void _ZN6dd56023barEv();
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05602[];
+extern void _ZN6dd56023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5602__7ee05602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+};
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd5602__7ee05602[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+static VTT_ENTRY vtt_ee05602[] = {
+ {&(_ZTV7ee05602[3]), 3,10},
+ {&(_tg__ZTV6dd5602__7ee05602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd5602__7ee05602[4]), 4,6},
+ {&(_ZTV7ee05602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee05602[];
+extern VTBL_ENTRY _ZTV7ee05602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05602[];
+static VTBL_ENTRY alt_thunk_names1064[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05602 = { "ee05602", // class name
+ bases_ee05602, 4,
+ &(vtc_ee05602[0]), // expected_vtbl_contents
+ &(vtt_ee05602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1064,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15602 : virtual dd5602 {
+ int e;
+ ~ee15602(); // tgen
+ ee15602(); // tgen
+};
+//SIG(1 ee15602) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15602 ::~ee15602(){ note_dtor("ee15602", this);} // tgen
+ee15602 ::ee15602(){ note_ctor("ee15602", this);} // tgen
+
+static void Test_ee15602()
+{
+ extern Class_Descriptor cd_ee15602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15602, buf);
+ ee15602 *dp, &lv = *(dp=new (buf) ee15602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee15602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee15602");
+ check_base_class_offset(lv, (cc602*)(dd5602*), ABISELECT(32,16), "ee15602");
+ check_base_class_offset(lv, (dd5602*), ABISELECT(16,8), "ee15602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15602.e");
+ test_class_info(&lv, &cd_ee15602);
+ dp->~ee15602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15602(Test_ee15602, "ee15602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15602C1Ev();
+extern void _ZN7ee15602D1Ev();
+Name_Map name_map_ee15602[] = {
+ NSPAIR(_ZN7ee15602C1Ev),
+ NSPAIR(_ZN7ee15602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd5602;
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static Base_Class bases_ee15602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15602[];
+extern void _ZN6dd56023barEv();
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15602[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15602[];
+extern void _ZN6dd56023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5602__7ee15602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+};
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd5602__7ee15602[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+static VTT_ENTRY vtt_ee15602[] = {
+ {&(_ZTV7ee15602[4]), 4,15},
+ {&(_ZTV7ee15602[8]), 8,15},
+ {&(_ZTV7ee15602[13]), 13,15},
+ {&(_tg__ZTV6dd5602__7ee15602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd5602__7ee15602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15602[];
+extern VTBL_ENTRY _ZTV7ee15602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15602[];
+static VTBL_ENTRY alt_thunk_names1065[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15602 = { "ee15602", // class name
+ bases_ee15602, 4,
+ &(vtc_ee15602[0]), // expected_vtbl_contents
+ &(vtt_ee15602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15602),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1065,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25602 : dd5602 {
+ int e;
+ virtual void foo(); // _ZN7ee256023fooEv
+ ~ee25602(); // tgen
+ ee25602(); // tgen
+};
+//SIG(1 ee25602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25602 ::foo(){vfunc_called(this, "_ZN7ee256023fooEv");}
+ee25602 ::~ee25602(){ note_dtor("ee25602", this);} // tgen
+ee25602 ::ee25602(){ note_ctor("ee25602", this);} // tgen
+
+static void Test_ee25602()
+{
+ extern Class_Descriptor cd_ee25602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25602, buf);
+ ee25602 *dp, &lv = *(dp=new (buf) ee25602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee25602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee25602");
+ check_base_class_offset(lv, (cc602*)(dd5602*), ABISELECT(16,12), "ee25602");
+ check_base_class_offset(lv, (dd5602*), 0, "ee25602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25602.e");
+ test_class_info(&lv, &cd_ee25602);
+ dp->~ee25602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25602(Test_ee25602, "ee25602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25602C1Ev();
+extern void _ZN7ee25602D1Ev();
+Name_Map name_map_ee25602[] = {
+ NSPAIR(_ZN7ee25602C1Ev),
+ NSPAIR(_ZN7ee25602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd5602;
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static Base_Class bases_ee25602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25602[];
+extern void _ZN6dd56023barEv();
+extern void _ZN7ee256023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee256023fooEv,_ZTv0_n12_N7ee256023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256023fooEv,_ZThn12_N7ee256023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+ (VTBL_ENTRY)&_ZN7ee256023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256023fooEv,_ZTv0_n12_N7ee256023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25602[];
+extern void _ZN6dd56023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5602__7ee25602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+};
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd5602__7ee25602[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+static VTT_ENTRY vtt_ee25602[] = {
+ {&(_ZTV7ee25602[3]), 3,11},
+ {&(_tg__ZTV6dd5602__7ee25602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd5602__7ee25602[4]), 4,6},
+ {&(_ZTV7ee25602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee25602[];
+extern VTBL_ENTRY _ZTV7ee25602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25602[];
+static VTBL_ENTRY alt_thunk_names1066[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256023fooEv,_ZTv0_n12_N7ee256023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256023fooEv,_ZThn12_N7ee256023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25602 = { "ee25602", // class name
+ bases_ee25602, 4,
+ &(vtc_ee25602[0]), // expected_vtbl_contents
+ &(vtt_ee25602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1066,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35602 : virtual dd5602 {
+ int e;
+ virtual void foo(); // _ZN7ee356023fooEv
+ ~ee35602(); // tgen
+ ee35602(); // tgen
+};
+//SIG(1 ee35602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35602 ::foo(){vfunc_called(this, "_ZN7ee356023fooEv");}
+ee35602 ::~ee35602(){ note_dtor("ee35602", this);} // tgen
+ee35602 ::ee35602(){ note_ctor("ee35602", this);} // tgen
+
+static void Test_ee35602()
+{
+ extern Class_Descriptor cd_ee35602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35602, buf);
+ ee35602 *dp, &lv = *(dp=new (buf) ee35602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee35602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee35602");
+ check_base_class_offset(lv, (cc602*)(dd5602*), ABISELECT(32,16), "ee35602");
+ check_base_class_offset(lv, (dd5602*), ABISELECT(16,8), "ee35602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35602.e");
+ test_class_info(&lv, &cd_ee35602);
+ dp->~ee35602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35602(Test_ee35602, "ee35602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35602C1Ev();
+extern void _ZN7ee35602D1Ev();
+Name_Map name_map_ee35602[] = {
+ NSPAIR(_ZN7ee35602C1Ev),
+ NSPAIR(_ZN7ee35602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd5602;
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static Base_Class bases_ee35602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35602[];
+extern void _ZN7ee356023fooEv();
+extern void _ZN6dd56023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee356023fooEv,_ZTv0_n12_N7ee356023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356023fooEv,_ZThn16_N7ee356023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35602[0]),
+ (VTBL_ENTRY)&_ZN7ee356023fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356023fooEv,_ZTv0_n12_N7ee356023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35602[];
+extern void _ZN6dd56023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5602__7ee35602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+};
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd5602__7ee35602[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+static VTT_ENTRY vtt_ee35602[] = {
+ {&(_ZTV7ee35602[4]), 4,16},
+ {&(_ZTV7ee35602[9]), 9,16},
+ {&(_ZTV7ee35602[14]), 14,16},
+ {&(_tg__ZTV6dd5602__7ee35602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd5602__7ee35602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35602[];
+extern VTBL_ENTRY _ZTV7ee35602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35602[];
+static VTBL_ENTRY alt_thunk_names1067[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356023fooEv,_ZTv0_n12_N7ee356023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356023fooEv,_ZThn16_N7ee356023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35602 = { "ee35602", // class name
+ bases_ee35602, 4,
+ &(vtc_ee35602[0]), // expected_vtbl_contents
+ &(vtt_ee35602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35602),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1067,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45602 : dd5602 {
+ int e;
+ virtual void bar(); // _ZN7ee456023barEv
+ ~ee45602(); // tgen
+ ee45602(); // tgen
+};
+//SIG(1 ee45602) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45602 ::bar(){vfunc_called(this, "_ZN7ee456023barEv");}
+ee45602 ::~ee45602(){ note_dtor("ee45602", this);} // tgen
+ee45602 ::ee45602(){ note_ctor("ee45602", this);} // tgen
+
+static void Test_ee45602()
+{
+ extern Class_Descriptor cd_ee45602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45602, buf);
+ ee45602 *dp, &lv = *(dp=new (buf) ee45602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee45602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee45602");
+ check_base_class_offset(lv, (cc602*)(dd5602*), ABISELECT(16,12), "ee45602");
+ check_base_class_offset(lv, (dd5602*), 0, "ee45602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45602.e");
+ test_class_info(&lv, &cd_ee45602);
+ dp->~ee45602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45602(Test_ee45602, "ee45602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45602C1Ev();
+extern void _ZN7ee45602D1Ev();
+Name_Map name_map_ee45602[] = {
+ NSPAIR(_ZN7ee45602C1Ev),
+ NSPAIR(_ZN7ee45602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd5602;
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static Base_Class bases_ee45602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45602[];
+extern void _ZN7ee456023barEv();
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456023barEv,_ZTv0_n16_N7ee456023barEv)();
+extern void ABISELECT(_ZThn16_N7ee456023barEv,_ZThn12_N7ee456023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45602[0]),
+ (VTBL_ENTRY)&_ZN7ee456023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456023barEv,_ZTv0_n16_N7ee456023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45602[];
+extern void _ZN6dd56023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5602__7ee45602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+};
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd5602__7ee45602[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+static VTT_ENTRY vtt_ee45602[] = {
+ {&(_ZTV7ee45602[3]), 3,10},
+ {&(_tg__ZTV6dd5602__7ee45602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd5602__7ee45602[4]), 4,6},
+ {&(_ZTV7ee45602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee45602[];
+extern VTBL_ENTRY _ZTV7ee45602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45602[];
+static VTBL_ENTRY alt_thunk_names1068[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456023barEv,_ZTv0_n16_N7ee456023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456023barEv,_ZThn12_N7ee456023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45602 = { "ee45602", // class name
+ bases_ee45602, 4,
+ &(vtc_ee45602[0]), // expected_vtbl_contents
+ &(vtt_ee45602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1068,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55602 : virtual dd5602 {
+ int e;
+ virtual void bar(); // _ZN7ee556023barEv
+ ~ee55602(); // tgen
+ ee55602(); // tgen
+};
+//SIG(1 ee55602) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55602 ::bar(){vfunc_called(this, "_ZN7ee556023barEv");}
+ee55602 ::~ee55602(){ note_dtor("ee55602", this);} // tgen
+ee55602 ::ee55602(){ note_ctor("ee55602", this);} // tgen
+
+static void Test_ee55602()
+{
+ extern Class_Descriptor cd_ee55602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55602, buf);
+ ee55602 *dp, &lv = *(dp=new (buf) ee55602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee55602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee55602");
+ check_base_class_offset(lv, (cc602*)(dd5602*), ABISELECT(32,16), "ee55602");
+ check_base_class_offset(lv, (dd5602*), ABISELECT(16,8), "ee55602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55602.e");
+ test_class_info(&lv, &cd_ee55602);
+ dp->~ee55602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55602(Test_ee55602, "ee55602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55602C1Ev();
+extern void _ZN7ee55602D1Ev();
+Name_Map name_map_ee55602[] = {
+ NSPAIR(_ZN7ee55602C1Ev),
+ NSPAIR(_ZN7ee55602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd5602;
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static Base_Class bases_ee55602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55602[];
+extern void _ZN7ee556023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556023barEv,_ZTv0_n16_N7ee556023barEv)();
+extern void ABISELECT(_ZThn16_N7ee556023barEv,_ZThn8_N7ee556023barEv)() __attribute__((weak));
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee556023barEv,_ZTv0_n16_N7ee556023barEv)();
+extern void ABISELECT(_ZThn32_N7ee556023barEv,_ZThn16_N7ee556023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55602[0]),
+ (VTBL_ENTRY)&_ZN7ee556023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556023barEv,_ZTv0_n16_N7ee556023barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556023barEv,_ZTv0_n16_N7ee556023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55602[];
+extern void _ZN6dd56023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5602__7ee55602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+};
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd5602__7ee55602[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+static VTT_ENTRY vtt_ee55602[] = {
+ {&(_ZTV7ee55602[4]), 4,16},
+ {&(_ZTV7ee55602[9]), 9,16},
+ {&(_ZTV7ee55602[14]), 14,16},
+ {&(_tg__ZTV6dd5602__7ee55602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd5602__7ee55602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55602[];
+extern VTBL_ENTRY _ZTV7ee55602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55602[];
+static VTBL_ENTRY alt_thunk_names1069[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556023barEv,_ZTv0_n16_N7ee556023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556023barEv,_ZThn16_N7ee556023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556023barEv,_ZThn8_N7ee556023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55602 = { "ee55602", // class name
+ bases_ee55602, 4,
+ &(vtc_ee55602[0]), // expected_vtbl_contents
+ &(vtt_ee55602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55602),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1069,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65602 : dd5602 {
+ int e;
+ virtual void foo(); // _ZN7ee656023fooEv
+ virtual void bar(); // _ZN7ee656023barEv
+ ~ee65602(); // tgen
+ ee65602(); // tgen
+};
+//SIG(1 ee65602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65602 ::foo(){vfunc_called(this, "_ZN7ee656023fooEv");}
+void ee65602 ::bar(){vfunc_called(this, "_ZN7ee656023barEv");}
+ee65602 ::~ee65602(){ note_dtor("ee65602", this);} // tgen
+ee65602 ::ee65602(){ note_ctor("ee65602", this);} // tgen
+
+static void Test_ee65602()
+{
+ extern Class_Descriptor cd_ee65602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65602, buf);
+ ee65602 *dp, &lv = *(dp=new (buf) ee65602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee65602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee65602");
+ check_base_class_offset(lv, (cc602*)(dd5602*), ABISELECT(16,12), "ee65602");
+ check_base_class_offset(lv, (dd5602*), 0, "ee65602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65602.e");
+ test_class_info(&lv, &cd_ee65602);
+ dp->~ee65602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65602(Test_ee65602, "ee65602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65602C1Ev();
+extern void _ZN7ee65602D1Ev();
+Name_Map name_map_ee65602[] = {
+ NSPAIR(_ZN7ee65602C1Ev),
+ NSPAIR(_ZN7ee65602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd5602;
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static Base_Class bases_ee65602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65602[];
+extern void _ZN7ee656023barEv();
+extern void _ZN7ee656023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee656023fooEv,_ZTv0_n12_N7ee656023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656023fooEv,_ZThn12_N7ee656023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656023barEv,_ZTv0_n16_N7ee656023barEv)();
+extern void ABISELECT(_ZThn16_N7ee656023barEv,_ZThn12_N7ee656023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65602[0]),
+ (VTBL_ENTRY)&_ZN7ee656023barEv,
+ (VTBL_ENTRY)&_ZN7ee656023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656023fooEv,_ZTv0_n12_N7ee656023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656023barEv,_ZTv0_n16_N7ee656023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65602[];
+extern void _ZN6dd56023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5602__7ee65602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+};
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd5602__7ee65602[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+static VTT_ENTRY vtt_ee65602[] = {
+ {&(_ZTV7ee65602[3]), 3,11},
+ {&(_tg__ZTV6dd5602__7ee65602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd5602__7ee65602[4]), 4,6},
+ {&(_ZTV7ee65602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee65602[];
+extern VTBL_ENTRY _ZTV7ee65602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65602[];
+static VTBL_ENTRY alt_thunk_names1070[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn12_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656023barEv,_ZTv0_n16_N7ee656023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656023barEv,_ZThn12_N7ee656023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656023fooEv,_ZTv0_n12_N7ee656023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656023fooEv,_ZThn12_N7ee656023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65602 = { "ee65602", // class name
+ bases_ee65602, 4,
+ &(vtc_ee65602[0]), // expected_vtbl_contents
+ &(vtt_ee65602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1070,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75602 : virtual dd5602 {
+ int e;
+ virtual void foo(); // _ZN7ee756023fooEv
+ virtual void bar(); // _ZN7ee756023barEv
+ ~ee75602(); // tgen
+ ee75602(); // tgen
+};
+//SIG(1 ee75602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75602 ::foo(){vfunc_called(this, "_ZN7ee756023fooEv");}
+void ee75602 ::bar(){vfunc_called(this, "_ZN7ee756023barEv");}
+ee75602 ::~ee75602(){ note_dtor("ee75602", this);} // tgen
+ee75602 ::ee75602(){ note_ctor("ee75602", this);} // tgen
+
+static void Test_ee75602()
+{
+ extern Class_Descriptor cd_ee75602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75602, buf);
+ ee75602 *dp, &lv = *(dp=new (buf) ee75602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee75602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee75602");
+ check_base_class_offset(lv, (cc602*)(dd5602*), ABISELECT(32,16), "ee75602");
+ check_base_class_offset(lv, (dd5602*), ABISELECT(16,8), "ee75602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75602.e");
+ test_class_info(&lv, &cd_ee75602);
+ dp->~ee75602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75602(Test_ee75602, "ee75602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75602C1Ev();
+extern void _ZN7ee75602D1Ev();
+Name_Map name_map_ee75602[] = {
+ NSPAIR(_ZN7ee75602C1Ev),
+ NSPAIR(_ZN7ee75602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd5602;
+extern VTBL_ENTRY _ZTI6dd5602[];
+extern VTBL_ENTRY _ZTV6dd5602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5602[];
+static Base_Class bases_ee75602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5602, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75602[];
+extern void _ZN7ee756023fooEv();
+extern void _ZN7ee756023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee756023barEv,_ZTv0_n16_N7ee756023barEv)();
+extern void ABISELECT(_ZThn16_N7ee756023barEv,_ZThn8_N7ee756023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756023fooEv,_ZTv0_n12_N7ee756023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756023fooEv,_ZThn16_N7ee756023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756023barEv,_ZTv0_n16_N7ee756023barEv)();
+extern void ABISELECT(_ZThn32_N7ee756023barEv,_ZThn16_N7ee756023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75602[0]),
+ (VTBL_ENTRY)&_ZN7ee756023fooEv,
+ (VTBL_ENTRY)&_ZN7ee756023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756023barEv,_ZTv0_n16_N7ee756023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756023fooEv,_ZTv0_n12_N7ee756023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756023barEv,_ZTv0_n16_N7ee756023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75602[];
+extern void _ZN6dd56023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5602__7ee75602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN6dd56023barEv,
+};
+extern void _ZN5cc6023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv)();
+extern void ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd5602__7ee75602[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5602[0]),
+ (VTBL_ENTRY)&_ZN5cc6023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv),
+};
+static VTT_ENTRY vtt_ee75602[] = {
+ {&(_ZTV7ee75602[4]), 4,17},
+ {&(_ZTV7ee75602[10]), 10,17},
+ {&(_ZTV7ee75602[15]), 15,17},
+ {&(_tg__ZTV6dd5602__7ee75602[3]), 3,4},
+ {&(_tg__ZTV5cc602__6dd5602__7ee75602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75602[];
+extern VTBL_ENTRY _ZTV7ee75602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75602[];
+static VTBL_ENTRY alt_thunk_names1071[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56023barEv,_ZTv0_n16_N6dd56023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56023barEv,_ZThn8_N6dd56023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756023fooEv,_ZTv0_n12_N7ee756023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756023fooEv,_ZThn16_N7ee756023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756023barEv,_ZTv0_n16_N7ee756023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756023barEv,_ZThn16_N7ee756023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756023barEv,_ZThn8_N7ee756023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75602 = { "ee75602", // class name
+ bases_ee75602, 4,
+ &(vtc_ee75602[0]), // expected_vtbl_contents
+ &(vtt_ee75602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75602),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1071,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6602 : cc602 {
+ int d;
+ virtual void bar(); // _ZN6dd66023barEv
+ virtual void foo(); // _ZN6dd66023fooEv
+ ~dd6602(); // tgen
+ dd6602(); // tgen
+};
+//SIG(-1 dd6602) C1{ BC2{ BC3{ BC4{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6602 ::bar(){vfunc_called(this, "_ZN6dd66023barEv");}
+void dd6602 ::foo(){vfunc_called(this, "_ZN6dd66023fooEv");}
+dd6602 ::~dd6602(){ note_dtor("dd6602", this);} // tgen
+dd6602 ::dd6602(){ note_ctor("dd6602", this);} // tgen
+
+static void Test_dd6602()
+{
+ extern Class_Descriptor cd_dd6602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6602, buf);
+ dd6602 *dp, &lv = *(dp=new (buf) dd6602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), 0, "dd6602");
+ check_base_class_offset(lv, (bb02*)(cc602*), 0, "dd6602");
+ check_base_class_offset(lv, (cc602*), 0, "dd6602");
+ check_field_offset(lv, d, ABISELECT(20,16), "dd6602.d");
+ test_class_info(&lv, &cd_dd6602);
+ dp->~dd6602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6602(Test_dd6602, "dd6602", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6602C1Ev();
+extern void _ZN6dd6602D1Ev();
+Name_Map name_map_dd6602[] = {
+ NSPAIR(_ZN6dd6602C1Ev),
+ NSPAIR(_ZN6dd6602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+static Base_Class bases_dd6602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern void _ZN6dd66023fooEv();
+extern void _ZN6dd66023barEv();
+static VTBL_ENTRY vtc_dd6602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6602[0]),
+ (VTBL_ENTRY)&_ZN6dd66023fooEv,
+ (VTBL_ENTRY)&_ZN6dd66023barEv,
+};
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+Class_Descriptor cd_dd6602 = { "dd6602", // class name
+ bases_dd6602, 3,
+ &(vtc_dd6602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 3, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06602 : dd6602 {
+ int e;
+ ~ee06602(); // tgen
+ ee06602(); // tgen
+};
+//SIG(1 ee06602) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06602 ::~ee06602(){ note_dtor("ee06602", this);} // tgen
+ee06602 ::ee06602(){ note_ctor("ee06602", this);} // tgen
+
+static void Test_ee06602()
+{
+ extern Class_Descriptor cd_ee06602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06602, buf);
+ ee06602 *dp, &lv = *(dp=new (buf) ee06602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd6602*), 0, "ee06602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd6602*), 0, "ee06602");
+ check_base_class_offset(lv, (cc602*)(dd6602*), 0, "ee06602");
+ check_base_class_offset(lv, (dd6602*), 0, "ee06602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee06602.e");
+ test_class_info(&lv, &cd_ee06602);
+ dp->~ee06602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06602(Test_ee06602, "ee06602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06602C1Ev();
+extern void _ZN7ee06602D1Ev();
+Name_Map name_map_ee06602[] = {
+ NSPAIR(_ZN7ee06602C1Ev),
+ NSPAIR(_ZN7ee06602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd6602;
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+static Base_Class bases_ee06602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6602, 0, //bcp->offset
+ 0, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06602[];
+extern void _ZN6dd66023fooEv();
+extern void _ZN6dd66023barEv();
+static VTBL_ENTRY vtc_ee06602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06602[0]),
+ (VTBL_ENTRY)&_ZN6dd66023fooEv,
+ (VTBL_ENTRY)&_ZN6dd66023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee06602[];
+extern VTBL_ENTRY _ZTV7ee06602[];
+Class_Descriptor cd_ee06602 = { "ee06602", // class name
+ bases_ee06602, 4,
+ &(vtc_ee06602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16602 : virtual dd6602 {
+ int e;
+ ~ee16602(); // tgen
+ ee16602(); // tgen
+};
+//SIG(1 ee16602) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16602 ::~ee16602(){ note_dtor("ee16602", this);} // tgen
+ee16602 ::ee16602(){ note_ctor("ee16602", this);} // tgen
+
+static void Test_ee16602()
+{
+ extern Class_Descriptor cd_ee16602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16602, buf);
+ ee16602 *dp, &lv = *(dp=new (buf) ee16602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd6602*), ABISELECT(16,8), "ee16602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd6602*), ABISELECT(16,8), "ee16602");
+ check_base_class_offset(lv, (cc602*)(dd6602*), ABISELECT(16,8), "ee16602");
+ check_base_class_offset(lv, (dd6602*), ABISELECT(16,8), "ee16602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16602.e");
+ test_class_info(&lv, &cd_ee16602);
+ dp->~ee16602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16602(Test_ee16602, "ee16602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16602C1Ev();
+extern void _ZN7ee16602D1Ev();
+Name_Map name_map_ee16602[] = {
+ NSPAIR(_ZN7ee16602C1Ev),
+ NSPAIR(_ZN7ee16602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd6602;
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+static Base_Class bases_ee16602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6602, ABISELECT(16,8), //bcp->offset
+ 3, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16602[];
+extern void _ZN6dd66023fooEv();
+extern void _ZN6dd66023barEv();
+static VTBL_ENTRY vtc_ee16602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16602[0]),
+ 0,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16602[0]),
+ (VTBL_ENTRY)&_ZN6dd66023fooEv,
+ (VTBL_ENTRY)&_ZN6dd66023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee16602[];
+static VTT_ENTRY vtt_ee16602[] = {
+ {&(_ZTV7ee16602[3]), 3,9},
+ {&(_ZTV7ee16602[7]), 7,9},
+};
+extern VTBL_ENTRY _ZTI7ee16602[];
+extern VTBL_ENTRY _ZTV7ee16602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16602[];
+Class_Descriptor cd_ee16602 = { "ee16602", // class name
+ bases_ee16602, 4,
+ &(vtc_ee16602[0]), // expected_vtbl_contents
+ &(vtt_ee16602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16602),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26602 : dd6602 {
+ int e;
+ virtual void foo(); // _ZN7ee266023fooEv
+ ~ee26602(); // tgen
+ ee26602(); // tgen
+};
+//SIG(1 ee26602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26602 ::foo(){vfunc_called(this, "_ZN7ee266023fooEv");}
+ee26602 ::~ee26602(){ note_dtor("ee26602", this);} // tgen
+ee26602 ::ee26602(){ note_ctor("ee26602", this);} // tgen
+
+static void Test_ee26602()
+{
+ extern Class_Descriptor cd_ee26602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26602, buf);
+ ee26602 *dp, &lv = *(dp=new (buf) ee26602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd6602*), 0, "ee26602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd6602*), 0, "ee26602");
+ check_base_class_offset(lv, (cc602*)(dd6602*), 0, "ee26602");
+ check_base_class_offset(lv, (dd6602*), 0, "ee26602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee26602.e");
+ test_class_info(&lv, &cd_ee26602);
+ dp->~ee26602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26602(Test_ee26602, "ee26602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26602C1Ev();
+extern void _ZN7ee26602D1Ev();
+Name_Map name_map_ee26602[] = {
+ NSPAIR(_ZN7ee26602C1Ev),
+ NSPAIR(_ZN7ee26602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd6602;
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+static Base_Class bases_ee26602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26602[];
+extern void _ZN7ee266023fooEv();
+extern void _ZN6dd66023barEv();
+static VTBL_ENTRY vtc_ee26602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26602[0]),
+ (VTBL_ENTRY)&_ZN7ee266023fooEv,
+ (VTBL_ENTRY)&_ZN6dd66023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee26602[];
+extern VTBL_ENTRY _ZTV7ee26602[];
+Class_Descriptor cd_ee26602 = { "ee26602", // class name
+ bases_ee26602, 4,
+ &(vtc_ee26602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36602 : virtual dd6602 {
+ int e;
+ virtual void foo(); // _ZN7ee366023fooEv
+ ~ee36602(); // tgen
+ ee36602(); // tgen
+};
+//SIG(1 ee36602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36602 ::foo(){vfunc_called(this, "_ZN7ee366023fooEv");}
+ee36602 ::~ee36602(){ note_dtor("ee36602", this);} // tgen
+ee36602 ::ee36602(){ note_ctor("ee36602", this);} // tgen
+
+static void Test_ee36602()
+{
+ extern Class_Descriptor cd_ee36602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36602, buf);
+ ee36602 *dp, &lv = *(dp=new (buf) ee36602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd6602*), ABISELECT(16,8), "ee36602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd6602*), ABISELECT(16,8), "ee36602");
+ check_base_class_offset(lv, (cc602*)(dd6602*), ABISELECT(16,8), "ee36602");
+ check_base_class_offset(lv, (dd6602*), ABISELECT(16,8), "ee36602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36602.e");
+ test_class_info(&lv, &cd_ee36602);
+ dp->~ee36602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36602(Test_ee36602, "ee36602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36602C1Ev();
+extern void _ZN7ee36602D1Ev();
+Name_Map name_map_ee36602[] = {
+ NSPAIR(_ZN7ee36602C1Ev),
+ NSPAIR(_ZN7ee36602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd6602;
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+static Base_Class bases_ee36602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36602[];
+extern void _ZN7ee366023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee366023fooEv,_ZTv0_n12_N7ee366023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366023fooEv,_ZThn8_N7ee366023fooEv)() __attribute__((weak));
+extern void _ZN6dd66023barEv();
+static VTBL_ENTRY vtc_ee36602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36602[0]),
+ (VTBL_ENTRY)&_ZN7ee366023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366023fooEv,_ZTv0_n12_N7ee366023fooEv),
+ (VTBL_ENTRY)&_ZN6dd66023barEv,
+};
+extern VTBL_ENTRY _ZTV7ee36602[];
+static VTT_ENTRY vtt_ee36602[] = {
+ {&(_ZTV7ee36602[3]), 3,10},
+ {&(_ZTV7ee36602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee36602[];
+extern VTBL_ENTRY _ZTV7ee36602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36602[];
+static VTBL_ENTRY alt_thunk_names1072[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366023fooEv,_ZTv0_n12_N7ee366023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366023fooEv,_ZThn8_N7ee366023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36602 = { "ee36602", // class name
+ bases_ee36602, 4,
+ &(vtc_ee36602[0]), // expected_vtbl_contents
+ &(vtt_ee36602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1072,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46602 : dd6602 {
+ int e;
+ virtual void bar(); // _ZN7ee466023barEv
+ ~ee46602(); // tgen
+ ee46602(); // tgen
+};
+//SIG(1 ee46602) C1{ BC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46602 ::bar(){vfunc_called(this, "_ZN7ee466023barEv");}
+ee46602 ::~ee46602(){ note_dtor("ee46602", this);} // tgen
+ee46602 ::ee46602(){ note_ctor("ee46602", this);} // tgen
+
+static void Test_ee46602()
+{
+ extern Class_Descriptor cd_ee46602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46602, buf);
+ ee46602 *dp, &lv = *(dp=new (buf) ee46602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd6602*), 0, "ee46602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd6602*), 0, "ee46602");
+ check_base_class_offset(lv, (cc602*)(dd6602*), 0, "ee46602");
+ check_base_class_offset(lv, (dd6602*), 0, "ee46602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee46602.e");
+ test_class_info(&lv, &cd_ee46602);
+ dp->~ee46602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46602(Test_ee46602, "ee46602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46602C1Ev();
+extern void _ZN7ee46602D1Ev();
+Name_Map name_map_ee46602[] = {
+ NSPAIR(_ZN7ee46602C1Ev),
+ NSPAIR(_ZN7ee46602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd6602;
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+static Base_Class bases_ee46602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46602[];
+extern void _ZN6dd66023fooEv();
+extern void _ZN7ee466023barEv();
+static VTBL_ENTRY vtc_ee46602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46602[0]),
+ (VTBL_ENTRY)&_ZN6dd66023fooEv,
+ (VTBL_ENTRY)&_ZN7ee466023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee46602[];
+extern VTBL_ENTRY _ZTV7ee46602[];
+Class_Descriptor cd_ee46602 = { "ee46602", // class name
+ bases_ee46602, 4,
+ &(vtc_ee46602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56602 : virtual dd6602 {
+ int e;
+ virtual void bar(); // _ZN7ee566023barEv
+ ~ee56602(); // tgen
+ ee56602(); // tgen
+};
+//SIG(1 ee56602) C1{ VBC2{ BC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56602 ::bar(){vfunc_called(this, "_ZN7ee566023barEv");}
+ee56602 ::~ee56602(){ note_dtor("ee56602", this);} // tgen
+ee56602 ::ee56602(){ note_ctor("ee56602", this);} // tgen
+
+static void Test_ee56602()
+{
+ extern Class_Descriptor cd_ee56602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56602, buf);
+ ee56602 *dp, &lv = *(dp=new (buf) ee56602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd6602*), ABISELECT(16,8), "ee56602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd6602*), ABISELECT(16,8), "ee56602");
+ check_base_class_offset(lv, (cc602*)(dd6602*), ABISELECT(16,8), "ee56602");
+ check_base_class_offset(lv, (dd6602*), ABISELECT(16,8), "ee56602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56602.e");
+ test_class_info(&lv, &cd_ee56602);
+ dp->~ee56602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56602(Test_ee56602, "ee56602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56602C1Ev();
+extern void _ZN7ee56602D1Ev();
+Name_Map name_map_ee56602[] = {
+ NSPAIR(_ZN7ee56602C1Ev),
+ NSPAIR(_ZN7ee56602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd6602;
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+static Base_Class bases_ee56602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56602[];
+extern void _ZN7ee566023barEv();
+extern void _ZN6dd66023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566023barEv,_ZTv0_n16_N7ee566023barEv)();
+extern void ABISELECT(_ZThn16_N7ee566023barEv,_ZThn8_N7ee566023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56602[0]),
+ (VTBL_ENTRY)&_ZN7ee566023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56602[0]),
+ (VTBL_ENTRY)&_ZN6dd66023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566023barEv,_ZTv0_n16_N7ee566023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56602[];
+static VTT_ENTRY vtt_ee56602[] = {
+ {&(_ZTV7ee56602[3]), 3,10},
+ {&(_ZTV7ee56602[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee56602[];
+extern VTBL_ENTRY _ZTV7ee56602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56602[];
+static VTBL_ENTRY alt_thunk_names1073[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566023barEv,_ZTv0_n16_N7ee566023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566023barEv,_ZThn8_N7ee566023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56602 = { "ee56602", // class name
+ bases_ee56602, 4,
+ &(vtc_ee56602[0]), // expected_vtbl_contents
+ &(vtt_ee56602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56602),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1073,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66602 : dd6602 {
+ int e;
+ virtual void foo(); // _ZN7ee666023fooEv
+ virtual void bar(); // _ZN7ee666023barEv
+ ~ee66602(); // tgen
+ ee66602(); // tgen
+};
+//SIG(1 ee66602) C1{ BC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66602 ::foo(){vfunc_called(this, "_ZN7ee666023fooEv");}
+void ee66602 ::bar(){vfunc_called(this, "_ZN7ee666023barEv");}
+ee66602 ::~ee66602(){ note_dtor("ee66602", this);} // tgen
+ee66602 ::ee66602(){ note_ctor("ee66602", this);} // tgen
+
+static void Test_ee66602()
+{
+ extern Class_Descriptor cd_ee66602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66602, buf);
+ ee66602 *dp, &lv = *(dp=new (buf) ee66602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd6602*), 0, "ee66602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd6602*), 0, "ee66602");
+ check_base_class_offset(lv, (cc602*)(dd6602*), 0, "ee66602");
+ check_base_class_offset(lv, (dd6602*), 0, "ee66602");
+ check_field_offset(lv, e, ABISELECT(24,20), "ee66602.e");
+ test_class_info(&lv, &cd_ee66602);
+ dp->~ee66602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66602(Test_ee66602, "ee66602", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66602C1Ev();
+extern void _ZN7ee66602D1Ev();
+Name_Map name_map_ee66602[] = {
+ NSPAIR(_ZN7ee66602C1Ev),
+ NSPAIR(_ZN7ee66602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd6602;
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+static Base_Class bases_ee66602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66602[];
+extern void _ZN7ee666023fooEv();
+extern void _ZN7ee666023barEv();
+static VTBL_ENTRY vtc_ee66602[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66602[0]),
+ (VTBL_ENTRY)&_ZN7ee666023fooEv,
+ (VTBL_ENTRY)&_ZN7ee666023barEv,
+};
+extern VTBL_ENTRY _ZTI7ee66602[];
+extern VTBL_ENTRY _ZTV7ee66602[];
+Class_Descriptor cd_ee66602 = { "ee66602", // class name
+ bases_ee66602, 4,
+ &(vtc_ee66602[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66602),4, //virtual function table var
+ 2, // offset into main vftv pointed to by object[0]
+ {0,0},0, // virtual table table var
+ 4, // n_initialized_bases
+ 0, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76602 : virtual dd6602 {
+ int e;
+ virtual void foo(); // _ZN7ee766023fooEv
+ virtual void bar(); // _ZN7ee766023barEv
+ ~ee76602(); // tgen
+ ee76602(); // tgen
+};
+//SIG(1 ee76602) C1{ VBC2{ BC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76602 ::foo(){vfunc_called(this, "_ZN7ee766023fooEv");}
+void ee76602 ::bar(){vfunc_called(this, "_ZN7ee766023barEv");}
+ee76602 ::~ee76602(){ note_dtor("ee76602", this);} // tgen
+ee76602 ::ee76602(){ note_ctor("ee76602", this);} // tgen
+
+static void Test_ee76602()
+{
+ extern Class_Descriptor cd_ee76602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76602, buf);
+ ee76602 *dp, &lv = *(dp=new (buf) ee76602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*)(dd6602*), ABISELECT(16,8), "ee76602");
+ check_base_class_offset(lv, (bb02*)(cc602*)(dd6602*), ABISELECT(16,8), "ee76602");
+ check_base_class_offset(lv, (cc602*)(dd6602*), ABISELECT(16,8), "ee76602");
+ check_base_class_offset(lv, (dd6602*), ABISELECT(16,8), "ee76602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76602.e");
+ test_class_info(&lv, &cd_ee76602);
+ dp->~ee76602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76602(Test_ee76602, "ee76602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76602C1Ev();
+extern void _ZN7ee76602D1Ev();
+Name_Map name_map_ee76602[] = {
+ NSPAIR(_ZN7ee76602C1Ev),
+ NSPAIR(_ZN7ee76602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd6602;
+extern VTBL_ENTRY _ZTI6dd6602[];
+extern VTBL_ENTRY _ZTV6dd6602[];
+static Base_Class bases_ee76602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76602[];
+extern void _ZN7ee766023fooEv();
+extern void _ZN7ee766023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee766023fooEv,_ZTv0_n12_N7ee766023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766023fooEv,_ZThn8_N7ee766023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766023barEv,_ZTv0_n16_N7ee766023barEv)();
+extern void ABISELECT(_ZThn16_N7ee766023barEv,_ZThn8_N7ee766023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76602[0]),
+ (VTBL_ENTRY)&_ZN7ee766023fooEv,
+ (VTBL_ENTRY)&_ZN7ee766023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766023fooEv,_ZTv0_n12_N7ee766023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766023barEv,_ZTv0_n16_N7ee766023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76602[];
+static VTT_ENTRY vtt_ee76602[] = {
+ {&(_ZTV7ee76602[3]), 3,11},
+ {&(_ZTV7ee76602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee76602[];
+extern VTBL_ENTRY _ZTV7ee76602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76602[];
+static VTBL_ENTRY alt_thunk_names1074[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766023barEv,_ZTv0_n16_N7ee766023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766023barEv,_ZThn8_N7ee766023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766023fooEv,_ZTv0_n12_N7ee766023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766023fooEv,_ZThn8_N7ee766023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76602 = { "ee76602", // class name
+ bases_ee76602, 4,
+ &(vtc_ee76602[0]), // expected_vtbl_contents
+ &(vtt_ee76602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76602),2, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1074,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7602 : virtual cc602 {
+ int d;
+ virtual void bar(); // _ZN6dd76023barEv
+ virtual void foo(); // _ZN6dd76023fooEv
+ ~dd7602(); // tgen
+ dd7602(); // tgen
+};
+//SIG(-1 dd7602) C1{ VBC2{ BC3{ BC4{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7602 ::bar(){vfunc_called(this, "_ZN6dd76023barEv");}
+void dd7602 ::foo(){vfunc_called(this, "_ZN6dd76023fooEv");}
+dd7602 ::~dd7602(){ note_dtor("dd7602", this);} // tgen
+dd7602 ::dd7602(){ note_ctor("dd7602", this);} // tgen
+
+static void Test_dd7602()
+{
+ extern Class_Descriptor cd_dd7602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7602, buf);
+ dd7602 *dp, &lv = *(dp=new (buf) dd7602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,8), "dd7602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,8), "dd7602");
+ check_base_class_offset(lv, (cc602*), ABISELECT(16,8), "dd7602");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7602.d");
+ test_class_info(&lv, &cd_dd7602);
+ dp->~dd7602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7602(Test_dd7602, "dd7602", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7602C1Ev();
+extern void _ZN6dd7602D1Ev();
+Name_Map name_map_dd7602[] = {
+ NSPAIR(_ZN6dd7602C1Ev),
+ NSPAIR(_ZN6dd7602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+static Base_Class bases_dd7602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7602[];
+static VTT_ENTRY vtt_dd7602[] = {
+ {&(_ZTV6dd7602[3]), 3,11},
+ {&(_ZTV6dd7602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static VTBL_ENTRY alt_thunk_names1075[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7602 = { "dd7602", // class name
+ bases_dd7602, 3,
+ &(vtc_dd7602[0]), // expected_vtbl_contents
+ &(vtt_dd7602[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7602),2, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1075,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07602 : dd7602 {
+ int e;
+ ~ee07602(); // tgen
+ ee07602(); // tgen
+};
+//SIG(1 ee07602) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07602 ::~ee07602(){ note_dtor("ee07602", this);} // tgen
+ee07602 ::ee07602(){ note_ctor("ee07602", this);} // tgen
+
+static void Test_ee07602()
+{
+ extern Class_Descriptor cd_ee07602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07602, buf);
+ ee07602 *dp, &lv = *(dp=new (buf) ee07602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee07602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee07602");
+ check_base_class_offset(lv, (cc602*)(dd7602*), ABISELECT(16,12), "ee07602");
+ check_base_class_offset(lv, (dd7602*), 0, "ee07602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07602.e");
+ test_class_info(&lv, &cd_ee07602);
+ dp->~ee07602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07602(Test_ee07602, "ee07602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07602C1Ev();
+extern void _ZN7ee07602D1Ev();
+Name_Map name_map_ee07602[] = {
+ NSPAIR(_ZN7ee07602C1Ev),
+ NSPAIR(_ZN7ee07602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd7602;
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static Base_Class bases_ee07602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7602__7ee07602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd7602__7ee07602[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+static VTT_ENTRY vtt_ee07602[] = {
+ {&(_ZTV7ee07602[3]), 3,11},
+ {&(_tg__ZTV6dd7602__7ee07602[3]), 3,5},
+ {&(_tg__ZTV5cc602__6dd7602__7ee07602[4]), 4,6},
+ {&(_ZTV7ee07602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee07602[];
+extern VTBL_ENTRY _ZTV7ee07602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07602[];
+static VTBL_ENTRY alt_thunk_names1076[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07602 = { "ee07602", // class name
+ bases_ee07602, 4,
+ &(vtc_ee07602[0]), // expected_vtbl_contents
+ &(vtt_ee07602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1076,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17602 : virtual dd7602 {
+ int e;
+ ~ee17602(); // tgen
+ ee17602(); // tgen
+};
+//SIG(1 ee17602) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17602 ::~ee17602(){ note_dtor("ee17602", this);} // tgen
+ee17602 ::ee17602(){ note_ctor("ee17602", this);} // tgen
+
+static void Test_ee17602()
+{
+ extern Class_Descriptor cd_ee17602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17602, buf);
+ ee17602 *dp, &lv = *(dp=new (buf) ee17602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee17602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee17602");
+ check_base_class_offset(lv, (cc602*)(dd7602*), ABISELECT(32,16), "ee17602");
+ check_base_class_offset(lv, (dd7602*), ABISELECT(16,8), "ee17602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17602.e");
+ test_class_info(&lv, &cd_ee17602);
+ dp->~ee17602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17602(Test_ee17602, "ee17602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17602C1Ev();
+extern void _ZN7ee17602D1Ev();
+Name_Map name_map_ee17602[] = {
+ NSPAIR(_ZN7ee17602C1Ev),
+ NSPAIR(_ZN7ee17602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd7602;
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static Base_Class bases_ee17602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7602, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17602[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7602__7ee17602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd7602__7ee17602[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+static VTT_ENTRY vtt_ee17602[] = {
+ {&(_ZTV7ee17602[4]), 4,17},
+ {&(_ZTV7ee17602[9]), 9,17},
+ {&(_ZTV7ee17602[15]), 15,17},
+ {&(_tg__ZTV6dd7602__7ee17602[3]), 3,5},
+ {&(_tg__ZTV5cc602__6dd7602__7ee17602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17602[];
+extern VTBL_ENTRY _ZTV7ee17602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17602[];
+static VTBL_ENTRY alt_thunk_names1077[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17602 = { "ee17602", // class name
+ bases_ee17602, 4,
+ &(vtc_ee17602[0]), // expected_vtbl_contents
+ &(vtt_ee17602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17602),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1077,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27602 : dd7602 {
+ int e;
+ virtual void foo(); // _ZN7ee276023fooEv
+ ~ee27602(); // tgen
+ ee27602(); // tgen
+};
+//SIG(1 ee27602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27602 ::foo(){vfunc_called(this, "_ZN7ee276023fooEv");}
+ee27602 ::~ee27602(){ note_dtor("ee27602", this);} // tgen
+ee27602 ::ee27602(){ note_ctor("ee27602", this);} // tgen
+
+static void Test_ee27602()
+{
+ extern Class_Descriptor cd_ee27602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27602, buf);
+ ee27602 *dp, &lv = *(dp=new (buf) ee27602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee27602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee27602");
+ check_base_class_offset(lv, (cc602*)(dd7602*), ABISELECT(16,12), "ee27602");
+ check_base_class_offset(lv, (dd7602*), 0, "ee27602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27602.e");
+ test_class_info(&lv, &cd_ee27602);
+ dp->~ee27602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27602(Test_ee27602, "ee27602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27602C1Ev();
+extern void _ZN7ee27602D1Ev();
+Name_Map name_map_ee27602[] = {
+ NSPAIR(_ZN7ee27602C1Ev),
+ NSPAIR(_ZN7ee27602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd7602;
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static Base_Class bases_ee27602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN7ee276023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee276023fooEv,_ZTv0_n12_N7ee276023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276023fooEv,_ZThn12_N7ee276023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN7ee276023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276023fooEv,_ZTv0_n12_N7ee276023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7602__7ee27602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd7602__7ee27602[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+static VTT_ENTRY vtt_ee27602[] = {
+ {&(_ZTV7ee27602[3]), 3,11},
+ {&(_tg__ZTV6dd7602__7ee27602[3]), 3,5},
+ {&(_tg__ZTV5cc602__6dd7602__7ee27602[4]), 4,6},
+ {&(_ZTV7ee27602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee27602[];
+extern VTBL_ENTRY _ZTV7ee27602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27602[];
+static VTBL_ENTRY alt_thunk_names1078[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276023fooEv,_ZTv0_n12_N7ee276023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276023fooEv,_ZThn12_N7ee276023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27602 = { "ee27602", // class name
+ bases_ee27602, 4,
+ &(vtc_ee27602[0]), // expected_vtbl_contents
+ &(vtt_ee27602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1078,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37602 : virtual dd7602 {
+ int e;
+ virtual void foo(); // _ZN7ee376023fooEv
+ ~ee37602(); // tgen
+ ee37602(); // tgen
+};
+//SIG(1 ee37602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37602 ::foo(){vfunc_called(this, "_ZN7ee376023fooEv");}
+ee37602 ::~ee37602(){ note_dtor("ee37602", this);} // tgen
+ee37602 ::ee37602(){ note_ctor("ee37602", this);} // tgen
+
+static void Test_ee37602()
+{
+ extern Class_Descriptor cd_ee37602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37602, buf);
+ ee37602 *dp, &lv = *(dp=new (buf) ee37602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee37602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee37602");
+ check_base_class_offset(lv, (cc602*)(dd7602*), ABISELECT(32,16), "ee37602");
+ check_base_class_offset(lv, (dd7602*), ABISELECT(16,8), "ee37602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37602.e");
+ test_class_info(&lv, &cd_ee37602);
+ dp->~ee37602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37602(Test_ee37602, "ee37602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37602C1Ev();
+extern void _ZN7ee37602D1Ev();
+Name_Map name_map_ee37602[] = {
+ NSPAIR(_ZN7ee37602C1Ev),
+ NSPAIR(_ZN7ee37602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd7602;
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static Base_Class bases_ee37602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37602[];
+extern void _ZN7ee376023fooEv();
+extern void _ZN6dd76023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee376023fooEv,_ZTv0_n20_N7ee376023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376023fooEv,_ZThn8_N7ee376023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376023fooEv,_ZTv0_n12_N7ee376023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376023fooEv,_ZThn16_N7ee376023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37602[0]),
+ (VTBL_ENTRY)&_ZN7ee376023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376023fooEv,_ZTv0_n20_N7ee376023fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376023fooEv,_ZTv0_n12_N7ee376023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7602__7ee37602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd7602__7ee37602[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+static VTT_ENTRY vtt_ee37602[] = {
+ {&(_ZTV7ee37602[4]), 4,18},
+ {&(_ZTV7ee37602[10]), 10,18},
+ {&(_ZTV7ee37602[16]), 16,18},
+ {&(_tg__ZTV6dd7602__7ee37602[3]), 3,5},
+ {&(_tg__ZTV5cc602__6dd7602__7ee37602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37602[];
+extern VTBL_ENTRY _ZTV7ee37602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37602[];
+static VTBL_ENTRY alt_thunk_names1079[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376023fooEv,_ZTv0_n12_N7ee376023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376023fooEv,_ZThn16_N7ee376023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376023fooEv,_ZTv0_n20_N7ee376023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376023fooEv,_ZThn8_N7ee376023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37602 = { "ee37602", // class name
+ bases_ee37602, 4,
+ &(vtc_ee37602[0]), // expected_vtbl_contents
+ &(vtt_ee37602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37602),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1079,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47602 : dd7602 {
+ int e;
+ virtual void bar(); // _ZN7ee476023barEv
+ ~ee47602(); // tgen
+ ee47602(); // tgen
+};
+//SIG(1 ee47602) C1{ BC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47602 ::bar(){vfunc_called(this, "_ZN7ee476023barEv");}
+ee47602 ::~ee47602(){ note_dtor("ee47602", this);} // tgen
+ee47602 ::ee47602(){ note_ctor("ee47602", this);} // tgen
+
+static void Test_ee47602()
+{
+ extern Class_Descriptor cd_ee47602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47602, buf);
+ ee47602 *dp, &lv = *(dp=new (buf) ee47602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee47602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee47602");
+ check_base_class_offset(lv, (cc602*)(dd7602*), ABISELECT(16,12), "ee47602");
+ check_base_class_offset(lv, (dd7602*), 0, "ee47602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47602.e");
+ test_class_info(&lv, &cd_ee47602);
+ dp->~ee47602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47602(Test_ee47602, "ee47602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47602C1Ev();
+extern void _ZN7ee47602D1Ev();
+Name_Map name_map_ee47602[] = {
+ NSPAIR(_ZN7ee47602C1Ev),
+ NSPAIR(_ZN7ee47602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd7602;
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static Base_Class bases_ee47602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47602[];
+extern void _ZN7ee476023barEv();
+extern void _ZN6dd76023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476023barEv,_ZTv0_n16_N7ee476023barEv)();
+extern void ABISELECT(_ZThn16_N7ee476023barEv,_ZThn12_N7ee476023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47602[0]),
+ (VTBL_ENTRY)&_ZN7ee476023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476023barEv,_ZTv0_n16_N7ee476023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7602__7ee47602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd7602__7ee47602[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+static VTT_ENTRY vtt_ee47602[] = {
+ {&(_ZTV7ee47602[3]), 3,11},
+ {&(_tg__ZTV6dd7602__7ee47602[3]), 3,5},
+ {&(_tg__ZTV5cc602__6dd7602__7ee47602[4]), 4,6},
+ {&(_ZTV7ee47602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee47602[];
+extern VTBL_ENTRY _ZTV7ee47602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47602[];
+static VTBL_ENTRY alt_thunk_names1080[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476023barEv,_ZTv0_n16_N7ee476023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476023barEv,_ZThn12_N7ee476023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47602 = { "ee47602", // class name
+ bases_ee47602, 4,
+ &(vtc_ee47602[0]), // expected_vtbl_contents
+ &(vtt_ee47602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1080,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57602 : virtual dd7602 {
+ int e;
+ virtual void bar(); // _ZN7ee576023barEv
+ ~ee57602(); // tgen
+ ee57602(); // tgen
+};
+//SIG(1 ee57602) C1{ VBC2{ VBC3{ BC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57602 ::bar(){vfunc_called(this, "_ZN7ee576023barEv");}
+ee57602 ::~ee57602(){ note_dtor("ee57602", this);} // tgen
+ee57602 ::ee57602(){ note_ctor("ee57602", this);} // tgen
+
+static void Test_ee57602()
+{
+ extern Class_Descriptor cd_ee57602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57602, buf);
+ ee57602 *dp, &lv = *(dp=new (buf) ee57602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee57602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee57602");
+ check_base_class_offset(lv, (cc602*)(dd7602*), ABISELECT(32,16), "ee57602");
+ check_base_class_offset(lv, (dd7602*), ABISELECT(16,8), "ee57602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57602.e");
+ test_class_info(&lv, &cd_ee57602);
+ dp->~ee57602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57602(Test_ee57602, "ee57602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57602C1Ev();
+extern void _ZN7ee57602D1Ev();
+Name_Map name_map_ee57602[] = {
+ NSPAIR(_ZN7ee57602C1Ev),
+ NSPAIR(_ZN7ee57602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd7602;
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static Base_Class bases_ee57602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7602, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57602[];
+extern void _ZN7ee576023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576023barEv,_ZTv0_n16_N7ee576023barEv)();
+extern void ABISELECT(_ZThn16_N7ee576023barEv,_ZThn8_N7ee576023barEv)() __attribute__((weak));
+extern void _ZN6dd76023fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576023barEv,_ZTv0_n16_N7ee576023barEv)();
+extern void ABISELECT(_ZThn32_N7ee576023barEv,_ZThn16_N7ee576023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57602[0]),
+ (VTBL_ENTRY)&_ZN7ee576023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576023barEv,_ZTv0_n16_N7ee576023barEv),
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576023barEv,_ZTv0_n16_N7ee576023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7602__7ee57602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd7602__7ee57602[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+static VTT_ENTRY vtt_ee57602[] = {
+ {&(_ZTV7ee57602[4]), 4,18},
+ {&(_ZTV7ee57602[10]), 10,18},
+ {&(_ZTV7ee57602[16]), 16,18},
+ {&(_tg__ZTV6dd7602__7ee57602[3]), 3,5},
+ {&(_tg__ZTV5cc602__6dd7602__7ee57602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57602[];
+extern VTBL_ENTRY _ZTV7ee57602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57602[];
+static VTBL_ENTRY alt_thunk_names1081[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576023barEv,_ZTv0_n16_N7ee576023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576023barEv,_ZThn16_N7ee576023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576023barEv,_ZThn8_N7ee576023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57602 = { "ee57602", // class name
+ bases_ee57602, 4,
+ &(vtc_ee57602[0]), // expected_vtbl_contents
+ &(vtt_ee57602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57602),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1081,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67602 : dd7602 {
+ int e;
+ virtual void foo(); // _ZN7ee676023fooEv
+ virtual void bar(); // _ZN7ee676023barEv
+ ~ee67602(); // tgen
+ ee67602(); // tgen
+};
+//SIG(1 ee67602) C1{ BC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67602 ::foo(){vfunc_called(this, "_ZN7ee676023fooEv");}
+void ee67602 ::bar(){vfunc_called(this, "_ZN7ee676023barEv");}
+ee67602 ::~ee67602(){ note_dtor("ee67602", this);} // tgen
+ee67602 ::ee67602(){ note_ctor("ee67602", this);} // tgen
+
+static void Test_ee67602()
+{
+ extern Class_Descriptor cd_ee67602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67602, buf);
+ ee67602 *dp, &lv = *(dp=new (buf) ee67602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(16,12), "ee67602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(16,12), "ee67602");
+ check_base_class_offset(lv, (cc602*)(dd7602*), ABISELECT(16,12), "ee67602");
+ check_base_class_offset(lv, (dd7602*), 0, "ee67602");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67602.e");
+ test_class_info(&lv, &cd_ee67602);
+ dp->~ee67602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67602(Test_ee67602, "ee67602", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67602C1Ev();
+extern void _ZN7ee67602D1Ev();
+Name_Map name_map_ee67602[] = {
+ NSPAIR(_ZN7ee67602C1Ev),
+ NSPAIR(_ZN7ee67602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd7602;
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static Base_Class bases_ee67602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7602, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67602[];
+extern void _ZN7ee676023barEv();
+extern void _ZN7ee676023fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee676023fooEv,_ZTv0_n12_N7ee676023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676023fooEv,_ZThn12_N7ee676023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676023barEv,_ZTv0_n16_N7ee676023barEv)();
+extern void ABISELECT(_ZThn16_N7ee676023barEv,_ZThn12_N7ee676023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67602[0]),
+ (VTBL_ENTRY)&_ZN7ee676023barEv,
+ (VTBL_ENTRY)&_ZN7ee676023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676023fooEv,_ZTv0_n12_N7ee676023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676023barEv,_ZTv0_n16_N7ee676023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7602__7ee67602[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd7602__7ee67602[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+static VTT_ENTRY vtt_ee67602[] = {
+ {&(_ZTV7ee67602[3]), 3,11},
+ {&(_tg__ZTV6dd7602__7ee67602[3]), 3,5},
+ {&(_tg__ZTV5cc602__6dd7602__7ee67602[4]), 4,6},
+ {&(_ZTV7ee67602[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee67602[];
+extern VTBL_ENTRY _ZTV7ee67602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67602[];
+static VTBL_ENTRY alt_thunk_names1082[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn12_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn12_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676023barEv,_ZTv0_n16_N7ee676023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676023barEv,_ZThn12_N7ee676023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676023fooEv,_ZTv0_n12_N7ee676023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676023fooEv,_ZThn12_N7ee676023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67602 = { "ee67602", // class name
+ bases_ee67602, 4,
+ &(vtc_ee67602[0]), // expected_vtbl_contents
+ &(vtt_ee67602[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67602),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67602),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67602),4, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1082,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77602 : virtual dd7602 {
+ int e;
+ virtual void foo(); // _ZN7ee776023fooEv
+ virtual void bar(); // _ZN7ee776023barEv
+ ~ee77602(); // tgen
+ ee77602(); // tgen
+};
+//SIG(1 ee77602) C1{ VBC2{ VBC3{ BC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77602 ::foo(){vfunc_called(this, "_ZN7ee776023fooEv");}
+void ee77602 ::bar(){vfunc_called(this, "_ZN7ee776023barEv");}
+ee77602 ::~ee77602(){ note_dtor("ee77602", this);} // tgen
+ee77602 ::ee77602(){ note_ctor("ee77602", this);} // tgen
+
+static void Test_ee77602()
+{
+ extern Class_Descriptor cd_ee77602;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77602, buf);
+ ee77602 *dp, &lv = *(dp=new (buf) ee77602());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77602)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77602)");
+ check_base_class_offset(lv, (aa2*)(bb02*)(cc602*), ABISELECT(32,16), "ee77602");
+ check_base_class_offset(lv, (bb02*)(cc602*), ABISELECT(32,16), "ee77602");
+ check_base_class_offset(lv, (cc602*)(dd7602*), ABISELECT(32,16), "ee77602");
+ check_base_class_offset(lv, (dd7602*), ABISELECT(16,8), "ee77602");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77602.e");
+ test_class_info(&lv, &cd_ee77602);
+ dp->~ee77602();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77602(Test_ee77602, "ee77602", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77602C1Ev();
+extern void _ZN7ee77602D1Ev();
+Name_Map name_map_ee77602[] = {
+ NSPAIR(_ZN7ee77602C1Ev),
+ NSPAIR(_ZN7ee77602D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc602;
+extern VTBL_ENTRY _ZTI5cc602[];
+extern VTBL_ENTRY _ZTV5cc602[];
+extern Class_Descriptor cd_dd7602;
+extern VTBL_ENTRY _ZTI6dd7602[];
+extern VTBL_ENTRY _ZTV6dd7602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7602[];
+static Base_Class bases_ee77602[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 2, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc602, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7602, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77602[];
+extern void _ZN7ee776023fooEv();
+extern void _ZN7ee776023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee776023barEv,_ZTv0_n16_N7ee776023barEv)();
+extern void ABISELECT(_ZThn16_N7ee776023barEv,_ZThn8_N7ee776023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776023fooEv,_ZTv0_n20_N7ee776023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776023fooEv,_ZThn8_N7ee776023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776023fooEv,_ZTv0_n12_N7ee776023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776023fooEv,_ZThn16_N7ee776023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776023barEv,_ZTv0_n16_N7ee776023barEv)();
+extern void ABISELECT(_ZThn32_N7ee776023barEv,_ZThn16_N7ee776023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77602[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77602[0]),
+ (VTBL_ENTRY)&_ZN7ee776023fooEv,
+ (VTBL_ENTRY)&_ZN7ee776023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776023barEv,_ZTv0_n16_N7ee776023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776023fooEv,_ZTv0_n20_N7ee776023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776023fooEv,_ZTv0_n12_N7ee776023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776023barEv,_ZTv0_n16_N7ee776023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77602[];
+extern void _ZN6dd76023barEv();
+extern void _ZN6dd76023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7602__7ee77602[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&_ZN6dd76023barEv,
+ (VTBL_ENTRY)&_ZN6dd76023fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv)();
+extern void ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc602__6dd7602__7ee77602[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7602[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv),
+};
+static VTT_ENTRY vtt_ee77602[] = {
+ {&(_ZTV7ee77602[4]), 4,19},
+ {&(_ZTV7ee77602[11]), 11,19},
+ {&(_ZTV7ee77602[17]), 17,19},
+ {&(_tg__ZTV6dd7602__7ee77602[3]), 3,5},
+ {&(_tg__ZTV5cc602__6dd7602__7ee77602[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77602[];
+extern VTBL_ENTRY _ZTV7ee77602[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77602[];
+static VTBL_ENTRY alt_thunk_names1083[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76023barEv,_ZTv0_n16_N6dd76023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023barEv,_ZThn8_N6dd76023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76023fooEv,_ZTv0_n12_N6dd76023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76023fooEv,_ZThn8_N6dd76023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776023fooEv,_ZTv0_n12_N7ee776023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776023fooEv,_ZThn16_N7ee776023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776023fooEv,_ZTv0_n20_N7ee776023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776023fooEv,_ZThn8_N7ee776023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776023barEv,_ZTv0_n16_N7ee776023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776023barEv,_ZThn16_N7ee776023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776023barEv,_ZThn8_N7ee776023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77602 = { "ee77602", // class name
+ bases_ee77602, 4,
+ &(vtc_ee77602[0]), // expected_vtbl_contents
+ &(vtt_ee77602[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77602),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77602),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77602),5, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1083,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc702 : virtual bb02 {
+ int c;
+ virtual void foo(); // _ZN5cc7023fooEv
+ virtual void bar(); // _ZN5cc7023barEv
+ ~cc702(); // tgen
+ cc702(); // tgen
+};
+//SIG(-1 cc702) C1{ VBC2{ BC3{ v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void cc702 ::foo(){vfunc_called(this, "_ZN5cc7023fooEv");}
+void cc702 ::bar(){vfunc_called(this, "_ZN5cc7023barEv");}
+cc702 ::~cc702(){ note_dtor("cc702", this);} // tgen
+cc702 ::cc702(){ note_ctor("cc702", this);} // tgen
+
+static void Test_cc702()
+{
+ extern Class_Descriptor cd_cc702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc702, buf);
+ cc702 *dp, &lv = *(dp=new (buf) cc702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,8), "cc702");
+ check_base_class_offset(lv, (bb02*), ABISELECT(16,8), "cc702");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc702.c");
+ test_class_info(&lv, &cd_cc702);
+ dp->~cc702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc702(Test_cc702, "cc702", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc702C1Ev();
+extern void _ZN5cc702D1Ev();
+Name_Map name_map_cc702[] = {
+ NSPAIR(_ZN5cc702C1Ev),
+ NSPAIR(_ZN5cc702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+static Base_Class bases_cc702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV5cc702[];
+static VTT_ENTRY vtt_cc702[] = {
+ {&(_ZTV5cc702[3]), 3,11},
+ {&(_ZTV5cc702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static VTBL_ENTRY alt_thunk_names1084[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc702 = { "cc702", // class name
+ bases_cc702, 2,
+ &(vtc_cc702[0]), // expected_vtbl_contents
+ &(vtt_cc702[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc702),2, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1084,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0702 : cc702 {
+ int d;
+ ~dd0702(); // tgen
+ dd0702(); // tgen
+};
+//SIG(-1 dd0702) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd0702 ::~dd0702(){ note_dtor("dd0702", this);} // tgen
+dd0702 ::dd0702(){ note_ctor("dd0702", this);} // tgen
+
+static void Test_dd0702()
+{
+ extern Class_Descriptor cd_dd0702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0702, buf);
+ dd0702 *dp, &lv = *(dp=new (buf) dd0702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd0702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(16,12), "dd0702");
+ check_base_class_offset(lv, (cc702*), 0, "dd0702");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0702.d");
+ test_class_info(&lv, &cd_dd0702);
+ dp->~dd0702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0702(Test_dd0702, "dd0702", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0702C1Ev();
+extern void _ZN6dd0702D1Ev();
+Name_Map name_map_dd0702[] = {
+ NSPAIR(_ZN6dd0702C1Ev),
+ NSPAIR(_ZN6dd0702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static Base_Class bases_dd0702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd0702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd0702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__6dd0702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_dd0702[] = {
+ {&(_ZTV6dd0702[3]), 3,11},
+ {&(_tg__ZTV5cc702__6dd0702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__6dd0702[4]), 4,6},
+ {&(_ZTV6dd0702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static VTBL_ENTRY alt_thunk_names1085[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0702 = { "dd0702", // class name
+ bases_dd0702, 3,
+ &(vtc_dd0702[0]), // expected_vtbl_contents
+ &(vtt_dd0702[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0702),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1085,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00702 : dd0702 {
+ int e;
+ ~ee00702(); // tgen
+ ee00702(); // tgen
+};
+//SIG(1 ee00702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00702 ::~ee00702(){ note_dtor("ee00702", this);} // tgen
+ee00702 ::ee00702(){ note_ctor("ee00702", this);} // tgen
+
+static void Test_ee00702()
+{
+ extern Class_Descriptor cd_ee00702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00702, buf);
+ ee00702 *dp, &lv = *(dp=new (buf) ee00702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee00702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd0702*), ABISELECT(24,16), "ee00702");
+ check_base_class_offset(lv, (cc702*)(dd0702*), 0, "ee00702");
+ check_base_class_offset(lv, (dd0702*), 0, "ee00702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00702.e");
+ test_class_info(&lv, &cd_ee00702);
+ dp->~ee00702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00702(Test_ee00702, "ee00702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00702C1Ev();
+extern void _ZN7ee00702D1Ev();
+Name_Map name_map_ee00702[] = {
+ NSPAIR(_ZN7ee00702C1Ev),
+ NSPAIR(_ZN7ee00702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd0702;
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static Base_Class bases_ee00702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0702__7ee00702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd0702__7ee00702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd0702__7ee00702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0702__7ee00702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee00702[] = {
+ {&(_ZTV7ee00702[3]), 3,11},
+ {&(_tg__ZTV6dd0702__7ee00702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd0702__7ee00702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd0702__7ee00702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0702__7ee00702[4]), 4,6},
+ {&(_ZTV7ee00702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee00702[];
+extern VTBL_ENTRY _ZTV7ee00702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00702[];
+static VTBL_ENTRY alt_thunk_names1086[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00702 = { "ee00702", // class name
+ bases_ee00702, 4,
+ &(vtc_ee00702[0]), // expected_vtbl_contents
+ &(vtt_ee00702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1086,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10702 : virtual dd0702 {
+ int e;
+ ~ee10702(); // tgen
+ ee10702(); // tgen
+};
+//SIG(1 ee10702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10702 ::~ee10702(){ note_dtor("ee10702", this);} // tgen
+ee10702 ::ee10702(){ note_ctor("ee10702", this);} // tgen
+
+static void Test_ee10702()
+{
+ extern Class_Descriptor cd_ee10702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10702, buf);
+ ee10702 *dp, &lv = *(dp=new (buf) ee10702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee10702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd0702*), ABISELECT(32,20), "ee10702");
+ check_base_class_offset(lv, (cc702*)(dd0702*), ABISELECT(16,8), "ee10702");
+ check_base_class_offset(lv, (dd0702*), ABISELECT(16,8), "ee10702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10702.e");
+ test_class_info(&lv, &cd_ee10702);
+ dp->~ee10702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10702(Test_ee10702, "ee10702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10702C1Ev();
+extern void _ZN7ee10702D1Ev();
+Name_Map name_map_ee10702[] = {
+ NSPAIR(_ZN7ee10702C1Ev),
+ NSPAIR(_ZN7ee10702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd0702;
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static Base_Class bases_ee10702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0702, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10702[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0702__7ee10702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd0702__7ee10702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd0702__7ee10702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0702__7ee10702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee10702[] = {
+ {&(_ZTV7ee10702[4]), 4,17},
+ {&(_ZTV7ee10702[9]), 9,17},
+ {&(_ZTV7ee10702[15]), 15,17},
+ {&(_tg__ZTV6dd0702__7ee10702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd0702__7ee10702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd0702__7ee10702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0702__7ee10702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10702[];
+extern VTBL_ENTRY _ZTV7ee10702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10702[];
+static VTBL_ENTRY alt_thunk_names1087[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10702 = { "ee10702", // class name
+ bases_ee10702, 4,
+ &(vtc_ee10702[0]), // expected_vtbl_contents
+ &(vtt_ee10702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10702),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1087,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20702 : dd0702 {
+ int e;
+ virtual void foo(); // _ZN7ee207023fooEv
+ ~ee20702(); // tgen
+ ee20702(); // tgen
+};
+//SIG(1 ee20702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20702 ::foo(){vfunc_called(this, "_ZN7ee207023fooEv");}
+ee20702 ::~ee20702(){ note_dtor("ee20702", this);} // tgen
+ee20702 ::ee20702(){ note_ctor("ee20702", this);} // tgen
+
+static void Test_ee20702()
+{
+ extern Class_Descriptor cd_ee20702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20702, buf);
+ ee20702 *dp, &lv = *(dp=new (buf) ee20702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee20702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd0702*), ABISELECT(24,16), "ee20702");
+ check_base_class_offset(lv, (cc702*)(dd0702*), 0, "ee20702");
+ check_base_class_offset(lv, (dd0702*), 0, "ee20702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20702.e");
+ test_class_info(&lv, &cd_ee20702);
+ dp->~ee20702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20702(Test_ee20702, "ee20702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20702C1Ev();
+extern void _ZN7ee20702D1Ev();
+Name_Map name_map_ee20702[] = {
+ NSPAIR(_ZN7ee20702C1Ev),
+ NSPAIR(_ZN7ee20702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd0702;
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static Base_Class bases_ee20702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20702[];
+extern void _ZN7ee207023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee207023fooEv,_ZTv0_n12_N7ee207023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee207023fooEv,_ZThn16_N7ee207023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20702[0]),
+ (VTBL_ENTRY)&_ZN7ee207023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207023fooEv,_ZTv0_n12_N7ee207023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0702__7ee20702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd0702__7ee20702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd0702__7ee20702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0702__7ee20702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee20702[] = {
+ {&(_ZTV7ee20702[3]), 3,11},
+ {&(_tg__ZTV6dd0702__7ee20702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd0702__7ee20702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd0702__7ee20702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0702__7ee20702[4]), 4,6},
+ {&(_ZTV7ee20702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20702[];
+extern VTBL_ENTRY _ZTV7ee20702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20702[];
+static VTBL_ENTRY alt_thunk_names1088[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207023fooEv,_ZTv0_n12_N7ee207023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee207023fooEv,_ZThn16_N7ee207023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20702 = { "ee20702", // class name
+ bases_ee20702, 4,
+ &(vtc_ee20702[0]), // expected_vtbl_contents
+ &(vtt_ee20702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1088,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30702 : virtual dd0702 {
+ int e;
+ virtual void foo(); // _ZN7ee307023fooEv
+ ~ee30702(); // tgen
+ ee30702(); // tgen
+};
+//SIG(1 ee30702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30702 ::foo(){vfunc_called(this, "_ZN7ee307023fooEv");}
+ee30702 ::~ee30702(){ note_dtor("ee30702", this);} // tgen
+ee30702 ::ee30702(){ note_ctor("ee30702", this);} // tgen
+
+static void Test_ee30702()
+{
+ extern Class_Descriptor cd_ee30702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30702, buf);
+ ee30702 *dp, &lv = *(dp=new (buf) ee30702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee30702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd0702*), ABISELECT(32,20), "ee30702");
+ check_base_class_offset(lv, (cc702*)(dd0702*), ABISELECT(16,8), "ee30702");
+ check_base_class_offset(lv, (dd0702*), ABISELECT(16,8), "ee30702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30702.e");
+ test_class_info(&lv, &cd_ee30702);
+ dp->~ee30702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30702(Test_ee30702, "ee30702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30702C1Ev();
+extern void _ZN7ee30702D1Ev();
+Name_Map name_map_ee30702[] = {
+ NSPAIR(_ZN7ee30702C1Ev),
+ NSPAIR(_ZN7ee30702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd0702;
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static Base_Class bases_ee30702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30702[];
+extern void _ZN7ee307023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee307023fooEv,_ZTv0_n16_N7ee307023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307023fooEv,_ZThn8_N7ee307023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee307023fooEv,_ZTv0_n12_N7ee307023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee307023fooEv,_ZThn20_N7ee307023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30702[0]),
+ (VTBL_ENTRY)&_ZN7ee307023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee307023fooEv,_ZTv0_n16_N7ee307023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307023fooEv,_ZTv0_n12_N7ee307023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0702__7ee30702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd0702__7ee30702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd0702__7ee30702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0702__7ee30702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee30702[] = {
+ {&(_ZTV7ee30702[4]), 4,18},
+ {&(_ZTV7ee30702[10]), 10,18},
+ {&(_ZTV7ee30702[16]), 16,18},
+ {&(_tg__ZTV6dd0702__7ee30702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd0702__7ee30702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd0702__7ee30702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0702__7ee30702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30702[];
+extern VTBL_ENTRY _ZTV7ee30702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30702[];
+static VTBL_ENTRY alt_thunk_names1089[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307023fooEv,_ZTv0_n12_N7ee307023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee307023fooEv,_ZThn20_N7ee307023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee307023fooEv,_ZTv0_n16_N7ee307023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307023fooEv,_ZThn8_N7ee307023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30702 = { "ee30702", // class name
+ bases_ee30702, 4,
+ &(vtc_ee30702[0]), // expected_vtbl_contents
+ &(vtt_ee30702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1089,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40702 : dd0702 {
+ int e;
+ virtual void bar(); // _ZN7ee407023barEv
+ ~ee40702(); // tgen
+ ee40702(); // tgen
+};
+//SIG(1 ee40702) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40702 ::bar(){vfunc_called(this, "_ZN7ee407023barEv");}
+ee40702 ::~ee40702(){ note_dtor("ee40702", this);} // tgen
+ee40702 ::ee40702(){ note_ctor("ee40702", this);} // tgen
+
+static void Test_ee40702()
+{
+ extern Class_Descriptor cd_ee40702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40702, buf);
+ ee40702 *dp, &lv = *(dp=new (buf) ee40702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee40702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd0702*), ABISELECT(24,16), "ee40702");
+ check_base_class_offset(lv, (cc702*)(dd0702*), 0, "ee40702");
+ check_base_class_offset(lv, (dd0702*), 0, "ee40702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40702.e");
+ test_class_info(&lv, &cd_ee40702);
+ dp->~ee40702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40702(Test_ee40702, "ee40702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40702C1Ev();
+extern void _ZN7ee40702D1Ev();
+Name_Map name_map_ee40702[] = {
+ NSPAIR(_ZN7ee40702C1Ev),
+ NSPAIR(_ZN7ee40702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd0702;
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static Base_Class bases_ee40702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN7ee407023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee407023barEv,_ZTv0_n16_N7ee407023barEv)();
+extern void ABISELECT(_ZThn24_N7ee407023barEv,_ZThn16_N7ee407023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN7ee407023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee407023barEv,_ZTv0_n16_N7ee407023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0702__7ee40702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd0702__7ee40702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd0702__7ee40702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0702__7ee40702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee40702[] = {
+ {&(_ZTV7ee40702[3]), 3,11},
+ {&(_tg__ZTV6dd0702__7ee40702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd0702__7ee40702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd0702__7ee40702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0702__7ee40702[4]), 4,6},
+ {&(_ZTV7ee40702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40702[];
+extern VTBL_ENTRY _ZTV7ee40702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40702[];
+static VTBL_ENTRY alt_thunk_names1090[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee407023barEv,_ZTv0_n16_N7ee407023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee407023barEv,_ZThn16_N7ee407023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40702 = { "ee40702", // class name
+ bases_ee40702, 4,
+ &(vtc_ee40702[0]), // expected_vtbl_contents
+ &(vtt_ee40702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1090,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50702 : virtual dd0702 {
+ int e;
+ virtual void bar(); // _ZN7ee507023barEv
+ ~ee50702(); // tgen
+ ee50702(); // tgen
+};
+//SIG(1 ee50702) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50702 ::bar(){vfunc_called(this, "_ZN7ee507023barEv");}
+ee50702 ::~ee50702(){ note_dtor("ee50702", this);} // tgen
+ee50702 ::ee50702(){ note_ctor("ee50702", this);} // tgen
+
+static void Test_ee50702()
+{
+ extern Class_Descriptor cd_ee50702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50702, buf);
+ ee50702 *dp, &lv = *(dp=new (buf) ee50702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee50702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd0702*), ABISELECT(32,20), "ee50702");
+ check_base_class_offset(lv, (cc702*)(dd0702*), ABISELECT(16,8), "ee50702");
+ check_base_class_offset(lv, (dd0702*), ABISELECT(16,8), "ee50702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50702.e");
+ test_class_info(&lv, &cd_ee50702);
+ dp->~ee50702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50702(Test_ee50702, "ee50702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50702C1Ev();
+extern void _ZN7ee50702D1Ev();
+Name_Map name_map_ee50702[] = {
+ NSPAIR(_ZN7ee50702C1Ev),
+ NSPAIR(_ZN7ee50702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd0702;
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static Base_Class bases_ee50702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50702[];
+extern void _ZN7ee507023barEv();
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee507023barEv,_ZTv0_n20_N7ee507023barEv)();
+extern void ABISELECT(_ZThn16_N7ee507023barEv,_ZThn8_N7ee507023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee507023barEv,_ZTv0_n16_N7ee507023barEv)();
+extern void ABISELECT(_ZThn32_N7ee507023barEv,_ZThn20_N7ee507023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50702[0]),
+ (VTBL_ENTRY)&_ZN7ee507023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee507023barEv,_ZTv0_n20_N7ee507023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee507023barEv,_ZTv0_n16_N7ee507023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0702__7ee50702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd0702__7ee50702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd0702__7ee50702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0702__7ee50702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee50702[] = {
+ {&(_ZTV7ee50702[4]), 4,18},
+ {&(_ZTV7ee50702[10]), 10,18},
+ {&(_ZTV7ee50702[16]), 16,18},
+ {&(_tg__ZTV6dd0702__7ee50702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd0702__7ee50702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd0702__7ee50702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0702__7ee50702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50702[];
+extern VTBL_ENTRY _ZTV7ee50702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50702[];
+static VTBL_ENTRY alt_thunk_names1091[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee507023barEv,_ZTv0_n16_N7ee507023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee507023barEv,_ZThn20_N7ee507023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee507023barEv,_ZTv0_n20_N7ee507023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507023barEv,_ZThn8_N7ee507023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50702 = { "ee50702", // class name
+ bases_ee50702, 4,
+ &(vtc_ee50702[0]), // expected_vtbl_contents
+ &(vtt_ee50702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1091,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60702 : dd0702 {
+ int e;
+ virtual void foo(); // _ZN7ee607023fooEv
+ virtual void bar(); // _ZN7ee607023barEv
+ ~ee60702(); // tgen
+ ee60702(); // tgen
+};
+//SIG(1 ee60702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60702 ::foo(){vfunc_called(this, "_ZN7ee607023fooEv");}
+void ee60702 ::bar(){vfunc_called(this, "_ZN7ee607023barEv");}
+ee60702 ::~ee60702(){ note_dtor("ee60702", this);} // tgen
+ee60702 ::ee60702(){ note_ctor("ee60702", this);} // tgen
+
+static void Test_ee60702()
+{
+ extern Class_Descriptor cd_ee60702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60702, buf);
+ ee60702 *dp, &lv = *(dp=new (buf) ee60702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee60702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd0702*), ABISELECT(24,16), "ee60702");
+ check_base_class_offset(lv, (cc702*)(dd0702*), 0, "ee60702");
+ check_base_class_offset(lv, (dd0702*), 0, "ee60702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60702.e");
+ test_class_info(&lv, &cd_ee60702);
+ dp->~ee60702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60702(Test_ee60702, "ee60702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60702C1Ev();
+extern void _ZN7ee60702D1Ev();
+Name_Map name_map_ee60702[] = {
+ NSPAIR(_ZN7ee60702C1Ev),
+ NSPAIR(_ZN7ee60702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd0702;
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static Base_Class bases_ee60702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60702[];
+extern void _ZN7ee607023fooEv();
+extern void _ZN7ee607023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee607023fooEv,_ZTv0_n12_N7ee607023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee607023fooEv,_ZThn16_N7ee607023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee607023barEv,_ZTv0_n16_N7ee607023barEv)();
+extern void ABISELECT(_ZThn24_N7ee607023barEv,_ZThn16_N7ee607023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60702[0]),
+ (VTBL_ENTRY)&_ZN7ee607023fooEv,
+ (VTBL_ENTRY)&_ZN7ee607023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607023fooEv,_ZTv0_n12_N7ee607023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607023barEv,_ZTv0_n16_N7ee607023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0702__7ee60702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd0702__7ee60702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd0702__7ee60702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0702__7ee60702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee60702[] = {
+ {&(_ZTV7ee60702[3]), 3,11},
+ {&(_tg__ZTV6dd0702__7ee60702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd0702__7ee60702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd0702__7ee60702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0702__7ee60702[4]), 4,6},
+ {&(_ZTV7ee60702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60702[];
+extern VTBL_ENTRY _ZTV7ee60702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60702[];
+static VTBL_ENTRY alt_thunk_names1092[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee607023barEv,_ZTv0_n16_N7ee607023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607023barEv,_ZThn16_N7ee607023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607023fooEv,_ZTv0_n12_N7ee607023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607023fooEv,_ZThn16_N7ee607023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60702 = { "ee60702", // class name
+ bases_ee60702, 4,
+ &(vtc_ee60702[0]), // expected_vtbl_contents
+ &(vtt_ee60702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1092,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70702 : virtual dd0702 {
+ int e;
+ virtual void foo(); // _ZN7ee707023fooEv
+ virtual void bar(); // _ZN7ee707023barEv
+ ~ee70702(); // tgen
+ ee70702(); // tgen
+};
+//SIG(1 ee70702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70702 ::foo(){vfunc_called(this, "_ZN7ee707023fooEv");}
+void ee70702 ::bar(){vfunc_called(this, "_ZN7ee707023barEv");}
+ee70702 ::~ee70702(){ note_dtor("ee70702", this);} // tgen
+ee70702 ::ee70702(){ note_ctor("ee70702", this);} // tgen
+
+static void Test_ee70702()
+{
+ extern Class_Descriptor cd_ee70702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70702, buf);
+ ee70702 *dp, &lv = *(dp=new (buf) ee70702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee70702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd0702*), ABISELECT(32,20), "ee70702");
+ check_base_class_offset(lv, (cc702*)(dd0702*), ABISELECT(16,8), "ee70702");
+ check_base_class_offset(lv, (dd0702*), ABISELECT(16,8), "ee70702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70702.e");
+ test_class_info(&lv, &cd_ee70702);
+ dp->~ee70702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70702(Test_ee70702, "ee70702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70702C1Ev();
+extern void _ZN7ee70702D1Ev();
+Name_Map name_map_ee70702[] = {
+ NSPAIR(_ZN7ee70702C1Ev),
+ NSPAIR(_ZN7ee70702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd0702;
+extern VTBL_ENTRY _ZTI6dd0702[];
+extern VTBL_ENTRY _ZTV6dd0702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0702[];
+static Base_Class bases_ee70702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70702[];
+extern void _ZN7ee707023fooEv();
+extern void _ZN7ee707023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee707023fooEv,_ZTv0_n16_N7ee707023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707023fooEv,_ZThn8_N7ee707023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee707023barEv,_ZTv0_n20_N7ee707023barEv)();
+extern void ABISELECT(_ZThn16_N7ee707023barEv,_ZThn8_N7ee707023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707023fooEv,_ZTv0_n12_N7ee707023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee707023fooEv,_ZThn20_N7ee707023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707023barEv,_ZTv0_n16_N7ee707023barEv)();
+extern void ABISELECT(_ZThn32_N7ee707023barEv,_ZThn20_N7ee707023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70702[0]),
+ (VTBL_ENTRY)&_ZN7ee707023fooEv,
+ (VTBL_ENTRY)&_ZN7ee707023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707023fooEv,_ZTv0_n16_N7ee707023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707023barEv,_ZTv0_n20_N7ee707023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707023fooEv,_ZTv0_n12_N7ee707023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707023barEv,_ZTv0_n16_N7ee707023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd0702__7ee70702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd0702__7ee70702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd0702__7ee70702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd0702__7ee70702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee70702[] = {
+ {&(_ZTV7ee70702[4]), 4,19},
+ {&(_ZTV7ee70702[11]), 11,19},
+ {&(_ZTV7ee70702[17]), 17,19},
+ {&(_tg__ZTV6dd0702__7ee70702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd0702__7ee70702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd0702__7ee70702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd0702__7ee70702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70702[];
+extern VTBL_ENTRY _ZTV7ee70702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70702[];
+static VTBL_ENTRY alt_thunk_names1093[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707023barEv,_ZTv0_n16_N7ee707023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707023barEv,_ZThn20_N7ee707023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707023fooEv,_ZTv0_n12_N7ee707023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707023fooEv,_ZThn20_N7ee707023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707023barEv,_ZTv0_n20_N7ee707023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707023barEv,_ZThn8_N7ee707023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707023fooEv,_ZTv0_n16_N7ee707023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707023fooEv,_ZThn8_N7ee707023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70702 = { "ee70702", // class name
+ bases_ee70702, 4,
+ &(vtc_ee70702[0]), // expected_vtbl_contents
+ &(vtt_ee70702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1093,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1702 : virtual cc702 {
+ int d;
+ ~dd1702(); // tgen
+ dd1702(); // tgen
+};
+//SIG(-1 dd1702) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v1 v2 Fi} Fi}
+
+
+dd1702 ::~dd1702(){ note_dtor("dd1702", this);} // tgen
+dd1702 ::dd1702(){ note_ctor("dd1702", this);} // tgen
+
+static void Test_dd1702()
+{
+ extern Class_Descriptor cd_dd1702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1702, buf);
+ dd1702 *dp, &lv = *(dp=new (buf) dd1702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd1702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,16), "dd1702");
+ check_base_class_offset(lv, (cc702*), ABISELECT(16,8), "dd1702");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1702.d");
+ test_class_info(&lv, &cd_dd1702);
+ dp->~dd1702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1702(Test_dd1702, "dd1702", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1702C1Ev();
+extern void _ZN6dd1702D1Ev();
+Name_Map name_map_dd1702[] = {
+ NSPAIR(_ZN6dd1702C1Ev),
+ NSPAIR(_ZN6dd1702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static Base_Class bases_dd1702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__6dd1702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_dd1702[] = {
+ {&(_ZTV6dd1702[4]), 4,17},
+ {&(_ZTV6dd1702[9]), 9,17},
+ {&(_ZTV6dd1702[15]), 15,17},
+ {&(_tg__ZTV5cc702__6dd1702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__6dd1702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static VTBL_ENTRY alt_thunk_names1094[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1702 = { "dd1702", // class name
+ bases_dd1702, 3,
+ &(vtc_dd1702[0]), // expected_vtbl_contents
+ &(vtt_dd1702[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1702),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1702),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1094,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01702 : dd1702 {
+ int e;
+ ~ee01702(); // tgen
+ ee01702(); // tgen
+};
+//SIG(1 ee01702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01702 ::~ee01702(){ note_dtor("ee01702", this);} // tgen
+ee01702 ::ee01702(){ note_ctor("ee01702", this);} // tgen
+
+static void Test_ee01702()
+{
+ extern Class_Descriptor cd_ee01702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01702, buf);
+ ee01702 *dp, &lv = *(dp=new (buf) ee01702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee01702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee01702");
+ check_base_class_offset(lv, (cc702*)(dd1702*), ABISELECT(16,12), "ee01702");
+ check_base_class_offset(lv, (dd1702*), 0, "ee01702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01702.e");
+ test_class_info(&lv, &cd_ee01702);
+ dp->~ee01702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01702(Test_ee01702, "ee01702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01702C1Ev();
+extern void _ZN7ee01702D1Ev();
+Name_Map name_map_ee01702[] = {
+ NSPAIR(_ZN7ee01702C1Ev),
+ NSPAIR(_ZN7ee01702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd1702;
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static Base_Class bases_ee01702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01702[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01702[];
+static VTBL_ENTRY _tg__ZTV6dd1702__7ee01702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702__7ee01702[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1702__7ee01702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee01702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee01702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee01702[] = {
+ {&(_ZTV7ee01702[4]), 4,17},
+ {&(_tg__ZTV6dd1702__7ee01702[4]), 4,4},
+ {&(_tg__ZTV5cc702__6dd1702__7ee01702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd1702__7ee01702[4]), 4,6},
+ {&(_ZTV7ee01702[9]), 9,17},
+ {&(_ZTV7ee01702[15]), 15,17},
+ {&(_tg__ZTV5cc702__7ee01702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee01702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01702[];
+extern VTBL_ENTRY _ZTV7ee01702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01702[];
+static VTBL_ENTRY alt_thunk_names1095[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01702 = { "ee01702", // class name
+ bases_ee01702, 4,
+ &(vtc_ee01702[0]), // expected_vtbl_contents
+ &(vtt_ee01702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01702),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1095,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11702 : virtual dd1702 {
+ int e;
+ ~ee11702(); // tgen
+ ee11702(); // tgen
+};
+//SIG(1 ee11702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11702 ::~ee11702(){ note_dtor("ee11702", this);} // tgen
+ee11702 ::ee11702(){ note_ctor("ee11702", this);} // tgen
+
+static void Test_ee11702()
+{
+ extern Class_Descriptor cd_ee11702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11702, buf);
+ ee11702 *dp, &lv = *(dp=new (buf) ee11702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee11702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee11702");
+ check_base_class_offset(lv, (cc702*)(dd1702*), ABISELECT(32,16), "ee11702");
+ check_base_class_offset(lv, (dd1702*), ABISELECT(16,8), "ee11702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11702.e");
+ test_class_info(&lv, &cd_ee11702);
+ dp->~ee11702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11702(Test_ee11702, "ee11702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11702C1Ev();
+extern void _ZN7ee11702D1Ev();
+Name_Map name_map_ee11702[] = {
+ NSPAIR(_ZN7ee11702C1Ev),
+ NSPAIR(_ZN7ee11702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd1702;
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static Base_Class bases_ee11702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11702[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11702[0]),
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11702[];
+static VTBL_ENTRY _tg__ZTV6dd1702__7ee11702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702__7ee11702[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1702__7ee11702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee11702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee11702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee11702[] = {
+ {&(_ZTV7ee11702[5]), 5,22},
+ {&(_ZTV7ee11702[9]), 9,22},
+ {&(_ZTV7ee11702[14]), 14,22},
+ {&(_ZTV7ee11702[20]), 20,22},
+ {&(_tg__ZTV6dd1702__7ee11702[4]), 4,4},
+ {&(_tg__ZTV5cc702__6dd1702__7ee11702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd1702__7ee11702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee11702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee11702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11702[];
+extern VTBL_ENTRY _ZTV7ee11702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11702[];
+static VTBL_ENTRY alt_thunk_names1096[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11702 = { "ee11702", // class name
+ bases_ee11702, 4,
+ &(vtc_ee11702[0]), // expected_vtbl_contents
+ &(vtt_ee11702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11702),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1096,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21702 : dd1702 {
+ int e;
+ virtual void foo(); // _ZN7ee217023fooEv
+ ~ee21702(); // tgen
+ ee21702(); // tgen
+};
+//SIG(1 ee21702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21702 ::foo(){vfunc_called(this, "_ZN7ee217023fooEv");}
+ee21702 ::~ee21702(){ note_dtor("ee21702", this);} // tgen
+ee21702 ::ee21702(){ note_ctor("ee21702", this);} // tgen
+
+static void Test_ee21702()
+{
+ extern Class_Descriptor cd_ee21702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21702, buf);
+ ee21702 *dp, &lv = *(dp=new (buf) ee21702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee21702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee21702");
+ check_base_class_offset(lv, (cc702*)(dd1702*), ABISELECT(16,12), "ee21702");
+ check_base_class_offset(lv, (dd1702*), 0, "ee21702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21702.e");
+ test_class_info(&lv, &cd_ee21702);
+ dp->~ee21702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21702(Test_ee21702, "ee21702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21702C1Ev();
+extern void _ZN7ee21702D1Ev();
+Name_Map name_map_ee21702[] = {
+ NSPAIR(_ZN7ee21702C1Ev),
+ NSPAIR(_ZN7ee21702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd1702;
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static Base_Class bases_ee21702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21702[];
+extern void _ZN7ee217023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee217023fooEv,_ZTv0_n16_N7ee217023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217023fooEv,_ZThn12_N7ee217023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee217023fooEv,_ZTv0_n12_N7ee217023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee217023fooEv,_ZThn20_N7ee217023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21702[0]),
+ (VTBL_ENTRY)&_ZN7ee217023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee217023fooEv,_ZTv0_n16_N7ee217023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217023fooEv,_ZTv0_n12_N7ee217023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21702[];
+static VTBL_ENTRY _tg__ZTV6dd1702__7ee21702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702__7ee21702[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1702__7ee21702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee21702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee21702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee21702[] = {
+ {&(_ZTV7ee21702[4]), 4,18},
+ {&(_tg__ZTV6dd1702__7ee21702[4]), 4,4},
+ {&(_tg__ZTV5cc702__6dd1702__7ee21702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd1702__7ee21702[4]), 4,6},
+ {&(_ZTV7ee21702[10]), 10,18},
+ {&(_ZTV7ee21702[16]), 16,18},
+ {&(_tg__ZTV5cc702__7ee21702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee21702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21702[];
+extern VTBL_ENTRY _ZTV7ee21702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21702[];
+static VTBL_ENTRY alt_thunk_names1097[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217023fooEv,_ZTv0_n12_N7ee217023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee217023fooEv,_ZThn20_N7ee217023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee217023fooEv,_ZTv0_n16_N7ee217023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217023fooEv,_ZThn12_N7ee217023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21702 = { "ee21702", // class name
+ bases_ee21702, 4,
+ &(vtc_ee21702[0]), // expected_vtbl_contents
+ &(vtt_ee21702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1097,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31702 : virtual dd1702 {
+ int e;
+ virtual void foo(); // _ZN7ee317023fooEv
+ ~ee31702(); // tgen
+ ee31702(); // tgen
+};
+//SIG(1 ee31702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31702 ::foo(){vfunc_called(this, "_ZN7ee317023fooEv");}
+ee31702 ::~ee31702(){ note_dtor("ee31702", this);} // tgen
+ee31702 ::ee31702(){ note_ctor("ee31702", this);} // tgen
+
+static void Test_ee31702()
+{
+ extern Class_Descriptor cd_ee31702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31702, buf);
+ ee31702 *dp, &lv = *(dp=new (buf) ee31702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee31702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee31702");
+ check_base_class_offset(lv, (cc702*)(dd1702*), ABISELECT(32,16), "ee31702");
+ check_base_class_offset(lv, (dd1702*), ABISELECT(16,8), "ee31702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31702.e");
+ test_class_info(&lv, &cd_ee31702);
+ dp->~ee31702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31702(Test_ee31702, "ee31702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31702C1Ev();
+extern void _ZN7ee31702D1Ev();
+Name_Map name_map_ee31702[] = {
+ NSPAIR(_ZN7ee31702C1Ev),
+ NSPAIR(_ZN7ee31702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd1702;
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static Base_Class bases_ee31702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31702[];
+extern void _ZN7ee317023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee317023fooEv,_ZTv0_n16_N7ee317023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317023fooEv,_ZThn16_N7ee317023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee317023fooEv,_ZTv0_n12_N7ee317023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee317023fooEv,_ZThn24_N7ee317023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31702[0]),
+ (VTBL_ENTRY)&_ZN7ee317023fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31702[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee317023fooEv,_ZTv0_n16_N7ee317023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317023fooEv,_ZTv0_n12_N7ee317023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31702[];
+static VTBL_ENTRY _tg__ZTV6dd1702__7ee31702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702__7ee31702[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1702__7ee31702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee31702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee31702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee31702[] = {
+ {&(_ZTV7ee31702[5]), 5,23},
+ {&(_ZTV7ee31702[10]), 10,23},
+ {&(_ZTV7ee31702[15]), 15,23},
+ {&(_ZTV7ee31702[21]), 21,23},
+ {&(_tg__ZTV6dd1702__7ee31702[4]), 4,4},
+ {&(_tg__ZTV5cc702__6dd1702__7ee31702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd1702__7ee31702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee31702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee31702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31702[];
+extern VTBL_ENTRY _ZTV7ee31702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31702[];
+static VTBL_ENTRY alt_thunk_names1098[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317023fooEv,_ZTv0_n12_N7ee317023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee317023fooEv,_ZThn24_N7ee317023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee317023fooEv,_ZTv0_n16_N7ee317023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317023fooEv,_ZThn16_N7ee317023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31702 = { "ee31702", // class name
+ bases_ee31702, 4,
+ &(vtc_ee31702[0]), // expected_vtbl_contents
+ &(vtt_ee31702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31702),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1098,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41702 : dd1702 {
+ int e;
+ virtual void bar(); // _ZN7ee417023barEv
+ ~ee41702(); // tgen
+ ee41702(); // tgen
+};
+//SIG(1 ee41702) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41702 ::bar(){vfunc_called(this, "_ZN7ee417023barEv");}
+ee41702 ::~ee41702(){ note_dtor("ee41702", this);} // tgen
+ee41702 ::ee41702(){ note_ctor("ee41702", this);} // tgen
+
+static void Test_ee41702()
+{
+ extern Class_Descriptor cd_ee41702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41702, buf);
+ ee41702 *dp, &lv = *(dp=new (buf) ee41702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee41702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee41702");
+ check_base_class_offset(lv, (cc702*)(dd1702*), ABISELECT(16,12), "ee41702");
+ check_base_class_offset(lv, (dd1702*), 0, "ee41702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41702.e");
+ test_class_info(&lv, &cd_ee41702);
+ dp->~ee41702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41702(Test_ee41702, "ee41702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41702C1Ev();
+extern void _ZN7ee41702D1Ev();
+Name_Map name_map_ee41702[] = {
+ NSPAIR(_ZN7ee41702C1Ev),
+ NSPAIR(_ZN7ee41702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd1702;
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static Base_Class bases_ee41702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41702[];
+extern void _ZN7ee417023barEv();
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee417023barEv,_ZTv0_n20_N7ee417023barEv)();
+extern void ABISELECT(_ZThn16_N7ee417023barEv,_ZThn12_N7ee417023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee417023barEv,_ZTv0_n16_N7ee417023barEv)();
+extern void ABISELECT(_ZThn32_N7ee417023barEv,_ZThn20_N7ee417023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41702[0]),
+ (VTBL_ENTRY)&_ZN7ee417023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee417023barEv,_ZTv0_n20_N7ee417023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee417023barEv,_ZTv0_n16_N7ee417023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41702[];
+static VTBL_ENTRY _tg__ZTV6dd1702__7ee41702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702__7ee41702[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1702__7ee41702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee41702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee41702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee41702[] = {
+ {&(_ZTV7ee41702[4]), 4,18},
+ {&(_tg__ZTV6dd1702__7ee41702[4]), 4,4},
+ {&(_tg__ZTV5cc702__6dd1702__7ee41702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd1702__7ee41702[4]), 4,6},
+ {&(_ZTV7ee41702[10]), 10,18},
+ {&(_ZTV7ee41702[16]), 16,18},
+ {&(_tg__ZTV5cc702__7ee41702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee41702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41702[];
+extern VTBL_ENTRY _ZTV7ee41702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41702[];
+static VTBL_ENTRY alt_thunk_names1099[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee417023barEv,_ZTv0_n16_N7ee417023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee417023barEv,_ZThn20_N7ee417023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee417023barEv,_ZTv0_n20_N7ee417023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417023barEv,_ZThn12_N7ee417023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41702 = { "ee41702", // class name
+ bases_ee41702, 4,
+ &(vtc_ee41702[0]), // expected_vtbl_contents
+ &(vtt_ee41702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1099,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51702 : virtual dd1702 {
+ int e;
+ virtual void bar(); // _ZN7ee517023barEv
+ ~ee51702(); // tgen
+ ee51702(); // tgen
+};
+//SIG(1 ee51702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51702 ::bar(){vfunc_called(this, "_ZN7ee517023barEv");}
+ee51702 ::~ee51702(){ note_dtor("ee51702", this);} // tgen
+ee51702 ::ee51702(){ note_ctor("ee51702", this);} // tgen
+
+static void Test_ee51702()
+{
+ extern Class_Descriptor cd_ee51702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51702, buf);
+ ee51702 *dp, &lv = *(dp=new (buf) ee51702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee51702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee51702");
+ check_base_class_offset(lv, (cc702*)(dd1702*), ABISELECT(32,16), "ee51702");
+ check_base_class_offset(lv, (dd1702*), ABISELECT(16,8), "ee51702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51702.e");
+ test_class_info(&lv, &cd_ee51702);
+ dp->~ee51702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51702(Test_ee51702, "ee51702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51702C1Ev();
+extern void _ZN7ee51702D1Ev();
+Name_Map name_map_ee51702[] = {
+ NSPAIR(_ZN7ee51702C1Ev),
+ NSPAIR(_ZN7ee51702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd1702;
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static Base_Class bases_ee51702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51702[];
+extern void _ZN7ee517023barEv();
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee517023barEv,_ZTv0_n20_N7ee517023barEv)();
+extern void ABISELECT(_ZThn32_N7ee517023barEv,_ZThn16_N7ee517023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee517023barEv,_ZTv0_n16_N7ee517023barEv)();
+extern void ABISELECT(_ZThn48_N7ee517023barEv,_ZThn24_N7ee517023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51702[0]),
+ (VTBL_ENTRY)&_ZN7ee517023barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51702[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee517023barEv,_ZTv0_n20_N7ee517023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee517023barEv,_ZTv0_n16_N7ee517023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51702[];
+static VTBL_ENTRY _tg__ZTV6dd1702__7ee51702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702__7ee51702[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1702__7ee51702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee51702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee51702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee51702[] = {
+ {&(_ZTV7ee51702[5]), 5,23},
+ {&(_ZTV7ee51702[10]), 10,23},
+ {&(_ZTV7ee51702[15]), 15,23},
+ {&(_ZTV7ee51702[21]), 21,23},
+ {&(_tg__ZTV6dd1702__7ee51702[4]), 4,4},
+ {&(_tg__ZTV5cc702__6dd1702__7ee51702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd1702__7ee51702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee51702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee51702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51702[];
+extern VTBL_ENTRY _ZTV7ee51702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51702[];
+static VTBL_ENTRY alt_thunk_names1100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee517023barEv,_ZTv0_n16_N7ee517023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee517023barEv,_ZThn24_N7ee517023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee517023barEv,_ZTv0_n20_N7ee517023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517023barEv,_ZThn16_N7ee517023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51702 = { "ee51702", // class name
+ bases_ee51702, 4,
+ &(vtc_ee51702[0]), // expected_vtbl_contents
+ &(vtt_ee51702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51702),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1100,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61702 : dd1702 {
+ int e;
+ virtual void foo(); // _ZN7ee617023fooEv
+ virtual void bar(); // _ZN7ee617023barEv
+ ~ee61702(); // tgen
+ ee61702(); // tgen
+};
+//SIG(1 ee61702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61702 ::foo(){vfunc_called(this, "_ZN7ee617023fooEv");}
+void ee61702 ::bar(){vfunc_called(this, "_ZN7ee617023barEv");}
+ee61702 ::~ee61702(){ note_dtor("ee61702", this);} // tgen
+ee61702 ::ee61702(){ note_ctor("ee61702", this);} // tgen
+
+static void Test_ee61702()
+{
+ extern Class_Descriptor cd_ee61702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61702, buf);
+ ee61702 *dp, &lv = *(dp=new (buf) ee61702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee61702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee61702");
+ check_base_class_offset(lv, (cc702*)(dd1702*), ABISELECT(16,12), "ee61702");
+ check_base_class_offset(lv, (dd1702*), 0, "ee61702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61702.e");
+ test_class_info(&lv, &cd_ee61702);
+ dp->~ee61702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61702(Test_ee61702, "ee61702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61702C1Ev();
+extern void _ZN7ee61702D1Ev();
+Name_Map name_map_ee61702[] = {
+ NSPAIR(_ZN7ee61702C1Ev),
+ NSPAIR(_ZN7ee61702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd1702;
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static Base_Class bases_ee61702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61702[];
+extern void _ZN7ee617023fooEv();
+extern void _ZN7ee617023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee617023fooEv,_ZTv0_n16_N7ee617023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617023fooEv,_ZThn12_N7ee617023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee617023barEv,_ZTv0_n20_N7ee617023barEv)();
+extern void ABISELECT(_ZThn16_N7ee617023barEv,_ZThn12_N7ee617023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617023fooEv,_ZTv0_n12_N7ee617023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee617023fooEv,_ZThn20_N7ee617023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617023barEv,_ZTv0_n16_N7ee617023barEv)();
+extern void ABISELECT(_ZThn32_N7ee617023barEv,_ZThn20_N7ee617023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61702[0]),
+ (VTBL_ENTRY)&_ZN7ee617023fooEv,
+ (VTBL_ENTRY)&_ZN7ee617023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617023fooEv,_ZTv0_n16_N7ee617023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617023barEv,_ZTv0_n20_N7ee617023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617023fooEv,_ZTv0_n12_N7ee617023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617023barEv,_ZTv0_n16_N7ee617023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61702[];
+static VTBL_ENTRY _tg__ZTV6dd1702__7ee61702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702__7ee61702[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1702__7ee61702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee61702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee61702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee61702[] = {
+ {&(_ZTV7ee61702[4]), 4,19},
+ {&(_tg__ZTV6dd1702__7ee61702[4]), 4,4},
+ {&(_tg__ZTV5cc702__6dd1702__7ee61702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd1702__7ee61702[4]), 4,6},
+ {&(_ZTV7ee61702[11]), 11,19},
+ {&(_ZTV7ee61702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee61702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee61702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61702[];
+extern VTBL_ENTRY _ZTV7ee61702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61702[];
+static VTBL_ENTRY alt_thunk_names1101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617023barEv,_ZTv0_n16_N7ee617023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617023barEv,_ZThn20_N7ee617023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617023fooEv,_ZTv0_n12_N7ee617023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617023fooEv,_ZThn20_N7ee617023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617023barEv,_ZTv0_n20_N7ee617023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617023barEv,_ZThn12_N7ee617023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617023fooEv,_ZTv0_n16_N7ee617023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617023fooEv,_ZThn12_N7ee617023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61702 = { "ee61702", // class name
+ bases_ee61702, 4,
+ &(vtc_ee61702[0]), // expected_vtbl_contents
+ &(vtt_ee61702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1101,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71702 : virtual dd1702 {
+ int e;
+ virtual void foo(); // _ZN7ee717023fooEv
+ virtual void bar(); // _ZN7ee717023barEv
+ ~ee71702(); // tgen
+ ee71702(); // tgen
+};
+//SIG(1 ee71702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71702 ::foo(){vfunc_called(this, "_ZN7ee717023fooEv");}
+void ee71702 ::bar(){vfunc_called(this, "_ZN7ee717023barEv");}
+ee71702 ::~ee71702(){ note_dtor("ee71702", this);} // tgen
+ee71702 ::ee71702(){ note_ctor("ee71702", this);} // tgen
+
+static void Test_ee71702()
+{
+ extern Class_Descriptor cd_ee71702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71702, buf);
+ ee71702 *dp, &lv = *(dp=new (buf) ee71702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee71702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee71702");
+ check_base_class_offset(lv, (cc702*)(dd1702*), ABISELECT(32,16), "ee71702");
+ check_base_class_offset(lv, (dd1702*), ABISELECT(16,8), "ee71702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71702.e");
+ test_class_info(&lv, &cd_ee71702);
+ dp->~ee71702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71702(Test_ee71702, "ee71702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71702C1Ev();
+extern void _ZN7ee71702D1Ev();
+Name_Map name_map_ee71702[] = {
+ NSPAIR(_ZN7ee71702C1Ev),
+ NSPAIR(_ZN7ee71702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd1702;
+extern VTBL_ENTRY _ZTI6dd1702[];
+extern VTBL_ENTRY _ZTV6dd1702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1702[];
+static Base_Class bases_ee71702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1702, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71702[];
+extern void _ZN7ee717023fooEv();
+extern void _ZN7ee717023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee717023fooEv,_ZTv0_n16_N7ee717023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717023fooEv,_ZThn16_N7ee717023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee717023barEv,_ZTv0_n20_N7ee717023barEv)();
+extern void ABISELECT(_ZThn32_N7ee717023barEv,_ZThn16_N7ee717023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717023fooEv,_ZTv0_n12_N7ee717023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee717023fooEv,_ZThn24_N7ee717023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717023barEv,_ZTv0_n16_N7ee717023barEv)();
+extern void ABISELECT(_ZThn48_N7ee717023barEv,_ZThn24_N7ee717023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71702[0]),
+ (VTBL_ENTRY)&_ZN7ee717023fooEv,
+ (VTBL_ENTRY)&_ZN7ee717023barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71702[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717023fooEv,_ZTv0_n16_N7ee717023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717023barEv,_ZTv0_n20_N7ee717023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717023fooEv,_ZTv0_n12_N7ee717023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717023barEv,_ZTv0_n16_N7ee717023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71702[];
+static VTBL_ENTRY _tg__ZTV6dd1702__7ee71702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd1702__7ee71702[] = {
+ 0,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd1702__7ee71702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee71702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee71702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee71702[] = {
+ {&(_ZTV7ee71702[5]), 5,24},
+ {&(_ZTV7ee71702[11]), 11,24},
+ {&(_ZTV7ee71702[16]), 16,24},
+ {&(_ZTV7ee71702[22]), 22,24},
+ {&(_tg__ZTV6dd1702__7ee71702[4]), 4,4},
+ {&(_tg__ZTV5cc702__6dd1702__7ee71702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd1702__7ee71702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee71702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee71702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71702[];
+extern VTBL_ENTRY _ZTV7ee71702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71702[];
+static VTBL_ENTRY alt_thunk_names1102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717023barEv,_ZTv0_n16_N7ee717023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717023barEv,_ZThn24_N7ee717023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717023fooEv,_ZTv0_n12_N7ee717023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717023fooEv,_ZThn24_N7ee717023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717023barEv,_ZTv0_n20_N7ee717023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717023barEv,_ZThn16_N7ee717023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717023fooEv,_ZTv0_n16_N7ee717023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717023fooEv,_ZThn16_N7ee717023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71702 = { "ee71702", // class name
+ bases_ee71702, 4,
+ &(vtc_ee71702[0]), // expected_vtbl_contents
+ &(vtt_ee71702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71702),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1102,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2702 : cc702 {
+ int d;
+ virtual void foo(); // _ZN6dd27023fooEv
+ ~dd2702(); // tgen
+ dd2702(); // tgen
+};
+//SIG(-1 dd2702) C1{ BC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2702 ::foo(){vfunc_called(this, "_ZN6dd27023fooEv");}
+dd2702 ::~dd2702(){ note_dtor("dd2702", this);} // tgen
+dd2702 ::dd2702(){ note_ctor("dd2702", this);} // tgen
+
+static void Test_dd2702()
+{
+ extern Class_Descriptor cd_dd2702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2702, buf);
+ dd2702 *dp, &lv = *(dp=new (buf) dd2702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd2702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(16,12), "dd2702");
+ check_base_class_offset(lv, (cc702*), 0, "dd2702");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2702.d");
+ test_class_info(&lv, &cd_dd2702);
+ dp->~dd2702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2702(Test_dd2702, "dd2702", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2702C1Ev();
+extern void _ZN6dd2702D1Ev();
+Name_Map name_map_dd2702[] = {
+ NSPAIR(_ZN6dd2702C1Ev),
+ NSPAIR(_ZN6dd2702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static Base_Class bases_dd2702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd2702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd2702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__6dd2702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_dd2702[] = {
+ {&(_ZTV6dd2702[3]), 3,11},
+ {&(_tg__ZTV5cc702__6dd2702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__6dd2702[4]), 4,6},
+ {&(_ZTV6dd2702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static VTBL_ENTRY alt_thunk_names1103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2702 = { "dd2702", // class name
+ bases_dd2702, 3,
+ &(vtc_dd2702[0]), // expected_vtbl_contents
+ &(vtt_dd2702[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2702),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02702 : dd2702 {
+ int e;
+ ~ee02702(); // tgen
+ ee02702(); // tgen
+};
+//SIG(1 ee02702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02702 ::~ee02702(){ note_dtor("ee02702", this);} // tgen
+ee02702 ::ee02702(){ note_ctor("ee02702", this);} // tgen
+
+static void Test_ee02702()
+{
+ extern Class_Descriptor cd_ee02702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02702, buf);
+ ee02702 *dp, &lv = *(dp=new (buf) ee02702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee02702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd2702*), ABISELECT(24,16), "ee02702");
+ check_base_class_offset(lv, (cc702*)(dd2702*), 0, "ee02702");
+ check_base_class_offset(lv, (dd2702*), 0, "ee02702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02702.e");
+ test_class_info(&lv, &cd_ee02702);
+ dp->~ee02702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02702(Test_ee02702, "ee02702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02702C1Ev();
+extern void _ZN7ee02702D1Ev();
+Name_Map name_map_ee02702[] = {
+ NSPAIR(_ZN7ee02702C1Ev),
+ NSPAIR(_ZN7ee02702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd2702;
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static Base_Class bases_ee02702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd2702__7ee02702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd2702__7ee02702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd2702__7ee02702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2702__7ee02702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee02702[] = {
+ {&(_ZTV7ee02702[3]), 3,11},
+ {&(_tg__ZTV6dd2702__7ee02702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd2702__7ee02702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd2702__7ee02702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2702__7ee02702[4]), 4,6},
+ {&(_ZTV7ee02702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02702[];
+extern VTBL_ENTRY _ZTV7ee02702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02702[];
+static VTBL_ENTRY alt_thunk_names1104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02702 = { "ee02702", // class name
+ bases_ee02702, 4,
+ &(vtc_ee02702[0]), // expected_vtbl_contents
+ &(vtt_ee02702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1104,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12702 : virtual dd2702 {
+ int e;
+ ~ee12702(); // tgen
+ ee12702(); // tgen
+};
+//SIG(1 ee12702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12702 ::~ee12702(){ note_dtor("ee12702", this);} // tgen
+ee12702 ::ee12702(){ note_ctor("ee12702", this);} // tgen
+
+static void Test_ee12702()
+{
+ extern Class_Descriptor cd_ee12702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12702, buf);
+ ee12702 *dp, &lv = *(dp=new (buf) ee12702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee12702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd2702*), ABISELECT(32,20), "ee12702");
+ check_base_class_offset(lv, (cc702*)(dd2702*), ABISELECT(16,8), "ee12702");
+ check_base_class_offset(lv, (dd2702*), ABISELECT(16,8), "ee12702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12702.e");
+ test_class_info(&lv, &cd_ee12702);
+ dp->~ee12702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12702(Test_ee12702, "ee12702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12702C1Ev();
+extern void _ZN7ee12702D1Ev();
+Name_Map name_map_ee12702[] = {
+ NSPAIR(_ZN7ee12702C1Ev),
+ NSPAIR(_ZN7ee12702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd2702;
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static Base_Class bases_ee12702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2702, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12702[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd2702__7ee12702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd2702__7ee12702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd2702__7ee12702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2702__7ee12702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee12702[] = {
+ {&(_ZTV7ee12702[4]), 4,17},
+ {&(_ZTV7ee12702[9]), 9,17},
+ {&(_ZTV7ee12702[15]), 15,17},
+ {&(_tg__ZTV6dd2702__7ee12702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd2702__7ee12702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd2702__7ee12702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2702__7ee12702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12702[];
+extern VTBL_ENTRY _ZTV7ee12702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12702[];
+static VTBL_ENTRY alt_thunk_names1105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12702 = { "ee12702", // class name
+ bases_ee12702, 4,
+ &(vtc_ee12702[0]), // expected_vtbl_contents
+ &(vtt_ee12702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12702),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1105,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22702 : dd2702 {
+ int e;
+ virtual void foo(); // _ZN7ee227023fooEv
+ ~ee22702(); // tgen
+ ee22702(); // tgen
+};
+//SIG(1 ee22702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22702 ::foo(){vfunc_called(this, "_ZN7ee227023fooEv");}
+ee22702 ::~ee22702(){ note_dtor("ee22702", this);} // tgen
+ee22702 ::ee22702(){ note_ctor("ee22702", this);} // tgen
+
+static void Test_ee22702()
+{
+ extern Class_Descriptor cd_ee22702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22702, buf);
+ ee22702 *dp, &lv = *(dp=new (buf) ee22702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee22702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd2702*), ABISELECT(24,16), "ee22702");
+ check_base_class_offset(lv, (cc702*)(dd2702*), 0, "ee22702");
+ check_base_class_offset(lv, (dd2702*), 0, "ee22702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22702.e");
+ test_class_info(&lv, &cd_ee22702);
+ dp->~ee22702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22702(Test_ee22702, "ee22702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22702C1Ev();
+extern void _ZN7ee22702D1Ev();
+Name_Map name_map_ee22702[] = {
+ NSPAIR(_ZN7ee22702C1Ev),
+ NSPAIR(_ZN7ee22702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd2702;
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static Base_Class bases_ee22702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22702[];
+extern void _ZN7ee227023fooEv();
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee227023fooEv,_ZTv0_n12_N7ee227023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee227023fooEv,_ZThn16_N7ee227023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22702[0]),
+ (VTBL_ENTRY)&_ZN7ee227023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227023fooEv,_ZTv0_n12_N7ee227023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd2702__7ee22702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd2702__7ee22702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd2702__7ee22702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2702__7ee22702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee22702[] = {
+ {&(_ZTV7ee22702[3]), 3,11},
+ {&(_tg__ZTV6dd2702__7ee22702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd2702__7ee22702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd2702__7ee22702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2702__7ee22702[4]), 4,6},
+ {&(_ZTV7ee22702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22702[];
+extern VTBL_ENTRY _ZTV7ee22702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22702[];
+static VTBL_ENTRY alt_thunk_names1106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227023fooEv,_ZTv0_n12_N7ee227023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee227023fooEv,_ZThn16_N7ee227023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22702 = { "ee22702", // class name
+ bases_ee22702, 4,
+ &(vtc_ee22702[0]), // expected_vtbl_contents
+ &(vtt_ee22702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1106,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32702 : virtual dd2702 {
+ int e;
+ virtual void foo(); // _ZN7ee327023fooEv
+ ~ee32702(); // tgen
+ ee32702(); // tgen
+};
+//SIG(1 ee32702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32702 ::foo(){vfunc_called(this, "_ZN7ee327023fooEv");}
+ee32702 ::~ee32702(){ note_dtor("ee32702", this);} // tgen
+ee32702 ::ee32702(){ note_ctor("ee32702", this);} // tgen
+
+static void Test_ee32702()
+{
+ extern Class_Descriptor cd_ee32702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32702, buf);
+ ee32702 *dp, &lv = *(dp=new (buf) ee32702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee32702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd2702*), ABISELECT(32,20), "ee32702");
+ check_base_class_offset(lv, (cc702*)(dd2702*), ABISELECT(16,8), "ee32702");
+ check_base_class_offset(lv, (dd2702*), ABISELECT(16,8), "ee32702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32702.e");
+ test_class_info(&lv, &cd_ee32702);
+ dp->~ee32702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32702(Test_ee32702, "ee32702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32702C1Ev();
+extern void _ZN7ee32702D1Ev();
+Name_Map name_map_ee32702[] = {
+ NSPAIR(_ZN7ee32702C1Ev),
+ NSPAIR(_ZN7ee32702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd2702;
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static Base_Class bases_ee32702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32702[];
+extern void _ZN7ee327023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee327023fooEv,_ZTv0_n16_N7ee327023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327023fooEv,_ZThn8_N7ee327023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee327023fooEv,_ZTv0_n12_N7ee327023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee327023fooEv,_ZThn20_N7ee327023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32702[0]),
+ (VTBL_ENTRY)&_ZN7ee327023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee327023fooEv,_ZTv0_n16_N7ee327023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327023fooEv,_ZTv0_n12_N7ee327023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd2702__7ee32702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd2702__7ee32702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd2702__7ee32702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2702__7ee32702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee32702[] = {
+ {&(_ZTV7ee32702[4]), 4,18},
+ {&(_ZTV7ee32702[10]), 10,18},
+ {&(_ZTV7ee32702[16]), 16,18},
+ {&(_tg__ZTV6dd2702__7ee32702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd2702__7ee32702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd2702__7ee32702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2702__7ee32702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32702[];
+extern VTBL_ENTRY _ZTV7ee32702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32702[];
+static VTBL_ENTRY alt_thunk_names1107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327023fooEv,_ZTv0_n12_N7ee327023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee327023fooEv,_ZThn20_N7ee327023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee327023fooEv,_ZTv0_n16_N7ee327023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327023fooEv,_ZThn8_N7ee327023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32702 = { "ee32702", // class name
+ bases_ee32702, 4,
+ &(vtc_ee32702[0]), // expected_vtbl_contents
+ &(vtt_ee32702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1107,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42702 : dd2702 {
+ int e;
+ virtual void bar(); // _ZN7ee427023barEv
+ ~ee42702(); // tgen
+ ee42702(); // tgen
+};
+//SIG(1 ee42702) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42702 ::bar(){vfunc_called(this, "_ZN7ee427023barEv");}
+ee42702 ::~ee42702(){ note_dtor("ee42702", this);} // tgen
+ee42702 ::ee42702(){ note_ctor("ee42702", this);} // tgen
+
+static void Test_ee42702()
+{
+ extern Class_Descriptor cd_ee42702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42702, buf);
+ ee42702 *dp, &lv = *(dp=new (buf) ee42702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee42702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd2702*), ABISELECT(24,16), "ee42702");
+ check_base_class_offset(lv, (cc702*)(dd2702*), 0, "ee42702");
+ check_base_class_offset(lv, (dd2702*), 0, "ee42702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42702.e");
+ test_class_info(&lv, &cd_ee42702);
+ dp->~ee42702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42702(Test_ee42702, "ee42702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42702C1Ev();
+extern void _ZN7ee42702D1Ev();
+Name_Map name_map_ee42702[] = {
+ NSPAIR(_ZN7ee42702C1Ev),
+ NSPAIR(_ZN7ee42702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd2702;
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static Base_Class bases_ee42702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN7ee427023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee427023barEv,_ZTv0_n16_N7ee427023barEv)();
+extern void ABISELECT(_ZThn24_N7ee427023barEv,_ZThn16_N7ee427023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN7ee427023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee427023barEv,_ZTv0_n16_N7ee427023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd2702__7ee42702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd2702__7ee42702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd2702__7ee42702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2702__7ee42702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee42702[] = {
+ {&(_ZTV7ee42702[3]), 3,11},
+ {&(_tg__ZTV6dd2702__7ee42702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd2702__7ee42702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd2702__7ee42702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2702__7ee42702[4]), 4,6},
+ {&(_ZTV7ee42702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42702[];
+extern VTBL_ENTRY _ZTV7ee42702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42702[];
+static VTBL_ENTRY alt_thunk_names1108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee427023barEv,_ZTv0_n16_N7ee427023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee427023barEv,_ZThn16_N7ee427023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42702 = { "ee42702", // class name
+ bases_ee42702, 4,
+ &(vtc_ee42702[0]), // expected_vtbl_contents
+ &(vtt_ee42702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1108,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52702 : virtual dd2702 {
+ int e;
+ virtual void bar(); // _ZN7ee527023barEv
+ ~ee52702(); // tgen
+ ee52702(); // tgen
+};
+//SIG(1 ee52702) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52702 ::bar(){vfunc_called(this, "_ZN7ee527023barEv");}
+ee52702 ::~ee52702(){ note_dtor("ee52702", this);} // tgen
+ee52702 ::ee52702(){ note_ctor("ee52702", this);} // tgen
+
+static void Test_ee52702()
+{
+ extern Class_Descriptor cd_ee52702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52702, buf);
+ ee52702 *dp, &lv = *(dp=new (buf) ee52702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee52702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd2702*), ABISELECT(32,20), "ee52702");
+ check_base_class_offset(lv, (cc702*)(dd2702*), ABISELECT(16,8), "ee52702");
+ check_base_class_offset(lv, (dd2702*), ABISELECT(16,8), "ee52702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52702.e");
+ test_class_info(&lv, &cd_ee52702);
+ dp->~ee52702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52702(Test_ee52702, "ee52702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52702C1Ev();
+extern void _ZN7ee52702D1Ev();
+Name_Map name_map_ee52702[] = {
+ NSPAIR(_ZN7ee52702C1Ev),
+ NSPAIR(_ZN7ee52702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd2702;
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static Base_Class bases_ee52702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52702[];
+extern void _ZN7ee527023barEv();
+extern void _ZN6dd27023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee527023barEv,_ZTv0_n20_N7ee527023barEv)();
+extern void ABISELECT(_ZThn16_N7ee527023barEv,_ZThn8_N7ee527023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee527023barEv,_ZTv0_n16_N7ee527023barEv)();
+extern void ABISELECT(_ZThn32_N7ee527023barEv,_ZThn20_N7ee527023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52702[0]),
+ (VTBL_ENTRY)&_ZN7ee527023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee527023barEv,_ZTv0_n20_N7ee527023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee527023barEv,_ZTv0_n16_N7ee527023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd2702__7ee52702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd2702__7ee52702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd2702__7ee52702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2702__7ee52702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee52702[] = {
+ {&(_ZTV7ee52702[4]), 4,18},
+ {&(_ZTV7ee52702[10]), 10,18},
+ {&(_ZTV7ee52702[16]), 16,18},
+ {&(_tg__ZTV6dd2702__7ee52702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd2702__7ee52702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd2702__7ee52702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2702__7ee52702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52702[];
+extern VTBL_ENTRY _ZTV7ee52702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52702[];
+static VTBL_ENTRY alt_thunk_names1109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee527023barEv,_ZTv0_n16_N7ee527023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee527023barEv,_ZThn20_N7ee527023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee527023barEv,_ZTv0_n20_N7ee527023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527023barEv,_ZThn8_N7ee527023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52702 = { "ee52702", // class name
+ bases_ee52702, 4,
+ &(vtc_ee52702[0]), // expected_vtbl_contents
+ &(vtt_ee52702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1109,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62702 : dd2702 {
+ int e;
+ virtual void foo(); // _ZN7ee627023fooEv
+ virtual void bar(); // _ZN7ee627023barEv
+ ~ee62702(); // tgen
+ ee62702(); // tgen
+};
+//SIG(1 ee62702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62702 ::foo(){vfunc_called(this, "_ZN7ee627023fooEv");}
+void ee62702 ::bar(){vfunc_called(this, "_ZN7ee627023barEv");}
+ee62702 ::~ee62702(){ note_dtor("ee62702", this);} // tgen
+ee62702 ::ee62702(){ note_ctor("ee62702", this);} // tgen
+
+static void Test_ee62702()
+{
+ extern Class_Descriptor cd_ee62702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62702, buf);
+ ee62702 *dp, &lv = *(dp=new (buf) ee62702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee62702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd2702*), ABISELECT(24,16), "ee62702");
+ check_base_class_offset(lv, (cc702*)(dd2702*), 0, "ee62702");
+ check_base_class_offset(lv, (dd2702*), 0, "ee62702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62702.e");
+ test_class_info(&lv, &cd_ee62702);
+ dp->~ee62702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62702(Test_ee62702, "ee62702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62702C1Ev();
+extern void _ZN7ee62702D1Ev();
+Name_Map name_map_ee62702[] = {
+ NSPAIR(_ZN7ee62702C1Ev),
+ NSPAIR(_ZN7ee62702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd2702;
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static Base_Class bases_ee62702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62702[];
+extern void _ZN7ee627023fooEv();
+extern void _ZN7ee627023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee627023fooEv,_ZTv0_n12_N7ee627023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee627023fooEv,_ZThn16_N7ee627023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee627023barEv,_ZTv0_n16_N7ee627023barEv)();
+extern void ABISELECT(_ZThn24_N7ee627023barEv,_ZThn16_N7ee627023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62702[0]),
+ (VTBL_ENTRY)&_ZN7ee627023fooEv,
+ (VTBL_ENTRY)&_ZN7ee627023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627023fooEv,_ZTv0_n12_N7ee627023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627023barEv,_ZTv0_n16_N7ee627023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd2702__7ee62702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd2702__7ee62702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd2702__7ee62702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2702__7ee62702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee62702[] = {
+ {&(_ZTV7ee62702[3]), 3,11},
+ {&(_tg__ZTV6dd2702__7ee62702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd2702__7ee62702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd2702__7ee62702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2702__7ee62702[4]), 4,6},
+ {&(_ZTV7ee62702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62702[];
+extern VTBL_ENTRY _ZTV7ee62702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62702[];
+static VTBL_ENTRY alt_thunk_names1110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd27023fooEv,_ZThn16_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee627023barEv,_ZTv0_n16_N7ee627023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627023barEv,_ZThn16_N7ee627023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627023fooEv,_ZTv0_n12_N7ee627023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627023fooEv,_ZThn16_N7ee627023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62702 = { "ee62702", // class name
+ bases_ee62702, 4,
+ &(vtc_ee62702[0]), // expected_vtbl_contents
+ &(vtt_ee62702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1110,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72702 : virtual dd2702 {
+ int e;
+ virtual void foo(); // _ZN7ee727023fooEv
+ virtual void bar(); // _ZN7ee727023barEv
+ ~ee72702(); // tgen
+ ee72702(); // tgen
+};
+//SIG(1 ee72702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72702 ::foo(){vfunc_called(this, "_ZN7ee727023fooEv");}
+void ee72702 ::bar(){vfunc_called(this, "_ZN7ee727023barEv");}
+ee72702 ::~ee72702(){ note_dtor("ee72702", this);} // tgen
+ee72702 ::ee72702(){ note_ctor("ee72702", this);} // tgen
+
+static void Test_ee72702()
+{
+ extern Class_Descriptor cd_ee72702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72702, buf);
+ ee72702 *dp, &lv = *(dp=new (buf) ee72702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee72702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd2702*), ABISELECT(32,20), "ee72702");
+ check_base_class_offset(lv, (cc702*)(dd2702*), ABISELECT(16,8), "ee72702");
+ check_base_class_offset(lv, (dd2702*), ABISELECT(16,8), "ee72702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72702.e");
+ test_class_info(&lv, &cd_ee72702);
+ dp->~ee72702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72702(Test_ee72702, "ee72702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72702C1Ev();
+extern void _ZN7ee72702D1Ev();
+Name_Map name_map_ee72702[] = {
+ NSPAIR(_ZN7ee72702C1Ev),
+ NSPAIR(_ZN7ee72702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd2702;
+extern VTBL_ENTRY _ZTI6dd2702[];
+extern VTBL_ENTRY _ZTV6dd2702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2702[];
+static Base_Class bases_ee72702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72702[];
+extern void _ZN7ee727023fooEv();
+extern void _ZN7ee727023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee727023fooEv,_ZTv0_n16_N7ee727023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727023fooEv,_ZThn8_N7ee727023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee727023barEv,_ZTv0_n20_N7ee727023barEv)();
+extern void ABISELECT(_ZThn16_N7ee727023barEv,_ZThn8_N7ee727023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727023fooEv,_ZTv0_n12_N7ee727023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee727023fooEv,_ZThn20_N7ee727023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727023barEv,_ZTv0_n16_N7ee727023barEv)();
+extern void ABISELECT(_ZThn32_N7ee727023barEv,_ZThn20_N7ee727023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72702[0]),
+ (VTBL_ENTRY)&_ZN7ee727023fooEv,
+ (VTBL_ENTRY)&_ZN7ee727023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727023fooEv,_ZTv0_n16_N7ee727023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727023barEv,_ZTv0_n20_N7ee727023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727023fooEv,_ZTv0_n12_N7ee727023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727023barEv,_ZTv0_n16_N7ee727023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72702[];
+extern void _ZN6dd27023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV6dd2702__7ee72702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&_ZN6dd27023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd2702__7ee72702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd2702__7ee72702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd2702__7ee72702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee72702[] = {
+ {&(_ZTV7ee72702[4]), 4,19},
+ {&(_ZTV7ee72702[11]), 11,19},
+ {&(_ZTV7ee72702[17]), 17,19},
+ {&(_tg__ZTV6dd2702__7ee72702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd2702__7ee72702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd2702__7ee72702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd2702__7ee72702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72702[];
+extern VTBL_ENTRY _ZTV7ee72702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72702[];
+static VTBL_ENTRY alt_thunk_names1111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27023fooEv,_ZTv0_n12_N6dd27023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd27023fooEv,_ZThn12_N6dd27023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727023barEv,_ZTv0_n16_N7ee727023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727023barEv,_ZThn20_N7ee727023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727023fooEv,_ZTv0_n12_N7ee727023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727023fooEv,_ZThn20_N7ee727023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727023barEv,_ZTv0_n20_N7ee727023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727023barEv,_ZThn8_N7ee727023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727023fooEv,_ZTv0_n16_N7ee727023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727023fooEv,_ZThn8_N7ee727023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72702 = { "ee72702", // class name
+ bases_ee72702, 4,
+ &(vtc_ee72702[0]), // expected_vtbl_contents
+ &(vtt_ee72702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1111,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3702 : virtual cc702 {
+ int d;
+ virtual void foo(); // _ZN6dd37023fooEv
+ ~dd3702(); // tgen
+ dd3702(); // tgen
+};
+//SIG(-1 dd3702) C1{ VBC2{ VBC3{ BC4{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3702 ::foo(){vfunc_called(this, "_ZN6dd37023fooEv");}
+dd3702 ::~dd3702(){ note_dtor("dd3702", this);} // tgen
+dd3702 ::dd3702(){ note_ctor("dd3702", this);} // tgen
+
+static void Test_dd3702()
+{
+ extern Class_Descriptor cd_dd3702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3702, buf);
+ dd3702 *dp, &lv = *(dp=new (buf) dd3702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd3702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,16), "dd3702");
+ check_base_class_offset(lv, (cc702*), ABISELECT(16,8), "dd3702");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3702.d");
+ test_class_info(&lv, &cd_dd3702);
+ dp->~dd3702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3702(Test_dd3702, "dd3702", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3702C1Ev();
+extern void _ZN6dd3702D1Ev();
+Name_Map name_map_dd3702[] = {
+ NSPAIR(_ZN6dd3702C1Ev),
+ NSPAIR(_ZN6dd3702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static Base_Class bases_dd3702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 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 _ZTI6dd3702[];
+extern void _ZN6dd37023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__6dd3702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_dd3702[] = {
+ {&(_ZTV6dd3702[4]), 4,18},
+ {&(_ZTV6dd3702[10]), 10,18},
+ {&(_ZTV6dd3702[16]), 16,18},
+ {&(_tg__ZTV5cc702__6dd3702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__6dd3702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static VTBL_ENTRY alt_thunk_names1112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3702 = { "dd3702", // class name
+ bases_dd3702, 3,
+ &(vtc_dd3702[0]), // expected_vtbl_contents
+ &(vtt_dd3702[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3702),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1112,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03702 : dd3702 {
+ int e;
+ ~ee03702(); // tgen
+ ee03702(); // tgen
+};
+//SIG(1 ee03702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03702 ::~ee03702(){ note_dtor("ee03702", this);} // tgen
+ee03702 ::ee03702(){ note_ctor("ee03702", this);} // tgen
+
+static void Test_ee03702()
+{
+ extern Class_Descriptor cd_ee03702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03702, buf);
+ ee03702 *dp, &lv = *(dp=new (buf) ee03702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee03702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee03702");
+ check_base_class_offset(lv, (cc702*)(dd3702*), ABISELECT(16,12), "ee03702");
+ check_base_class_offset(lv, (dd3702*), 0, "ee03702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03702.e");
+ test_class_info(&lv, &cd_ee03702);
+ dp->~ee03702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03702(Test_ee03702, "ee03702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03702C1Ev();
+extern void _ZN7ee03702D1Ev();
+Name_Map name_map_ee03702[] = {
+ NSPAIR(_ZN7ee03702C1Ev),
+ NSPAIR(_ZN7ee03702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd3702;
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static Base_Class bases_ee03702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03702[];
+extern void _ZN6dd37023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03702[];
+extern void _ZN6dd37023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3702__7ee03702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702__7ee03702[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3702__7ee03702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee03702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee03702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee03702[] = {
+ {&(_ZTV7ee03702[4]), 4,18},
+ {&(_tg__ZTV6dd3702__7ee03702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd3702__7ee03702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd3702__7ee03702[4]), 4,6},
+ {&(_ZTV7ee03702[10]), 10,18},
+ {&(_ZTV7ee03702[16]), 16,18},
+ {&(_tg__ZTV5cc702__7ee03702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee03702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03702[];
+extern VTBL_ENTRY _ZTV7ee03702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03702[];
+static VTBL_ENTRY alt_thunk_names1113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03702 = { "ee03702", // class name
+ bases_ee03702, 4,
+ &(vtc_ee03702[0]), // expected_vtbl_contents
+ &(vtt_ee03702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1113,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13702 : virtual dd3702 {
+ int e;
+ ~ee13702(); // tgen
+ ee13702(); // tgen
+};
+//SIG(1 ee13702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13702 ::~ee13702(){ note_dtor("ee13702", this);} // tgen
+ee13702 ::ee13702(){ note_ctor("ee13702", this);} // tgen
+
+static void Test_ee13702()
+{
+ extern Class_Descriptor cd_ee13702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13702, buf);
+ ee13702 *dp, &lv = *(dp=new (buf) ee13702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee13702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee13702");
+ check_base_class_offset(lv, (cc702*)(dd3702*), ABISELECT(32,16), "ee13702");
+ check_base_class_offset(lv, (dd3702*), ABISELECT(16,8), "ee13702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13702.e");
+ test_class_info(&lv, &cd_ee13702);
+ dp->~ee13702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13702(Test_ee13702, "ee13702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13702C1Ev();
+extern void _ZN7ee13702D1Ev();
+Name_Map name_map_ee13702[] = {
+ NSPAIR(_ZN7ee13702C1Ev),
+ NSPAIR(_ZN7ee13702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd3702;
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static Base_Class bases_ee13702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13702[];
+extern void _ZN6dd37023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13702[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13702[];
+extern void _ZN6dd37023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3702__7ee13702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702__7ee13702[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3702__7ee13702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee13702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee13702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee13702[] = {
+ {&(_ZTV7ee13702[5]), 5,24},
+ {&(_ZTV7ee13702[10]), 10,24},
+ {&(_ZTV7ee13702[16]), 16,24},
+ {&(_ZTV7ee13702[22]), 22,24},
+ {&(_tg__ZTV6dd3702__7ee13702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd3702__7ee13702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd3702__7ee13702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee13702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee13702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13702[];
+extern VTBL_ENTRY _ZTV7ee13702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13702[];
+static VTBL_ENTRY alt_thunk_names1114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13702 = { "ee13702", // class name
+ bases_ee13702, 4,
+ &(vtc_ee13702[0]), // expected_vtbl_contents
+ &(vtt_ee13702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13702),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1114,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23702 : dd3702 {
+ int e;
+ virtual void foo(); // _ZN7ee237023fooEv
+ ~ee23702(); // tgen
+ ee23702(); // tgen
+};
+//SIG(1 ee23702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23702 ::foo(){vfunc_called(this, "_ZN7ee237023fooEv");}
+ee23702 ::~ee23702(){ note_dtor("ee23702", this);} // tgen
+ee23702 ::ee23702(){ note_ctor("ee23702", this);} // tgen
+
+static void Test_ee23702()
+{
+ extern Class_Descriptor cd_ee23702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23702, buf);
+ ee23702 *dp, &lv = *(dp=new (buf) ee23702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee23702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee23702");
+ check_base_class_offset(lv, (cc702*)(dd3702*), ABISELECT(16,12), "ee23702");
+ check_base_class_offset(lv, (dd3702*), 0, "ee23702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23702.e");
+ test_class_info(&lv, &cd_ee23702);
+ dp->~ee23702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23702(Test_ee23702, "ee23702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23702C1Ev();
+extern void _ZN7ee23702D1Ev();
+Name_Map name_map_ee23702[] = {
+ NSPAIR(_ZN7ee23702C1Ev),
+ NSPAIR(_ZN7ee23702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd3702;
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static Base_Class bases_ee23702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23702[];
+extern void _ZN7ee237023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee237023fooEv,_ZTv0_n16_N7ee237023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237023fooEv,_ZThn12_N7ee237023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee237023fooEv,_ZTv0_n12_N7ee237023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee237023fooEv,_ZThn20_N7ee237023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23702[0]),
+ (VTBL_ENTRY)&_ZN7ee237023fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee237023fooEv,_ZTv0_n16_N7ee237023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237023fooEv,_ZTv0_n12_N7ee237023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23702[];
+extern void _ZN6dd37023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3702__7ee23702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702__7ee23702[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3702__7ee23702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee23702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee23702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee23702[] = {
+ {&(_ZTV7ee23702[4]), 4,18},
+ {&(_tg__ZTV6dd3702__7ee23702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd3702__7ee23702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd3702__7ee23702[4]), 4,6},
+ {&(_ZTV7ee23702[10]), 10,18},
+ {&(_ZTV7ee23702[16]), 16,18},
+ {&(_tg__ZTV5cc702__7ee23702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee23702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23702[];
+extern VTBL_ENTRY _ZTV7ee23702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23702[];
+static VTBL_ENTRY alt_thunk_names1115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237023fooEv,_ZTv0_n12_N7ee237023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee237023fooEv,_ZThn20_N7ee237023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee237023fooEv,_ZTv0_n16_N7ee237023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237023fooEv,_ZThn12_N7ee237023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23702 = { "ee23702", // class name
+ bases_ee23702, 4,
+ &(vtc_ee23702[0]), // expected_vtbl_contents
+ &(vtt_ee23702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1115,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33702 : virtual dd3702 {
+ int e;
+ virtual void foo(); // _ZN7ee337023fooEv
+ ~ee33702(); // tgen
+ ee33702(); // tgen
+};
+//SIG(1 ee33702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33702 ::foo(){vfunc_called(this, "_ZN7ee337023fooEv");}
+ee33702 ::~ee33702(){ note_dtor("ee33702", this);} // tgen
+ee33702 ::ee33702(){ note_ctor("ee33702", this);} // tgen
+
+static void Test_ee33702()
+{
+ extern Class_Descriptor cd_ee33702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33702, buf);
+ ee33702 *dp, &lv = *(dp=new (buf) ee33702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee33702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee33702");
+ check_base_class_offset(lv, (cc702*)(dd3702*), ABISELECT(32,16), "ee33702");
+ check_base_class_offset(lv, (dd3702*), ABISELECT(16,8), "ee33702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33702.e");
+ test_class_info(&lv, &cd_ee33702);
+ dp->~ee33702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33702(Test_ee33702, "ee33702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33702C1Ev();
+extern void _ZN7ee33702D1Ev();
+Name_Map name_map_ee33702[] = {
+ NSPAIR(_ZN7ee33702C1Ev),
+ NSPAIR(_ZN7ee33702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd3702;
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static Base_Class bases_ee33702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33702[];
+extern void _ZN7ee337023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee337023fooEv,_ZTv0_n20_N7ee337023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337023fooEv,_ZThn8_N7ee337023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee337023fooEv,_ZTv0_n16_N7ee337023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337023fooEv,_ZThn16_N7ee337023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee337023fooEv,_ZTv0_n12_N7ee337023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee337023fooEv,_ZThn24_N7ee337023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33702[0]),
+ (VTBL_ENTRY)&_ZN7ee337023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337023fooEv,_ZTv0_n20_N7ee337023fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee337023fooEv,_ZTv0_n16_N7ee337023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337023fooEv,_ZTv0_n12_N7ee337023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33702[];
+extern void _ZN6dd37023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3702__7ee33702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702__7ee33702[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3702__7ee33702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee33702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee33702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee33702[] = {
+ {&(_ZTV7ee33702[5]), 5,25},
+ {&(_ZTV7ee33702[11]), 11,25},
+ {&(_ZTV7ee33702[17]), 17,25},
+ {&(_ZTV7ee33702[23]), 23,25},
+ {&(_tg__ZTV6dd3702__7ee33702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd3702__7ee33702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd3702__7ee33702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee33702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee33702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33702[];
+extern VTBL_ENTRY _ZTV7ee33702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33702[];
+static VTBL_ENTRY alt_thunk_names1116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337023fooEv,_ZTv0_n12_N7ee337023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee337023fooEv,_ZThn24_N7ee337023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee337023fooEv,_ZTv0_n16_N7ee337023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337023fooEv,_ZThn16_N7ee337023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337023fooEv,_ZTv0_n20_N7ee337023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337023fooEv,_ZThn8_N7ee337023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33702 = { "ee33702", // class name
+ bases_ee33702, 4,
+ &(vtc_ee33702[0]), // expected_vtbl_contents
+ &(vtt_ee33702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33702),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43702 : dd3702 {
+ int e;
+ virtual void bar(); // _ZN7ee437023barEv
+ ~ee43702(); // tgen
+ ee43702(); // tgen
+};
+//SIG(1 ee43702) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43702 ::bar(){vfunc_called(this, "_ZN7ee437023barEv");}
+ee43702 ::~ee43702(){ note_dtor("ee43702", this);} // tgen
+ee43702 ::ee43702(){ note_ctor("ee43702", this);} // tgen
+
+static void Test_ee43702()
+{
+ extern Class_Descriptor cd_ee43702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43702, buf);
+ ee43702 *dp, &lv = *(dp=new (buf) ee43702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee43702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee43702");
+ check_base_class_offset(lv, (cc702*)(dd3702*), ABISELECT(16,12), "ee43702");
+ check_base_class_offset(lv, (dd3702*), 0, "ee43702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43702.e");
+ test_class_info(&lv, &cd_ee43702);
+ dp->~ee43702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43702(Test_ee43702, "ee43702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43702C1Ev();
+extern void _ZN7ee43702D1Ev();
+Name_Map name_map_ee43702[] = {
+ NSPAIR(_ZN7ee43702C1Ev),
+ NSPAIR(_ZN7ee43702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd3702;
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static Base_Class bases_ee43702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43702[];
+extern void _ZN6dd37023fooEv();
+extern void _ZN7ee437023barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee437023barEv,_ZTv0_n20_N7ee437023barEv)();
+extern void ABISELECT(_ZThn16_N7ee437023barEv,_ZThn12_N7ee437023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee437023barEv,_ZTv0_n16_N7ee437023barEv)();
+extern void ABISELECT(_ZThn32_N7ee437023barEv,_ZThn20_N7ee437023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+ (VTBL_ENTRY)&_ZN7ee437023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee437023barEv,_ZTv0_n20_N7ee437023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee437023barEv,_ZTv0_n16_N7ee437023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43702[];
+extern void _ZN6dd37023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3702__7ee43702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702__7ee43702[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3702__7ee43702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee43702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee43702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee43702[] = {
+ {&(_ZTV7ee43702[4]), 4,19},
+ {&(_tg__ZTV6dd3702__7ee43702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd3702__7ee43702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd3702__7ee43702[4]), 4,6},
+ {&(_ZTV7ee43702[11]), 11,19},
+ {&(_ZTV7ee43702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee43702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee43702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43702[];
+extern VTBL_ENTRY _ZTV7ee43702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43702[];
+static VTBL_ENTRY alt_thunk_names1117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee437023barEv,_ZTv0_n16_N7ee437023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee437023barEv,_ZThn20_N7ee437023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee437023barEv,_ZTv0_n20_N7ee437023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437023barEv,_ZThn12_N7ee437023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43702 = { "ee43702", // class name
+ bases_ee43702, 4,
+ &(vtc_ee43702[0]), // expected_vtbl_contents
+ &(vtt_ee43702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1117,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53702 : virtual dd3702 {
+ int e;
+ virtual void bar(); // _ZN7ee537023barEv
+ ~ee53702(); // tgen
+ ee53702(); // tgen
+};
+//SIG(1 ee53702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53702 ::bar(){vfunc_called(this, "_ZN7ee537023barEv");}
+ee53702 ::~ee53702(){ note_dtor("ee53702", this);} // tgen
+ee53702 ::ee53702(){ note_ctor("ee53702", this);} // tgen
+
+static void Test_ee53702()
+{
+ extern Class_Descriptor cd_ee53702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53702, buf);
+ ee53702 *dp, &lv = *(dp=new (buf) ee53702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee53702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee53702");
+ check_base_class_offset(lv, (cc702*)(dd3702*), ABISELECT(32,16), "ee53702");
+ check_base_class_offset(lv, (dd3702*), ABISELECT(16,8), "ee53702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53702.e");
+ test_class_info(&lv, &cd_ee53702);
+ dp->~ee53702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53702(Test_ee53702, "ee53702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53702C1Ev();
+extern void _ZN7ee53702D1Ev();
+Name_Map name_map_ee53702[] = {
+ NSPAIR(_ZN7ee53702C1Ev),
+ NSPAIR(_ZN7ee53702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd3702;
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static Base_Class bases_ee53702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53702[];
+extern void _ZN7ee537023barEv();
+extern void _ZN6dd37023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee537023barEv,_ZTv0_n20_N7ee537023barEv)();
+extern void ABISELECT(_ZThn32_N7ee537023barEv,_ZThn16_N7ee537023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee537023barEv,_ZTv0_n16_N7ee537023barEv)();
+extern void ABISELECT(_ZThn48_N7ee537023barEv,_ZThn24_N7ee537023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53702[0]),
+ (VTBL_ENTRY)&_ZN7ee537023barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee537023barEv,_ZTv0_n20_N7ee537023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee537023barEv,_ZTv0_n16_N7ee537023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53702[];
+extern void _ZN6dd37023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3702__7ee53702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702__7ee53702[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3702__7ee53702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee53702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee53702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee53702[] = {
+ {&(_ZTV7ee53702[5]), 5,25},
+ {&(_ZTV7ee53702[11]), 11,25},
+ {&(_ZTV7ee53702[17]), 17,25},
+ {&(_ZTV7ee53702[23]), 23,25},
+ {&(_tg__ZTV6dd3702__7ee53702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd3702__7ee53702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd3702__7ee53702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee53702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee53702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53702[];
+extern VTBL_ENTRY _ZTV7ee53702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53702[];
+static VTBL_ENTRY alt_thunk_names1118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee537023barEv,_ZTv0_n16_N7ee537023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee537023barEv,_ZThn24_N7ee537023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee537023barEv,_ZTv0_n20_N7ee537023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537023barEv,_ZThn16_N7ee537023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53702 = { "ee53702", // class name
+ bases_ee53702, 4,
+ &(vtc_ee53702[0]), // expected_vtbl_contents
+ &(vtt_ee53702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53702),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1118,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63702 : dd3702 {
+ int e;
+ virtual void foo(); // _ZN7ee637023fooEv
+ virtual void bar(); // _ZN7ee637023barEv
+ ~ee63702(); // tgen
+ ee63702(); // tgen
+};
+//SIG(1 ee63702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63702 ::foo(){vfunc_called(this, "_ZN7ee637023fooEv");}
+void ee63702 ::bar(){vfunc_called(this, "_ZN7ee637023barEv");}
+ee63702 ::~ee63702(){ note_dtor("ee63702", this);} // tgen
+ee63702 ::ee63702(){ note_ctor("ee63702", this);} // tgen
+
+static void Test_ee63702()
+{
+ extern Class_Descriptor cd_ee63702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63702, buf);
+ ee63702 *dp, &lv = *(dp=new (buf) ee63702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee63702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee63702");
+ check_base_class_offset(lv, (cc702*)(dd3702*), ABISELECT(16,12), "ee63702");
+ check_base_class_offset(lv, (dd3702*), 0, "ee63702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63702.e");
+ test_class_info(&lv, &cd_ee63702);
+ dp->~ee63702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63702(Test_ee63702, "ee63702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63702C1Ev();
+extern void _ZN7ee63702D1Ev();
+Name_Map name_map_ee63702[] = {
+ NSPAIR(_ZN7ee63702C1Ev),
+ NSPAIR(_ZN7ee63702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd3702;
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static Base_Class bases_ee63702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63702[];
+extern void _ZN7ee637023fooEv();
+extern void _ZN7ee637023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee637023fooEv,_ZTv0_n16_N7ee637023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637023fooEv,_ZThn12_N7ee637023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee637023barEv,_ZTv0_n20_N7ee637023barEv)();
+extern void ABISELECT(_ZThn16_N7ee637023barEv,_ZThn12_N7ee637023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637023fooEv,_ZTv0_n12_N7ee637023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee637023fooEv,_ZThn20_N7ee637023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637023barEv,_ZTv0_n16_N7ee637023barEv)();
+extern void ABISELECT(_ZThn32_N7ee637023barEv,_ZThn20_N7ee637023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63702[0]),
+ (VTBL_ENTRY)&_ZN7ee637023fooEv,
+ (VTBL_ENTRY)&_ZN7ee637023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637023fooEv,_ZTv0_n16_N7ee637023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637023barEv,_ZTv0_n20_N7ee637023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637023fooEv,_ZTv0_n12_N7ee637023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637023barEv,_ZTv0_n16_N7ee637023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63702[];
+extern void _ZN6dd37023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3702__7ee63702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702__7ee63702[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3702__7ee63702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee63702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee63702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee63702[] = {
+ {&(_ZTV7ee63702[4]), 4,19},
+ {&(_tg__ZTV6dd3702__7ee63702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd3702__7ee63702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd3702__7ee63702[4]), 4,6},
+ {&(_ZTV7ee63702[11]), 11,19},
+ {&(_ZTV7ee63702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee63702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee63702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63702[];
+extern VTBL_ENTRY _ZTV7ee63702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63702[];
+static VTBL_ENTRY alt_thunk_names1119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn20_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn12_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637023barEv,_ZTv0_n16_N7ee637023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637023barEv,_ZThn20_N7ee637023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637023fooEv,_ZTv0_n12_N7ee637023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637023fooEv,_ZThn20_N7ee637023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637023barEv,_ZTv0_n20_N7ee637023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637023barEv,_ZThn12_N7ee637023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637023fooEv,_ZTv0_n16_N7ee637023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637023fooEv,_ZThn12_N7ee637023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63702 = { "ee63702", // class name
+ bases_ee63702, 4,
+ &(vtc_ee63702[0]), // expected_vtbl_contents
+ &(vtt_ee63702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1119,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73702 : virtual dd3702 {
+ int e;
+ virtual void foo(); // _ZN7ee737023fooEv
+ virtual void bar(); // _ZN7ee737023barEv
+ ~ee73702(); // tgen
+ ee73702(); // tgen
+};
+//SIG(1 ee73702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73702 ::foo(){vfunc_called(this, "_ZN7ee737023fooEv");}
+void ee73702 ::bar(){vfunc_called(this, "_ZN7ee737023barEv");}
+ee73702 ::~ee73702(){ note_dtor("ee73702", this);} // tgen
+ee73702 ::ee73702(){ note_ctor("ee73702", this);} // tgen
+
+static void Test_ee73702()
+{
+ extern Class_Descriptor cd_ee73702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73702, buf);
+ ee73702 *dp, &lv = *(dp=new (buf) ee73702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee73702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee73702");
+ check_base_class_offset(lv, (cc702*)(dd3702*), ABISELECT(32,16), "ee73702");
+ check_base_class_offset(lv, (dd3702*), ABISELECT(16,8), "ee73702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73702.e");
+ test_class_info(&lv, &cd_ee73702);
+ dp->~ee73702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73702(Test_ee73702, "ee73702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73702C1Ev();
+extern void _ZN7ee73702D1Ev();
+Name_Map name_map_ee73702[] = {
+ NSPAIR(_ZN7ee73702C1Ev),
+ NSPAIR(_ZN7ee73702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd3702;
+extern VTBL_ENTRY _ZTI6dd3702[];
+extern VTBL_ENTRY _ZTV6dd3702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3702[];
+static Base_Class bases_ee73702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3702, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73702[];
+extern void _ZN7ee737023fooEv();
+extern void _ZN7ee737023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee737023fooEv,_ZTv0_n20_N7ee737023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737023fooEv,_ZThn8_N7ee737023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737023fooEv,_ZTv0_n16_N7ee737023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737023fooEv,_ZThn16_N7ee737023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737023barEv,_ZTv0_n20_N7ee737023barEv)();
+extern void ABISELECT(_ZThn32_N7ee737023barEv,_ZThn16_N7ee737023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737023fooEv,_ZTv0_n12_N7ee737023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee737023fooEv,_ZThn24_N7ee737023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737023barEv,_ZTv0_n16_N7ee737023barEv)();
+extern void ABISELECT(_ZThn48_N7ee737023barEv,_ZThn24_N7ee737023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73702[0]),
+ (VTBL_ENTRY)&_ZN7ee737023fooEv,
+ (VTBL_ENTRY)&_ZN7ee737023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737023fooEv,_ZTv0_n20_N7ee737023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737023fooEv,_ZTv0_n16_N7ee737023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737023barEv,_ZTv0_n20_N7ee737023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737023fooEv,_ZTv0_n12_N7ee737023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737023barEv,_ZTv0_n16_N7ee737023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73702[];
+extern void _ZN6dd37023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3702__7ee73702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&_ZN6dd37023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv)() __attribute__((weak));
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd3702__7ee73702[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv),
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd3702__7ee73702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee73702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee73702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee73702[] = {
+ {&(_ZTV7ee73702[5]), 5,26},
+ {&(_ZTV7ee73702[12]), 12,26},
+ {&(_ZTV7ee73702[18]), 18,26},
+ {&(_ZTV7ee73702[24]), 24,26},
+ {&(_tg__ZTV6dd3702__7ee73702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd3702__7ee73702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd3702__7ee73702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee73702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee73702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73702[];
+extern VTBL_ENTRY _ZTV7ee73702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73702[];
+static VTBL_ENTRY alt_thunk_names1120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37023fooEv,_ZTv0_n12_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd37023fooEv,_ZThn16_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd37023fooEv,_ZTv0_n16_N6dd37023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37023fooEv,_ZThn8_N6dd37023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737023barEv,_ZTv0_n16_N7ee737023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737023barEv,_ZThn24_N7ee737023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737023fooEv,_ZTv0_n12_N7ee737023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737023fooEv,_ZThn24_N7ee737023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737023barEv,_ZTv0_n20_N7ee737023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737023barEv,_ZThn16_N7ee737023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737023fooEv,_ZTv0_n16_N7ee737023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737023fooEv,_ZThn16_N7ee737023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737023fooEv,_ZTv0_n20_N7ee737023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737023fooEv,_ZThn8_N7ee737023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73702 = { "ee73702", // class name
+ bases_ee73702, 4,
+ &(vtc_ee73702[0]), // expected_vtbl_contents
+ &(vtt_ee73702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73702),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1120,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4702 : cc702 {
+ int d;
+ virtual void bar(); // _ZN6dd47023barEv
+ ~dd4702(); // tgen
+ dd4702(); // tgen
+};
+//SIG(-1 dd4702) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4702 ::bar(){vfunc_called(this, "_ZN6dd47023barEv");}
+dd4702 ::~dd4702(){ note_dtor("dd4702", this);} // tgen
+dd4702 ::dd4702(){ note_ctor("dd4702", this);} // tgen
+
+static void Test_dd4702()
+{
+ extern Class_Descriptor cd_dd4702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4702, buf);
+ dd4702 *dp, &lv = *(dp=new (buf) dd4702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd4702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(16,12), "dd4702");
+ check_base_class_offset(lv, (cc702*), 0, "dd4702");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4702.d");
+ test_class_info(&lv, &cd_dd4702);
+ dp->~dd4702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4702(Test_dd4702, "dd4702", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4702C1Ev();
+extern void _ZN6dd4702D1Ev();
+Name_Map name_map_dd4702[] = {
+ NSPAIR(_ZN6dd4702C1Ev),
+ NSPAIR(_ZN6dd4702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static Base_Class bases_dd4702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd4702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd4702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__6dd4702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_dd4702[] = {
+ {&(_ZTV6dd4702[3]), 3,11},
+ {&(_tg__ZTV5cc702__6dd4702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__6dd4702[4]), 4,6},
+ {&(_ZTV6dd4702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static VTBL_ENTRY alt_thunk_names1121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4702 = { "dd4702", // class name
+ bases_dd4702, 3,
+ &(vtc_dd4702[0]), // expected_vtbl_contents
+ &(vtt_dd4702[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4702),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1121,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04702 : dd4702 {
+ int e;
+ ~ee04702(); // tgen
+ ee04702(); // tgen
+};
+//SIG(1 ee04702) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04702 ::~ee04702(){ note_dtor("ee04702", this);} // tgen
+ee04702 ::ee04702(){ note_ctor("ee04702", this);} // tgen
+
+static void Test_ee04702()
+{
+ extern Class_Descriptor cd_ee04702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04702, buf);
+ ee04702 *dp, &lv = *(dp=new (buf) ee04702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee04702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd4702*), ABISELECT(24,16), "ee04702");
+ check_base_class_offset(lv, (cc702*)(dd4702*), 0, "ee04702");
+ check_base_class_offset(lv, (dd4702*), 0, "ee04702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04702.e");
+ test_class_info(&lv, &cd_ee04702);
+ dp->~ee04702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04702(Test_ee04702, "ee04702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04702C1Ev();
+extern void _ZN7ee04702D1Ev();
+Name_Map name_map_ee04702[] = {
+ NSPAIR(_ZN7ee04702C1Ev),
+ NSPAIR(_ZN7ee04702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd4702;
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static Base_Class bases_ee04702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4702__7ee04702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd4702__7ee04702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd4702__7ee04702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4702__7ee04702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+static VTT_ENTRY vtt_ee04702[] = {
+ {&(_ZTV7ee04702[3]), 3,11},
+ {&(_tg__ZTV6dd4702__7ee04702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd4702__7ee04702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd4702__7ee04702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4702__7ee04702[4]), 4,6},
+ {&(_ZTV7ee04702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04702[];
+extern VTBL_ENTRY _ZTV7ee04702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04702[];
+static VTBL_ENTRY alt_thunk_names1122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04702 = { "ee04702", // class name
+ bases_ee04702, 4,
+ &(vtc_ee04702[0]), // expected_vtbl_contents
+ &(vtt_ee04702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1122,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14702 : virtual dd4702 {
+ int e;
+ ~ee14702(); // tgen
+ ee14702(); // tgen
+};
+//SIG(1 ee14702) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14702 ::~ee14702(){ note_dtor("ee14702", this);} // tgen
+ee14702 ::ee14702(){ note_ctor("ee14702", this);} // tgen
+
+static void Test_ee14702()
+{
+ extern Class_Descriptor cd_ee14702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14702, buf);
+ ee14702 *dp, &lv = *(dp=new (buf) ee14702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee14702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd4702*), ABISELECT(32,20), "ee14702");
+ check_base_class_offset(lv, (cc702*)(dd4702*), ABISELECT(16,8), "ee14702");
+ check_base_class_offset(lv, (dd4702*), ABISELECT(16,8), "ee14702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14702.e");
+ test_class_info(&lv, &cd_ee14702);
+ dp->~ee14702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14702(Test_ee14702, "ee14702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14702C1Ev();
+extern void _ZN7ee14702D1Ev();
+Name_Map name_map_ee14702[] = {
+ NSPAIR(_ZN7ee14702C1Ev),
+ NSPAIR(_ZN7ee14702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd4702;
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static Base_Class bases_ee14702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4702, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14702[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4702__7ee14702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd4702__7ee14702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd4702__7ee14702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4702__7ee14702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+static VTT_ENTRY vtt_ee14702[] = {
+ {&(_ZTV7ee14702[4]), 4,17},
+ {&(_ZTV7ee14702[9]), 9,17},
+ {&(_ZTV7ee14702[15]), 15,17},
+ {&(_tg__ZTV6dd4702__7ee14702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd4702__7ee14702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd4702__7ee14702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4702__7ee14702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14702[];
+extern VTBL_ENTRY _ZTV7ee14702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14702[];
+static VTBL_ENTRY alt_thunk_names1123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14702 = { "ee14702", // class name
+ bases_ee14702, 4,
+ &(vtc_ee14702[0]), // expected_vtbl_contents
+ &(vtt_ee14702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14702),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1123,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24702 : dd4702 {
+ int e;
+ virtual void foo(); // _ZN7ee247023fooEv
+ ~ee24702(); // tgen
+ ee24702(); // tgen
+};
+//SIG(1 ee24702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24702 ::foo(){vfunc_called(this, "_ZN7ee247023fooEv");}
+ee24702 ::~ee24702(){ note_dtor("ee24702", this);} // tgen
+ee24702 ::ee24702(){ note_ctor("ee24702", this);} // tgen
+
+static void Test_ee24702()
+{
+ extern Class_Descriptor cd_ee24702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24702, buf);
+ ee24702 *dp, &lv = *(dp=new (buf) ee24702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee24702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd4702*), ABISELECT(24,16), "ee24702");
+ check_base_class_offset(lv, (cc702*)(dd4702*), 0, "ee24702");
+ check_base_class_offset(lv, (dd4702*), 0, "ee24702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24702.e");
+ test_class_info(&lv, &cd_ee24702);
+ dp->~ee24702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24702(Test_ee24702, "ee24702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24702C1Ev();
+extern void _ZN7ee24702D1Ev();
+Name_Map name_map_ee24702[] = {
+ NSPAIR(_ZN7ee24702C1Ev),
+ NSPAIR(_ZN7ee24702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd4702;
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static Base_Class bases_ee24702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24702[];
+extern void _ZN7ee247023fooEv();
+extern void _ZN6dd47023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee247023fooEv,_ZTv0_n12_N7ee247023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee247023fooEv,_ZThn16_N7ee247023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24702[0]),
+ (VTBL_ENTRY)&_ZN7ee247023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247023fooEv,_ZTv0_n12_N7ee247023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4702__7ee24702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd4702__7ee24702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd4702__7ee24702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4702__7ee24702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+static VTT_ENTRY vtt_ee24702[] = {
+ {&(_ZTV7ee24702[3]), 3,11},
+ {&(_tg__ZTV6dd4702__7ee24702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd4702__7ee24702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd4702__7ee24702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4702__7ee24702[4]), 4,6},
+ {&(_ZTV7ee24702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24702[];
+extern VTBL_ENTRY _ZTV7ee24702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24702[];
+static VTBL_ENTRY alt_thunk_names1124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247023fooEv,_ZTv0_n12_N7ee247023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee247023fooEv,_ZThn16_N7ee247023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24702 = { "ee24702", // class name
+ bases_ee24702, 4,
+ &(vtc_ee24702[0]), // expected_vtbl_contents
+ &(vtt_ee24702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34702 : virtual dd4702 {
+ int e;
+ virtual void foo(); // _ZN7ee347023fooEv
+ ~ee34702(); // tgen
+ ee34702(); // tgen
+};
+//SIG(1 ee34702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34702 ::foo(){vfunc_called(this, "_ZN7ee347023fooEv");}
+ee34702 ::~ee34702(){ note_dtor("ee34702", this);} // tgen
+ee34702 ::ee34702(){ note_ctor("ee34702", this);} // tgen
+
+static void Test_ee34702()
+{
+ extern Class_Descriptor cd_ee34702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34702, buf);
+ ee34702 *dp, &lv = *(dp=new (buf) ee34702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee34702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd4702*), ABISELECT(32,20), "ee34702");
+ check_base_class_offset(lv, (cc702*)(dd4702*), ABISELECT(16,8), "ee34702");
+ check_base_class_offset(lv, (dd4702*), ABISELECT(16,8), "ee34702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34702.e");
+ test_class_info(&lv, &cd_ee34702);
+ dp->~ee34702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34702(Test_ee34702, "ee34702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34702C1Ev();
+extern void _ZN7ee34702D1Ev();
+Name_Map name_map_ee34702[] = {
+ NSPAIR(_ZN7ee34702C1Ev),
+ NSPAIR(_ZN7ee34702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd4702;
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static Base_Class bases_ee34702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34702[];
+extern void _ZN7ee347023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee347023fooEv,_ZTv0_n16_N7ee347023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347023fooEv,_ZThn8_N7ee347023fooEv)() __attribute__((weak));
+extern void _ZN6dd47023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee347023fooEv,_ZTv0_n12_N7ee347023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee347023fooEv,_ZThn20_N7ee347023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34702[0]),
+ (VTBL_ENTRY)&_ZN7ee347023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee347023fooEv,_ZTv0_n16_N7ee347023fooEv),
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347023fooEv,_ZTv0_n12_N7ee347023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4702__7ee34702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd4702__7ee34702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd4702__7ee34702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4702__7ee34702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+static VTT_ENTRY vtt_ee34702[] = {
+ {&(_ZTV7ee34702[4]), 4,18},
+ {&(_ZTV7ee34702[10]), 10,18},
+ {&(_ZTV7ee34702[16]), 16,18},
+ {&(_tg__ZTV6dd4702__7ee34702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd4702__7ee34702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd4702__7ee34702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4702__7ee34702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34702[];
+extern VTBL_ENTRY _ZTV7ee34702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34702[];
+static VTBL_ENTRY alt_thunk_names1125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347023fooEv,_ZTv0_n12_N7ee347023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee347023fooEv,_ZThn20_N7ee347023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee347023fooEv,_ZTv0_n16_N7ee347023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347023fooEv,_ZThn8_N7ee347023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34702 = { "ee34702", // class name
+ bases_ee34702, 4,
+ &(vtc_ee34702[0]), // expected_vtbl_contents
+ &(vtt_ee34702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1125,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44702 : dd4702 {
+ int e;
+ virtual void bar(); // _ZN7ee447023barEv
+ ~ee44702(); // tgen
+ ee44702(); // tgen
+};
+//SIG(1 ee44702) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44702 ::bar(){vfunc_called(this, "_ZN7ee447023barEv");}
+ee44702 ::~ee44702(){ note_dtor("ee44702", this);} // tgen
+ee44702 ::ee44702(){ note_ctor("ee44702", this);} // tgen
+
+static void Test_ee44702()
+{
+ extern Class_Descriptor cd_ee44702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44702, buf);
+ ee44702 *dp, &lv = *(dp=new (buf) ee44702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee44702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd4702*), ABISELECT(24,16), "ee44702");
+ check_base_class_offset(lv, (cc702*)(dd4702*), 0, "ee44702");
+ check_base_class_offset(lv, (dd4702*), 0, "ee44702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44702.e");
+ test_class_info(&lv, &cd_ee44702);
+ dp->~ee44702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44702(Test_ee44702, "ee44702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44702C1Ev();
+extern void _ZN7ee44702D1Ev();
+Name_Map name_map_ee44702[] = {
+ NSPAIR(_ZN7ee44702C1Ev),
+ NSPAIR(_ZN7ee44702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd4702;
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static Base_Class bases_ee44702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN7ee447023barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee447023barEv,_ZTv0_n16_N7ee447023barEv)();
+extern void ABISELECT(_ZThn24_N7ee447023barEv,_ZThn16_N7ee447023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN7ee447023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee447023barEv,_ZTv0_n16_N7ee447023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4702__7ee44702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd4702__7ee44702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd4702__7ee44702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4702__7ee44702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+static VTT_ENTRY vtt_ee44702[] = {
+ {&(_ZTV7ee44702[3]), 3,11},
+ {&(_tg__ZTV6dd4702__7ee44702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd4702__7ee44702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd4702__7ee44702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4702__7ee44702[4]), 4,6},
+ {&(_ZTV7ee44702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44702[];
+extern VTBL_ENTRY _ZTV7ee44702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44702[];
+static VTBL_ENTRY alt_thunk_names1126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee447023barEv,_ZTv0_n16_N7ee447023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee447023barEv,_ZThn16_N7ee447023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44702 = { "ee44702", // class name
+ bases_ee44702, 4,
+ &(vtc_ee44702[0]), // expected_vtbl_contents
+ &(vtt_ee44702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1126,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54702 : virtual dd4702 {
+ int e;
+ virtual void bar(); // _ZN7ee547023barEv
+ ~ee54702(); // tgen
+ ee54702(); // tgen
+};
+//SIG(1 ee54702) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54702 ::bar(){vfunc_called(this, "_ZN7ee547023barEv");}
+ee54702 ::~ee54702(){ note_dtor("ee54702", this);} // tgen
+ee54702 ::ee54702(){ note_ctor("ee54702", this);} // tgen
+
+static void Test_ee54702()
+{
+ extern Class_Descriptor cd_ee54702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54702, buf);
+ ee54702 *dp, &lv = *(dp=new (buf) ee54702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee54702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd4702*), ABISELECT(32,20), "ee54702");
+ check_base_class_offset(lv, (cc702*)(dd4702*), ABISELECT(16,8), "ee54702");
+ check_base_class_offset(lv, (dd4702*), ABISELECT(16,8), "ee54702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54702.e");
+ test_class_info(&lv, &cd_ee54702);
+ dp->~ee54702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54702(Test_ee54702, "ee54702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54702C1Ev();
+extern void _ZN7ee54702D1Ev();
+Name_Map name_map_ee54702[] = {
+ NSPAIR(_ZN7ee54702C1Ev),
+ NSPAIR(_ZN7ee54702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd4702;
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static Base_Class bases_ee54702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54702[];
+extern void _ZN7ee547023barEv();
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee547023barEv,_ZTv0_n20_N7ee547023barEv)();
+extern void ABISELECT(_ZThn16_N7ee547023barEv,_ZThn8_N7ee547023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee547023barEv,_ZTv0_n16_N7ee547023barEv)();
+extern void ABISELECT(_ZThn32_N7ee547023barEv,_ZThn20_N7ee547023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54702[0]),
+ (VTBL_ENTRY)&_ZN7ee547023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee547023barEv,_ZTv0_n20_N7ee547023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee547023barEv,_ZTv0_n16_N7ee547023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4702__7ee54702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd4702__7ee54702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd4702__7ee54702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4702__7ee54702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+static VTT_ENTRY vtt_ee54702[] = {
+ {&(_ZTV7ee54702[4]), 4,18},
+ {&(_ZTV7ee54702[10]), 10,18},
+ {&(_ZTV7ee54702[16]), 16,18},
+ {&(_tg__ZTV6dd4702__7ee54702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd4702__7ee54702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd4702__7ee54702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4702__7ee54702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54702[];
+extern VTBL_ENTRY _ZTV7ee54702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54702[];
+static VTBL_ENTRY alt_thunk_names1127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee547023barEv,_ZTv0_n16_N7ee547023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee547023barEv,_ZThn20_N7ee547023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee547023barEv,_ZTv0_n20_N7ee547023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547023barEv,_ZThn8_N7ee547023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54702 = { "ee54702", // class name
+ bases_ee54702, 4,
+ &(vtc_ee54702[0]), // expected_vtbl_contents
+ &(vtt_ee54702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1127,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64702 : dd4702 {
+ int e;
+ virtual void foo(); // _ZN7ee647023fooEv
+ virtual void bar(); // _ZN7ee647023barEv
+ ~ee64702(); // tgen
+ ee64702(); // tgen
+};
+//SIG(1 ee64702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64702 ::foo(){vfunc_called(this, "_ZN7ee647023fooEv");}
+void ee64702 ::bar(){vfunc_called(this, "_ZN7ee647023barEv");}
+ee64702 ::~ee64702(){ note_dtor("ee64702", this);} // tgen
+ee64702 ::ee64702(){ note_ctor("ee64702", this);} // tgen
+
+static void Test_ee64702()
+{
+ extern Class_Descriptor cd_ee64702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64702, buf);
+ ee64702 *dp, &lv = *(dp=new (buf) ee64702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee64702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd4702*), ABISELECT(24,16), "ee64702");
+ check_base_class_offset(lv, (cc702*)(dd4702*), 0, "ee64702");
+ check_base_class_offset(lv, (dd4702*), 0, "ee64702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64702.e");
+ test_class_info(&lv, &cd_ee64702);
+ dp->~ee64702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64702(Test_ee64702, "ee64702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64702C1Ev();
+extern void _ZN7ee64702D1Ev();
+Name_Map name_map_ee64702[] = {
+ NSPAIR(_ZN7ee64702C1Ev),
+ NSPAIR(_ZN7ee64702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd4702;
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static Base_Class bases_ee64702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64702[];
+extern void _ZN7ee647023fooEv();
+extern void _ZN7ee647023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee647023fooEv,_ZTv0_n12_N7ee647023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee647023fooEv,_ZThn16_N7ee647023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee647023barEv,_ZTv0_n16_N7ee647023barEv)();
+extern void ABISELECT(_ZThn24_N7ee647023barEv,_ZThn16_N7ee647023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64702[0]),
+ (VTBL_ENTRY)&_ZN7ee647023fooEv,
+ (VTBL_ENTRY)&_ZN7ee647023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647023fooEv,_ZTv0_n12_N7ee647023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647023barEv,_ZTv0_n16_N7ee647023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4702__7ee64702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd4702__7ee64702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd4702__7ee64702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4702__7ee64702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+static VTT_ENTRY vtt_ee64702[] = {
+ {&(_ZTV7ee64702[3]), 3,11},
+ {&(_tg__ZTV6dd4702__7ee64702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd4702__7ee64702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd4702__7ee64702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4702__7ee64702[4]), 4,6},
+ {&(_ZTV7ee64702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64702[];
+extern VTBL_ENTRY _ZTV7ee64702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64702[];
+static VTBL_ENTRY alt_thunk_names1128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47023barEv,_ZThn16_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee647023barEv,_ZTv0_n16_N7ee647023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647023barEv,_ZThn16_N7ee647023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647023fooEv,_ZTv0_n12_N7ee647023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647023fooEv,_ZThn16_N7ee647023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64702 = { "ee64702", // class name
+ bases_ee64702, 4,
+ &(vtc_ee64702[0]), // expected_vtbl_contents
+ &(vtt_ee64702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1128,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74702 : virtual dd4702 {
+ int e;
+ virtual void foo(); // _ZN7ee747023fooEv
+ virtual void bar(); // _ZN7ee747023barEv
+ ~ee74702(); // tgen
+ ee74702(); // tgen
+};
+//SIG(1 ee74702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74702 ::foo(){vfunc_called(this, "_ZN7ee747023fooEv");}
+void ee74702 ::bar(){vfunc_called(this, "_ZN7ee747023barEv");}
+ee74702 ::~ee74702(){ note_dtor("ee74702", this);} // tgen
+ee74702 ::ee74702(){ note_ctor("ee74702", this);} // tgen
+
+static void Test_ee74702()
+{
+ extern Class_Descriptor cd_ee74702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74702, buf);
+ ee74702 *dp, &lv = *(dp=new (buf) ee74702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee74702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd4702*), ABISELECT(32,20), "ee74702");
+ check_base_class_offset(lv, (cc702*)(dd4702*), ABISELECT(16,8), "ee74702");
+ check_base_class_offset(lv, (dd4702*), ABISELECT(16,8), "ee74702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74702.e");
+ test_class_info(&lv, &cd_ee74702);
+ dp->~ee74702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74702(Test_ee74702, "ee74702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74702C1Ev();
+extern void _ZN7ee74702D1Ev();
+Name_Map name_map_ee74702[] = {
+ NSPAIR(_ZN7ee74702C1Ev),
+ NSPAIR(_ZN7ee74702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd4702;
+extern VTBL_ENTRY _ZTI6dd4702[];
+extern VTBL_ENTRY _ZTV6dd4702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4702[];
+static Base_Class bases_ee74702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74702[];
+extern void _ZN7ee747023fooEv();
+extern void _ZN7ee747023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee747023fooEv,_ZTv0_n16_N7ee747023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747023fooEv,_ZThn8_N7ee747023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee747023barEv,_ZTv0_n20_N7ee747023barEv)();
+extern void ABISELECT(_ZThn16_N7ee747023barEv,_ZThn8_N7ee747023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747023fooEv,_ZTv0_n12_N7ee747023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee747023fooEv,_ZThn20_N7ee747023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747023barEv,_ZTv0_n16_N7ee747023barEv)();
+extern void ABISELECT(_ZThn32_N7ee747023barEv,_ZThn20_N7ee747023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74702[0]),
+ (VTBL_ENTRY)&_ZN7ee747023fooEv,
+ (VTBL_ENTRY)&_ZN7ee747023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747023fooEv,_ZTv0_n16_N7ee747023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747023barEv,_ZTv0_n20_N7ee747023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747023fooEv,_ZTv0_n12_N7ee747023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747023barEv,_ZTv0_n16_N7ee747023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN6dd47023barEv();
+static VTBL_ENTRY _tg__ZTV6dd4702__7ee74702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN6dd47023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd4702__7ee74702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd4702__7ee74702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv)();
+extern void ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd4702__7ee74702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv),
+};
+static VTT_ENTRY vtt_ee74702[] = {
+ {&(_ZTV7ee74702[4]), 4,19},
+ {&(_ZTV7ee74702[11]), 11,19},
+ {&(_ZTV7ee74702[17]), 17,19},
+ {&(_tg__ZTV6dd4702__7ee74702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd4702__7ee74702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd4702__7ee74702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd4702__7ee74702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74702[];
+extern VTBL_ENTRY _ZTV7ee74702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74702[];
+static VTBL_ENTRY alt_thunk_names1129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47023barEv,_ZTv0_n16_N6dd47023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47023barEv,_ZThn12_N6dd47023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747023barEv,_ZTv0_n16_N7ee747023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747023barEv,_ZThn20_N7ee747023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747023fooEv,_ZTv0_n12_N7ee747023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747023fooEv,_ZThn20_N7ee747023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747023barEv,_ZTv0_n20_N7ee747023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747023barEv,_ZThn8_N7ee747023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747023fooEv,_ZTv0_n16_N7ee747023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747023fooEv,_ZThn8_N7ee747023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74702 = { "ee74702", // class name
+ bases_ee74702, 4,
+ &(vtc_ee74702[0]), // expected_vtbl_contents
+ &(vtt_ee74702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1129,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5702 : virtual cc702 {
+ int d;
+ virtual void bar(); // _ZN6dd57023barEv
+ ~dd5702(); // tgen
+ dd5702(); // tgen
+};
+//SIG(-1 dd5702) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5702 ::bar(){vfunc_called(this, "_ZN6dd57023barEv");}
+dd5702 ::~dd5702(){ note_dtor("dd5702", this);} // tgen
+dd5702 ::dd5702(){ note_ctor("dd5702", this);} // tgen
+
+static void Test_dd5702()
+{
+ extern Class_Descriptor cd_dd5702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5702, buf);
+ dd5702 *dp, &lv = *(dp=new (buf) dd5702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd5702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,16), "dd5702");
+ check_base_class_offset(lv, (cc702*), ABISELECT(16,8), "dd5702");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5702.d");
+ test_class_info(&lv, &cd_dd5702);
+ dp->~dd5702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5702(Test_dd5702, "dd5702", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5702C1Ev();
+extern void _ZN6dd5702D1Ev();
+Name_Map name_map_dd5702[] = {
+ NSPAIR(_ZN6dd5702C1Ev),
+ NSPAIR(_ZN6dd5702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static Base_Class bases_dd5702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 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 _ZTI6dd5702[];
+extern void _ZN6dd57023barEv();
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__6dd5702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_dd5702[] = {
+ {&(_ZTV6dd5702[4]), 4,18},
+ {&(_ZTV6dd5702[10]), 10,18},
+ {&(_ZTV6dd5702[16]), 16,18},
+ {&(_tg__ZTV5cc702__6dd5702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__6dd5702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static VTBL_ENTRY alt_thunk_names1130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5702 = { "dd5702", // class name
+ bases_dd5702, 3,
+ &(vtc_dd5702[0]), // expected_vtbl_contents
+ &(vtt_dd5702[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5702),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1130,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05702 : dd5702 {
+ int e;
+ ~ee05702(); // tgen
+ ee05702(); // tgen
+};
+//SIG(1 ee05702) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05702 ::~ee05702(){ note_dtor("ee05702", this);} // tgen
+ee05702 ::ee05702(){ note_ctor("ee05702", this);} // tgen
+
+static void Test_ee05702()
+{
+ extern Class_Descriptor cd_ee05702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05702, buf);
+ ee05702 *dp, &lv = *(dp=new (buf) ee05702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee05702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee05702");
+ check_base_class_offset(lv, (cc702*)(dd5702*), ABISELECT(16,12), "ee05702");
+ check_base_class_offset(lv, (dd5702*), 0, "ee05702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05702.e");
+ test_class_info(&lv, &cd_ee05702);
+ dp->~ee05702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05702(Test_ee05702, "ee05702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05702C1Ev();
+extern void _ZN7ee05702D1Ev();
+Name_Map name_map_ee05702[] = {
+ NSPAIR(_ZN7ee05702C1Ev),
+ NSPAIR(_ZN7ee05702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd5702;
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static Base_Class bases_ee05702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05702[];
+extern void _ZN6dd57023barEv();
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05702[];
+extern void _ZN6dd57023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5702__7ee05702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702__7ee05702[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5702__7ee05702[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee05702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee05702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee05702[] = {
+ {&(_ZTV7ee05702[4]), 4,18},
+ {&(_tg__ZTV6dd5702__7ee05702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd5702__7ee05702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd5702__7ee05702[4]), 4,6},
+ {&(_ZTV7ee05702[10]), 10,18},
+ {&(_ZTV7ee05702[16]), 16,18},
+ {&(_tg__ZTV5cc702__7ee05702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee05702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05702[];
+extern VTBL_ENTRY _ZTV7ee05702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05702[];
+static VTBL_ENTRY alt_thunk_names1131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05702 = { "ee05702", // class name
+ bases_ee05702, 4,
+ &(vtc_ee05702[0]), // expected_vtbl_contents
+ &(vtt_ee05702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1131,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15702 : virtual dd5702 {
+ int e;
+ ~ee15702(); // tgen
+ ee15702(); // tgen
+};
+//SIG(1 ee15702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15702 ::~ee15702(){ note_dtor("ee15702", this);} // tgen
+ee15702 ::ee15702(){ note_ctor("ee15702", this);} // tgen
+
+static void Test_ee15702()
+{
+ extern Class_Descriptor cd_ee15702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15702, buf);
+ ee15702 *dp, &lv = *(dp=new (buf) ee15702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee15702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee15702");
+ check_base_class_offset(lv, (cc702*)(dd5702*), ABISELECT(32,16), "ee15702");
+ check_base_class_offset(lv, (dd5702*), ABISELECT(16,8), "ee15702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15702.e");
+ test_class_info(&lv, &cd_ee15702);
+ dp->~ee15702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15702(Test_ee15702, "ee15702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15702C1Ev();
+extern void _ZN7ee15702D1Ev();
+Name_Map name_map_ee15702[] = {
+ NSPAIR(_ZN7ee15702C1Ev),
+ NSPAIR(_ZN7ee15702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd5702;
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static Base_Class bases_ee15702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15702[];
+extern void _ZN6dd57023barEv();
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15702[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15702[];
+extern void _ZN6dd57023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5702__7ee15702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702__7ee15702[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5702__7ee15702[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee15702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee15702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee15702[] = {
+ {&(_ZTV7ee15702[5]), 5,24},
+ {&(_ZTV7ee15702[10]), 10,24},
+ {&(_ZTV7ee15702[16]), 16,24},
+ {&(_ZTV7ee15702[22]), 22,24},
+ {&(_tg__ZTV6dd5702__7ee15702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd5702__7ee15702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd5702__7ee15702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee15702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee15702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15702[];
+extern VTBL_ENTRY _ZTV7ee15702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15702[];
+static VTBL_ENTRY alt_thunk_names1132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15702 = { "ee15702", // class name
+ bases_ee15702, 4,
+ &(vtc_ee15702[0]), // expected_vtbl_contents
+ &(vtt_ee15702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15702),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1132,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25702 : dd5702 {
+ int e;
+ virtual void foo(); // _ZN7ee257023fooEv
+ ~ee25702(); // tgen
+ ee25702(); // tgen
+};
+//SIG(1 ee25702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25702 ::foo(){vfunc_called(this, "_ZN7ee257023fooEv");}
+ee25702 ::~ee25702(){ note_dtor("ee25702", this);} // tgen
+ee25702 ::ee25702(){ note_ctor("ee25702", this);} // tgen
+
+static void Test_ee25702()
+{
+ extern Class_Descriptor cd_ee25702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25702, buf);
+ ee25702 *dp, &lv = *(dp=new (buf) ee25702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee25702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee25702");
+ check_base_class_offset(lv, (cc702*)(dd5702*), ABISELECT(16,12), "ee25702");
+ check_base_class_offset(lv, (dd5702*), 0, "ee25702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25702.e");
+ test_class_info(&lv, &cd_ee25702);
+ dp->~ee25702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25702(Test_ee25702, "ee25702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25702C1Ev();
+extern void _ZN7ee25702D1Ev();
+Name_Map name_map_ee25702[] = {
+ NSPAIR(_ZN7ee25702C1Ev),
+ NSPAIR(_ZN7ee25702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd5702;
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static Base_Class bases_ee25702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25702[];
+extern void _ZN6dd57023barEv();
+extern void _ZN7ee257023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee257023fooEv,_ZTv0_n16_N7ee257023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257023fooEv,_ZThn12_N7ee257023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257023fooEv,_ZTv0_n12_N7ee257023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee257023fooEv,_ZThn20_N7ee257023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+ (VTBL_ENTRY)&_ZN7ee257023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee257023fooEv,_ZTv0_n16_N7ee257023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257023fooEv,_ZTv0_n12_N7ee257023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25702[];
+extern void _ZN6dd57023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5702__7ee25702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702__7ee25702[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5702__7ee25702[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee25702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee25702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee25702[] = {
+ {&(_ZTV7ee25702[4]), 4,19},
+ {&(_tg__ZTV6dd5702__7ee25702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd5702__7ee25702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd5702__7ee25702[4]), 4,6},
+ {&(_ZTV7ee25702[11]), 11,19},
+ {&(_ZTV7ee25702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee25702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee25702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25702[];
+extern VTBL_ENTRY _ZTV7ee25702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25702[];
+static VTBL_ENTRY alt_thunk_names1133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257023fooEv,_ZTv0_n12_N7ee257023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee257023fooEv,_ZThn20_N7ee257023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee257023fooEv,_ZTv0_n16_N7ee257023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257023fooEv,_ZThn12_N7ee257023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25702 = { "ee25702", // class name
+ bases_ee25702, 4,
+ &(vtc_ee25702[0]), // expected_vtbl_contents
+ &(vtt_ee25702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1133,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35702 : virtual dd5702 {
+ int e;
+ virtual void foo(); // _ZN7ee357023fooEv
+ ~ee35702(); // tgen
+ ee35702(); // tgen
+};
+//SIG(1 ee35702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35702 ::foo(){vfunc_called(this, "_ZN7ee357023fooEv");}
+ee35702 ::~ee35702(){ note_dtor("ee35702", this);} // tgen
+ee35702 ::ee35702(){ note_ctor("ee35702", this);} // tgen
+
+static void Test_ee35702()
+{
+ extern Class_Descriptor cd_ee35702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35702, buf);
+ ee35702 *dp, &lv = *(dp=new (buf) ee35702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee35702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee35702");
+ check_base_class_offset(lv, (cc702*)(dd5702*), ABISELECT(32,16), "ee35702");
+ check_base_class_offset(lv, (dd5702*), ABISELECT(16,8), "ee35702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35702.e");
+ test_class_info(&lv, &cd_ee35702);
+ dp->~ee35702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35702(Test_ee35702, "ee35702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35702C1Ev();
+extern void _ZN7ee35702D1Ev();
+Name_Map name_map_ee35702[] = {
+ NSPAIR(_ZN7ee35702C1Ev),
+ NSPAIR(_ZN7ee35702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd5702;
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static Base_Class bases_ee35702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35702[];
+extern void _ZN7ee357023fooEv();
+extern void _ZN6dd57023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee357023fooEv,_ZTv0_n16_N7ee357023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357023fooEv,_ZThn16_N7ee357023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357023fooEv,_ZTv0_n12_N7ee357023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee357023fooEv,_ZThn24_N7ee357023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35702[0]),
+ (VTBL_ENTRY)&_ZN7ee357023fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee357023fooEv,_ZTv0_n16_N7ee357023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357023fooEv,_ZTv0_n12_N7ee357023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35702[];
+extern void _ZN6dd57023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5702__7ee35702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702__7ee35702[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5702__7ee35702[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee35702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee35702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee35702[] = {
+ {&(_ZTV7ee35702[5]), 5,25},
+ {&(_ZTV7ee35702[11]), 11,25},
+ {&(_ZTV7ee35702[17]), 17,25},
+ {&(_ZTV7ee35702[23]), 23,25},
+ {&(_tg__ZTV6dd5702__7ee35702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd5702__7ee35702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd5702__7ee35702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee35702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee35702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35702[];
+extern VTBL_ENTRY _ZTV7ee35702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35702[];
+static VTBL_ENTRY alt_thunk_names1134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357023fooEv,_ZTv0_n12_N7ee357023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee357023fooEv,_ZThn24_N7ee357023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee357023fooEv,_ZTv0_n16_N7ee357023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357023fooEv,_ZThn16_N7ee357023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35702 = { "ee35702", // class name
+ bases_ee35702, 4,
+ &(vtc_ee35702[0]), // expected_vtbl_contents
+ &(vtt_ee35702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35702),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1134,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45702 : dd5702 {
+ int e;
+ virtual void bar(); // _ZN7ee457023barEv
+ ~ee45702(); // tgen
+ ee45702(); // tgen
+};
+//SIG(1 ee45702) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45702 ::bar(){vfunc_called(this, "_ZN7ee457023barEv");}
+ee45702 ::~ee45702(){ note_dtor("ee45702", this);} // tgen
+ee45702 ::ee45702(){ note_ctor("ee45702", this);} // tgen
+
+static void Test_ee45702()
+{
+ extern Class_Descriptor cd_ee45702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45702, buf);
+ ee45702 *dp, &lv = *(dp=new (buf) ee45702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee45702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee45702");
+ check_base_class_offset(lv, (cc702*)(dd5702*), ABISELECT(16,12), "ee45702");
+ check_base_class_offset(lv, (dd5702*), 0, "ee45702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45702.e");
+ test_class_info(&lv, &cd_ee45702);
+ dp->~ee45702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45702(Test_ee45702, "ee45702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45702C1Ev();
+extern void _ZN7ee45702D1Ev();
+Name_Map name_map_ee45702[] = {
+ NSPAIR(_ZN7ee45702C1Ev),
+ NSPAIR(_ZN7ee45702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd5702;
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static Base_Class bases_ee45702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45702[];
+extern void _ZN7ee457023barEv();
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee457023barEv,_ZTv0_n20_N7ee457023barEv)();
+extern void ABISELECT(_ZThn16_N7ee457023barEv,_ZThn12_N7ee457023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee457023barEv,_ZTv0_n16_N7ee457023barEv)();
+extern void ABISELECT(_ZThn32_N7ee457023barEv,_ZThn20_N7ee457023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45702[0]),
+ (VTBL_ENTRY)&_ZN7ee457023barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee457023barEv,_ZTv0_n20_N7ee457023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee457023barEv,_ZTv0_n16_N7ee457023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45702[];
+extern void _ZN6dd57023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5702__7ee45702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702__7ee45702[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5702__7ee45702[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee45702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee45702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee45702[] = {
+ {&(_ZTV7ee45702[4]), 4,18},
+ {&(_tg__ZTV6dd5702__7ee45702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd5702__7ee45702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd5702__7ee45702[4]), 4,6},
+ {&(_ZTV7ee45702[10]), 10,18},
+ {&(_ZTV7ee45702[16]), 16,18},
+ {&(_tg__ZTV5cc702__7ee45702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee45702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45702[];
+extern VTBL_ENTRY _ZTV7ee45702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45702[];
+static VTBL_ENTRY alt_thunk_names1135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee457023barEv,_ZTv0_n16_N7ee457023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee457023barEv,_ZThn20_N7ee457023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee457023barEv,_ZTv0_n20_N7ee457023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457023barEv,_ZThn12_N7ee457023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45702 = { "ee45702", // class name
+ bases_ee45702, 4,
+ &(vtc_ee45702[0]), // expected_vtbl_contents
+ &(vtt_ee45702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55702 : virtual dd5702 {
+ int e;
+ virtual void bar(); // _ZN7ee557023barEv
+ ~ee55702(); // tgen
+ ee55702(); // tgen
+};
+//SIG(1 ee55702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55702 ::bar(){vfunc_called(this, "_ZN7ee557023barEv");}
+ee55702 ::~ee55702(){ note_dtor("ee55702", this);} // tgen
+ee55702 ::ee55702(){ note_ctor("ee55702", this);} // tgen
+
+static void Test_ee55702()
+{
+ extern Class_Descriptor cd_ee55702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55702, buf);
+ ee55702 *dp, &lv = *(dp=new (buf) ee55702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee55702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee55702");
+ check_base_class_offset(lv, (cc702*)(dd5702*), ABISELECT(32,16), "ee55702");
+ check_base_class_offset(lv, (dd5702*), ABISELECT(16,8), "ee55702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55702.e");
+ test_class_info(&lv, &cd_ee55702);
+ dp->~ee55702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55702(Test_ee55702, "ee55702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55702C1Ev();
+extern void _ZN7ee55702D1Ev();
+Name_Map name_map_ee55702[] = {
+ NSPAIR(_ZN7ee55702C1Ev),
+ NSPAIR(_ZN7ee55702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd5702;
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static Base_Class bases_ee55702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55702[];
+extern void _ZN7ee557023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557023barEv,_ZTv0_n20_N7ee557023barEv)();
+extern void ABISELECT(_ZThn16_N7ee557023barEv,_ZThn8_N7ee557023barEv)() __attribute__((weak));
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee557023barEv,_ZTv0_n20_N7ee557023barEv)();
+extern void ABISELECT(_ZThn32_N7ee557023barEv,_ZThn16_N7ee557023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee557023barEv,_ZTv0_n16_N7ee557023barEv)();
+extern void ABISELECT(_ZThn48_N7ee557023barEv,_ZThn24_N7ee557023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55702[0]),
+ (VTBL_ENTRY)&_ZN7ee557023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557023barEv,_ZTv0_n20_N7ee557023barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee557023barEv,_ZTv0_n20_N7ee557023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee557023barEv,_ZTv0_n16_N7ee557023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55702[];
+extern void _ZN6dd57023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5702__7ee55702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702__7ee55702[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5702__7ee55702[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee55702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee55702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee55702[] = {
+ {&(_ZTV7ee55702[5]), 5,25},
+ {&(_ZTV7ee55702[11]), 11,25},
+ {&(_ZTV7ee55702[17]), 17,25},
+ {&(_ZTV7ee55702[23]), 23,25},
+ {&(_tg__ZTV6dd5702__7ee55702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd5702__7ee55702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd5702__7ee55702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee55702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee55702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55702[];
+extern VTBL_ENTRY _ZTV7ee55702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55702[];
+static VTBL_ENTRY alt_thunk_names1136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee557023barEv,_ZTv0_n16_N7ee557023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee557023barEv,_ZThn24_N7ee557023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee557023barEv,_ZTv0_n20_N7ee557023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557023barEv,_ZThn16_N7ee557023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557023barEv,_ZThn8_N7ee557023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55702 = { "ee55702", // class name
+ bases_ee55702, 4,
+ &(vtc_ee55702[0]), // expected_vtbl_contents
+ &(vtt_ee55702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55702),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1136,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65702 : dd5702 {
+ int e;
+ virtual void foo(); // _ZN7ee657023fooEv
+ virtual void bar(); // _ZN7ee657023barEv
+ ~ee65702(); // tgen
+ ee65702(); // tgen
+};
+//SIG(1 ee65702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65702 ::foo(){vfunc_called(this, "_ZN7ee657023fooEv");}
+void ee65702 ::bar(){vfunc_called(this, "_ZN7ee657023barEv");}
+ee65702 ::~ee65702(){ note_dtor("ee65702", this);} // tgen
+ee65702 ::ee65702(){ note_ctor("ee65702", this);} // tgen
+
+static void Test_ee65702()
+{
+ extern Class_Descriptor cd_ee65702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65702, buf);
+ ee65702 *dp, &lv = *(dp=new (buf) ee65702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee65702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee65702");
+ check_base_class_offset(lv, (cc702*)(dd5702*), ABISELECT(16,12), "ee65702");
+ check_base_class_offset(lv, (dd5702*), 0, "ee65702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65702.e");
+ test_class_info(&lv, &cd_ee65702);
+ dp->~ee65702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65702(Test_ee65702, "ee65702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65702C1Ev();
+extern void _ZN7ee65702D1Ev();
+Name_Map name_map_ee65702[] = {
+ NSPAIR(_ZN7ee65702C1Ev),
+ NSPAIR(_ZN7ee65702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd5702;
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static Base_Class bases_ee65702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65702[];
+extern void _ZN7ee657023barEv();
+extern void _ZN7ee657023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee657023fooEv,_ZTv0_n16_N7ee657023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657023fooEv,_ZThn12_N7ee657023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee657023barEv,_ZTv0_n20_N7ee657023barEv)();
+extern void ABISELECT(_ZThn16_N7ee657023barEv,_ZThn12_N7ee657023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657023fooEv,_ZTv0_n12_N7ee657023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee657023fooEv,_ZThn20_N7ee657023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657023barEv,_ZTv0_n16_N7ee657023barEv)();
+extern void ABISELECT(_ZThn32_N7ee657023barEv,_ZThn20_N7ee657023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65702[0]),
+ (VTBL_ENTRY)&_ZN7ee657023barEv,
+ (VTBL_ENTRY)&_ZN7ee657023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657023fooEv,_ZTv0_n16_N7ee657023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657023barEv,_ZTv0_n20_N7ee657023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657023fooEv,_ZTv0_n12_N7ee657023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657023barEv,_ZTv0_n16_N7ee657023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65702[];
+extern void _ZN6dd57023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5702__7ee65702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702__7ee65702[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5702__7ee65702[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee65702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee65702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee65702[] = {
+ {&(_ZTV7ee65702[4]), 4,19},
+ {&(_tg__ZTV6dd5702__7ee65702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd5702__7ee65702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd5702__7ee65702[4]), 4,6},
+ {&(_ZTV7ee65702[11]), 11,19},
+ {&(_ZTV7ee65702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee65702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee65702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65702[];
+extern VTBL_ENTRY _ZTV7ee65702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65702[];
+static VTBL_ENTRY alt_thunk_names1137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn20_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn12_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657023barEv,_ZTv0_n16_N7ee657023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657023barEv,_ZThn20_N7ee657023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657023fooEv,_ZTv0_n12_N7ee657023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657023fooEv,_ZThn20_N7ee657023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657023barEv,_ZTv0_n20_N7ee657023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657023barEv,_ZThn12_N7ee657023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657023fooEv,_ZTv0_n16_N7ee657023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657023fooEv,_ZThn12_N7ee657023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65702 = { "ee65702", // class name
+ bases_ee65702, 4,
+ &(vtc_ee65702[0]), // expected_vtbl_contents
+ &(vtt_ee65702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1137,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75702 : virtual dd5702 {
+ int e;
+ virtual void foo(); // _ZN7ee757023fooEv
+ virtual void bar(); // _ZN7ee757023barEv
+ ~ee75702(); // tgen
+ ee75702(); // tgen
+};
+//SIG(1 ee75702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75702 ::foo(){vfunc_called(this, "_ZN7ee757023fooEv");}
+void ee75702 ::bar(){vfunc_called(this, "_ZN7ee757023barEv");}
+ee75702 ::~ee75702(){ note_dtor("ee75702", this);} // tgen
+ee75702 ::ee75702(){ note_ctor("ee75702", this);} // tgen
+
+static void Test_ee75702()
+{
+ extern Class_Descriptor cd_ee75702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75702, buf);
+ ee75702 *dp, &lv = *(dp=new (buf) ee75702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee75702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee75702");
+ check_base_class_offset(lv, (cc702*)(dd5702*), ABISELECT(32,16), "ee75702");
+ check_base_class_offset(lv, (dd5702*), ABISELECT(16,8), "ee75702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75702.e");
+ test_class_info(&lv, &cd_ee75702);
+ dp->~ee75702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75702(Test_ee75702, "ee75702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75702C1Ev();
+extern void _ZN7ee75702D1Ev();
+Name_Map name_map_ee75702[] = {
+ NSPAIR(_ZN7ee75702C1Ev),
+ NSPAIR(_ZN7ee75702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd5702;
+extern VTBL_ENTRY _ZTI6dd5702[];
+extern VTBL_ENTRY _ZTV6dd5702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5702[];
+static Base_Class bases_ee75702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5702, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75702[];
+extern void _ZN7ee757023fooEv();
+extern void _ZN7ee757023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee757023barEv,_ZTv0_n20_N7ee757023barEv)();
+extern void ABISELECT(_ZThn16_N7ee757023barEv,_ZThn8_N7ee757023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757023fooEv,_ZTv0_n16_N7ee757023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757023fooEv,_ZThn16_N7ee757023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757023barEv,_ZTv0_n20_N7ee757023barEv)();
+extern void ABISELECT(_ZThn32_N7ee757023barEv,_ZThn16_N7ee757023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757023fooEv,_ZTv0_n12_N7ee757023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee757023fooEv,_ZThn24_N7ee757023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757023barEv,_ZTv0_n16_N7ee757023barEv)();
+extern void ABISELECT(_ZThn48_N7ee757023barEv,_ZThn24_N7ee757023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75702[0]),
+ (VTBL_ENTRY)&_ZN7ee757023fooEv,
+ (VTBL_ENTRY)&_ZN7ee757023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757023barEv,_ZTv0_n20_N7ee757023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757023fooEv,_ZTv0_n16_N7ee757023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757023barEv,_ZTv0_n20_N7ee757023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757023fooEv,_ZTv0_n12_N7ee757023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757023barEv,_ZTv0_n16_N7ee757023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75702[];
+extern void _ZN6dd57023barEv();
+static VTBL_ENTRY _tg__ZTV6dd5702__7ee75702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN6dd57023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv)();
+extern void ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd5702__7ee75702[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv)();
+extern void ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd5702__7ee75702[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee75702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee75702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee75702[] = {
+ {&(_ZTV7ee75702[5]), 5,26},
+ {&(_ZTV7ee75702[12]), 12,26},
+ {&(_ZTV7ee75702[18]), 18,26},
+ {&(_ZTV7ee75702[24]), 24,26},
+ {&(_tg__ZTV6dd5702__7ee75702[4]), 4,5},
+ {&(_tg__ZTV5cc702__6dd5702__7ee75702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd5702__7ee75702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee75702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee75702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75702[];
+extern VTBL_ENTRY _ZTV7ee75702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75702[];
+static VTBL_ENTRY alt_thunk_names1138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57023barEv,_ZTv0_n16_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57023barEv,_ZThn16_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd57023barEv,_ZTv0_n20_N6dd57023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57023barEv,_ZThn8_N6dd57023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757023barEv,_ZTv0_n16_N7ee757023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757023barEv,_ZThn24_N7ee757023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757023fooEv,_ZTv0_n12_N7ee757023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757023fooEv,_ZThn24_N7ee757023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757023fooEv,_ZTv0_n16_N7ee757023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757023fooEv,_ZThn16_N7ee757023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757023barEv,_ZTv0_n20_N7ee757023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757023barEv,_ZThn16_N7ee757023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757023barEv,_ZThn8_N7ee757023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75702 = { "ee75702", // class name
+ bases_ee75702, 4,
+ &(vtc_ee75702[0]), // expected_vtbl_contents
+ &(vtt_ee75702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75702),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1138,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6702 : cc702 {
+ int d;
+ virtual void bar(); // _ZN6dd67023barEv
+ virtual void foo(); // _ZN6dd67023fooEv
+ ~dd6702(); // tgen
+ dd6702(); // tgen
+};
+//SIG(-1 dd6702) C1{ BC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6702 ::bar(){vfunc_called(this, "_ZN6dd67023barEv");}
+void dd6702 ::foo(){vfunc_called(this, "_ZN6dd67023fooEv");}
+dd6702 ::~dd6702(){ note_dtor("dd6702", this);} // tgen
+dd6702 ::dd6702(){ note_ctor("dd6702", this);} // tgen
+
+static void Test_dd6702()
+{
+ extern Class_Descriptor cd_dd6702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6702, buf);
+ dd6702 *dp, &lv = *(dp=new (buf) dd6702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(16,12), "dd6702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(16,12), "dd6702");
+ check_base_class_offset(lv, (cc702*), 0, "dd6702");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6702.d");
+ test_class_info(&lv, &cd_dd6702);
+ dp->~dd6702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6702(Test_dd6702, "dd6702", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6702C1Ev();
+extern void _ZN6dd6702D1Ev();
+Name_Map name_map_dd6702[] = {
+ NSPAIR(_ZN6dd6702C1Ev),
+ NSPAIR(_ZN6dd6702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static Base_Class bases_dd6702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_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 _ZTI6dd6702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd6702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__6dd6702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_dd6702[] = {
+ {&(_ZTV6dd6702[3]), 3,11},
+ {&(_tg__ZTV5cc702__6dd6702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__6dd6702[4]), 4,6},
+ {&(_ZTV6dd6702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static VTBL_ENTRY alt_thunk_names1139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6702 = { "dd6702", // class name
+ bases_dd6702, 3,
+ &(vtc_dd6702[0]), // expected_vtbl_contents
+ &(vtt_dd6702[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6702),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1139,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06702 : dd6702 {
+ int e;
+ ~ee06702(); // tgen
+ ee06702(); // tgen
+};
+//SIG(1 ee06702) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06702 ::~ee06702(){ note_dtor("ee06702", this);} // tgen
+ee06702 ::ee06702(){ note_ctor("ee06702", this);} // tgen
+
+static void Test_ee06702()
+{
+ extern Class_Descriptor cd_ee06702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06702, buf);
+ ee06702 *dp, &lv = *(dp=new (buf) ee06702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee06702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd6702*), ABISELECT(24,16), "ee06702");
+ check_base_class_offset(lv, (cc702*)(dd6702*), 0, "ee06702");
+ check_base_class_offset(lv, (dd6702*), 0, "ee06702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06702.e");
+ test_class_info(&lv, &cd_ee06702);
+ dp->~ee06702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06702(Test_ee06702, "ee06702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06702C1Ev();
+extern void _ZN7ee06702D1Ev();
+Name_Map name_map_ee06702[] = {
+ NSPAIR(_ZN7ee06702C1Ev),
+ NSPAIR(_ZN7ee06702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd6702;
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static Base_Class bases_ee06702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6702__7ee06702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd6702__7ee06702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd6702__7ee06702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6702__7ee06702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+static VTT_ENTRY vtt_ee06702[] = {
+ {&(_ZTV7ee06702[3]), 3,11},
+ {&(_tg__ZTV6dd6702__7ee06702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd6702__7ee06702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd6702__7ee06702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6702__7ee06702[4]), 4,6},
+ {&(_ZTV7ee06702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06702[];
+extern VTBL_ENTRY _ZTV7ee06702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06702[];
+static VTBL_ENTRY alt_thunk_names1140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06702 = { "ee06702", // class name
+ bases_ee06702, 4,
+ &(vtc_ee06702[0]), // expected_vtbl_contents
+ &(vtt_ee06702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1140,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16702 : virtual dd6702 {
+ int e;
+ ~ee16702(); // tgen
+ ee16702(); // tgen
+};
+//SIG(1 ee16702) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16702 ::~ee16702(){ note_dtor("ee16702", this);} // tgen
+ee16702 ::ee16702(){ note_ctor("ee16702", this);} // tgen
+
+static void Test_ee16702()
+{
+ extern Class_Descriptor cd_ee16702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16702, buf);
+ ee16702 *dp, &lv = *(dp=new (buf) ee16702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee16702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd6702*), ABISELECT(32,20), "ee16702");
+ check_base_class_offset(lv, (cc702*)(dd6702*), ABISELECT(16,8), "ee16702");
+ check_base_class_offset(lv, (dd6702*), ABISELECT(16,8), "ee16702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16702.e");
+ test_class_info(&lv, &cd_ee16702);
+ dp->~ee16702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16702(Test_ee16702, "ee16702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16702C1Ev();
+extern void _ZN7ee16702D1Ev();
+Name_Map name_map_ee16702[] = {
+ NSPAIR(_ZN7ee16702C1Ev),
+ NSPAIR(_ZN7ee16702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd6702;
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static Base_Class bases_ee16702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6702, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16702[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6702__7ee16702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd6702__7ee16702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd6702__7ee16702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6702__7ee16702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+static VTT_ENTRY vtt_ee16702[] = {
+ {&(_ZTV7ee16702[4]), 4,17},
+ {&(_ZTV7ee16702[9]), 9,17},
+ {&(_ZTV7ee16702[15]), 15,17},
+ {&(_tg__ZTV6dd6702__7ee16702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd6702__7ee16702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd6702__7ee16702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6702__7ee16702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16702[];
+extern VTBL_ENTRY _ZTV7ee16702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16702[];
+static VTBL_ENTRY alt_thunk_names1141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16702 = { "ee16702", // class name
+ bases_ee16702, 4,
+ &(vtc_ee16702[0]), // expected_vtbl_contents
+ &(vtt_ee16702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16702),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1141,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26702 : dd6702 {
+ int e;
+ virtual void foo(); // _ZN7ee267023fooEv
+ ~ee26702(); // tgen
+ ee26702(); // tgen
+};
+//SIG(1 ee26702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26702 ::foo(){vfunc_called(this, "_ZN7ee267023fooEv");}
+ee26702 ::~ee26702(){ note_dtor("ee26702", this);} // tgen
+ee26702 ::ee26702(){ note_ctor("ee26702", this);} // tgen
+
+static void Test_ee26702()
+{
+ extern Class_Descriptor cd_ee26702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26702, buf);
+ ee26702 *dp, &lv = *(dp=new (buf) ee26702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee26702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd6702*), ABISELECT(24,16), "ee26702");
+ check_base_class_offset(lv, (cc702*)(dd6702*), 0, "ee26702");
+ check_base_class_offset(lv, (dd6702*), 0, "ee26702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26702.e");
+ test_class_info(&lv, &cd_ee26702);
+ dp->~ee26702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26702(Test_ee26702, "ee26702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26702C1Ev();
+extern void _ZN7ee26702D1Ev();
+Name_Map name_map_ee26702[] = {
+ NSPAIR(_ZN7ee26702C1Ev),
+ NSPAIR(_ZN7ee26702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd6702;
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static Base_Class bases_ee26702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26702[];
+extern void _ZN7ee267023fooEv();
+extern void _ZN6dd67023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee267023fooEv,_ZTv0_n12_N7ee267023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee267023fooEv,_ZThn16_N7ee267023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26702[0]),
+ (VTBL_ENTRY)&_ZN7ee267023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267023fooEv,_ZTv0_n12_N7ee267023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6702__7ee26702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd6702__7ee26702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd6702__7ee26702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6702__7ee26702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+static VTT_ENTRY vtt_ee26702[] = {
+ {&(_ZTV7ee26702[3]), 3,11},
+ {&(_tg__ZTV6dd6702__7ee26702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd6702__7ee26702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd6702__7ee26702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6702__7ee26702[4]), 4,6},
+ {&(_ZTV7ee26702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26702[];
+extern VTBL_ENTRY _ZTV7ee26702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26702[];
+static VTBL_ENTRY alt_thunk_names1142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267023fooEv,_ZTv0_n12_N7ee267023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee267023fooEv,_ZThn16_N7ee267023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26702 = { "ee26702", // class name
+ bases_ee26702, 4,
+ &(vtc_ee26702[0]), // expected_vtbl_contents
+ &(vtt_ee26702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1142,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36702 : virtual dd6702 {
+ int e;
+ virtual void foo(); // _ZN7ee367023fooEv
+ ~ee36702(); // tgen
+ ee36702(); // tgen
+};
+//SIG(1 ee36702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36702 ::foo(){vfunc_called(this, "_ZN7ee367023fooEv");}
+ee36702 ::~ee36702(){ note_dtor("ee36702", this);} // tgen
+ee36702 ::ee36702(){ note_ctor("ee36702", this);} // tgen
+
+static void Test_ee36702()
+{
+ extern Class_Descriptor cd_ee36702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36702, buf);
+ ee36702 *dp, &lv = *(dp=new (buf) ee36702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee36702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd6702*), ABISELECT(32,20), "ee36702");
+ check_base_class_offset(lv, (cc702*)(dd6702*), ABISELECT(16,8), "ee36702");
+ check_base_class_offset(lv, (dd6702*), ABISELECT(16,8), "ee36702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36702.e");
+ test_class_info(&lv, &cd_ee36702);
+ dp->~ee36702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36702(Test_ee36702, "ee36702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36702C1Ev();
+extern void _ZN7ee36702D1Ev();
+Name_Map name_map_ee36702[] = {
+ NSPAIR(_ZN7ee36702C1Ev),
+ NSPAIR(_ZN7ee36702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd6702;
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static Base_Class bases_ee36702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36702[];
+extern void _ZN7ee367023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee367023fooEv,_ZTv0_n16_N7ee367023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367023fooEv,_ZThn8_N7ee367023fooEv)() __attribute__((weak));
+extern void _ZN6dd67023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee367023fooEv,_ZTv0_n12_N7ee367023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee367023fooEv,_ZThn20_N7ee367023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36702[0]),
+ (VTBL_ENTRY)&_ZN7ee367023fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee367023fooEv,_ZTv0_n16_N7ee367023fooEv),
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367023fooEv,_ZTv0_n12_N7ee367023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6702__7ee36702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd6702__7ee36702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd6702__7ee36702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6702__7ee36702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+static VTT_ENTRY vtt_ee36702[] = {
+ {&(_ZTV7ee36702[4]), 4,18},
+ {&(_ZTV7ee36702[10]), 10,18},
+ {&(_ZTV7ee36702[16]), 16,18},
+ {&(_tg__ZTV6dd6702__7ee36702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd6702__7ee36702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd6702__7ee36702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6702__7ee36702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36702[];
+extern VTBL_ENTRY _ZTV7ee36702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36702[];
+static VTBL_ENTRY alt_thunk_names1143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367023fooEv,_ZTv0_n12_N7ee367023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee367023fooEv,_ZThn20_N7ee367023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee367023fooEv,_ZTv0_n16_N7ee367023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367023fooEv,_ZThn8_N7ee367023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36702 = { "ee36702", // class name
+ bases_ee36702, 4,
+ &(vtc_ee36702[0]), // expected_vtbl_contents
+ &(vtt_ee36702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1143,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46702 : dd6702 {
+ int e;
+ virtual void bar(); // _ZN7ee467023barEv
+ ~ee46702(); // tgen
+ ee46702(); // tgen
+};
+//SIG(1 ee46702) C1{ BC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46702 ::bar(){vfunc_called(this, "_ZN7ee467023barEv");}
+ee46702 ::~ee46702(){ note_dtor("ee46702", this);} // tgen
+ee46702 ::ee46702(){ note_ctor("ee46702", this);} // tgen
+
+static void Test_ee46702()
+{
+ extern Class_Descriptor cd_ee46702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46702, buf);
+ ee46702 *dp, &lv = *(dp=new (buf) ee46702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee46702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd6702*), ABISELECT(24,16), "ee46702");
+ check_base_class_offset(lv, (cc702*)(dd6702*), 0, "ee46702");
+ check_base_class_offset(lv, (dd6702*), 0, "ee46702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46702.e");
+ test_class_info(&lv, &cd_ee46702);
+ dp->~ee46702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46702(Test_ee46702, "ee46702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46702C1Ev();
+extern void _ZN7ee46702D1Ev();
+Name_Map name_map_ee46702[] = {
+ NSPAIR(_ZN7ee46702C1Ev),
+ NSPAIR(_ZN7ee46702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd6702;
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static Base_Class bases_ee46702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN7ee467023barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee467023barEv,_ZTv0_n16_N7ee467023barEv)();
+extern void ABISELECT(_ZThn24_N7ee467023barEv,_ZThn16_N7ee467023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN7ee467023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee467023barEv,_ZTv0_n16_N7ee467023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6702__7ee46702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd6702__7ee46702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd6702__7ee46702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6702__7ee46702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+static VTT_ENTRY vtt_ee46702[] = {
+ {&(_ZTV7ee46702[3]), 3,11},
+ {&(_tg__ZTV6dd6702__7ee46702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd6702__7ee46702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd6702__7ee46702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6702__7ee46702[4]), 4,6},
+ {&(_ZTV7ee46702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46702[];
+extern VTBL_ENTRY _ZTV7ee46702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46702[];
+static VTBL_ENTRY alt_thunk_names1144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee467023barEv,_ZTv0_n16_N7ee467023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee467023barEv,_ZThn16_N7ee467023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46702 = { "ee46702", // class name
+ bases_ee46702, 4,
+ &(vtc_ee46702[0]), // expected_vtbl_contents
+ &(vtt_ee46702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56702 : virtual dd6702 {
+ int e;
+ virtual void bar(); // _ZN7ee567023barEv
+ ~ee56702(); // tgen
+ ee56702(); // tgen
+};
+//SIG(1 ee56702) C1{ VBC2{ BC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56702 ::bar(){vfunc_called(this, "_ZN7ee567023barEv");}
+ee56702 ::~ee56702(){ note_dtor("ee56702", this);} // tgen
+ee56702 ::ee56702(){ note_ctor("ee56702", this);} // tgen
+
+static void Test_ee56702()
+{
+ extern Class_Descriptor cd_ee56702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56702, buf);
+ ee56702 *dp, &lv = *(dp=new (buf) ee56702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee56702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd6702*), ABISELECT(32,20), "ee56702");
+ check_base_class_offset(lv, (cc702*)(dd6702*), ABISELECT(16,8), "ee56702");
+ check_base_class_offset(lv, (dd6702*), ABISELECT(16,8), "ee56702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56702.e");
+ test_class_info(&lv, &cd_ee56702);
+ dp->~ee56702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56702(Test_ee56702, "ee56702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56702C1Ev();
+extern void _ZN7ee56702D1Ev();
+Name_Map name_map_ee56702[] = {
+ NSPAIR(_ZN7ee56702C1Ev),
+ NSPAIR(_ZN7ee56702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd6702;
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static Base_Class bases_ee56702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56702[];
+extern void _ZN7ee567023barEv();
+extern void _ZN6dd67023fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee567023barEv,_ZTv0_n20_N7ee567023barEv)();
+extern void ABISELECT(_ZThn16_N7ee567023barEv,_ZThn8_N7ee567023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee567023barEv,_ZTv0_n16_N7ee567023barEv)();
+extern void ABISELECT(_ZThn32_N7ee567023barEv,_ZThn20_N7ee567023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56702[0]),
+ (VTBL_ENTRY)&_ZN7ee567023barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee567023barEv,_ZTv0_n20_N7ee567023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee567023barEv,_ZTv0_n16_N7ee567023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6702__7ee56702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd6702__7ee56702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd6702__7ee56702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6702__7ee56702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+static VTT_ENTRY vtt_ee56702[] = {
+ {&(_ZTV7ee56702[4]), 4,18},
+ {&(_ZTV7ee56702[10]), 10,18},
+ {&(_ZTV7ee56702[16]), 16,18},
+ {&(_tg__ZTV6dd6702__7ee56702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd6702__7ee56702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd6702__7ee56702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6702__7ee56702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56702[];
+extern VTBL_ENTRY _ZTV7ee56702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56702[];
+static VTBL_ENTRY alt_thunk_names1145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee567023barEv,_ZTv0_n16_N7ee567023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee567023barEv,_ZThn20_N7ee567023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee567023barEv,_ZTv0_n20_N7ee567023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567023barEv,_ZThn8_N7ee567023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56702 = { "ee56702", // class name
+ bases_ee56702, 4,
+ &(vtc_ee56702[0]), // expected_vtbl_contents
+ &(vtt_ee56702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56702),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1145,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66702 : dd6702 {
+ int e;
+ virtual void foo(); // _ZN7ee667023fooEv
+ virtual void bar(); // _ZN7ee667023barEv
+ ~ee66702(); // tgen
+ ee66702(); // tgen
+};
+//SIG(1 ee66702) C1{ BC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66702 ::foo(){vfunc_called(this, "_ZN7ee667023fooEv");}
+void ee66702 ::bar(){vfunc_called(this, "_ZN7ee667023barEv");}
+ee66702 ::~ee66702(){ note_dtor("ee66702", this);} // tgen
+ee66702 ::ee66702(){ note_ctor("ee66702", this);} // tgen
+
+static void Test_ee66702()
+{
+ extern Class_Descriptor cd_ee66702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66702, buf);
+ ee66702 *dp, &lv = *(dp=new (buf) ee66702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(24,16), "ee66702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd6702*), ABISELECT(24,16), "ee66702");
+ check_base_class_offset(lv, (cc702*)(dd6702*), 0, "ee66702");
+ check_base_class_offset(lv, (dd6702*), 0, "ee66702");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66702.e");
+ test_class_info(&lv, &cd_ee66702);
+ dp->~ee66702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66702(Test_ee66702, "ee66702", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66702C1Ev();
+extern void _ZN7ee66702D1Ev();
+Name_Map name_map_ee66702[] = {
+ NSPAIR(_ZN7ee66702C1Ev),
+ NSPAIR(_ZN7ee66702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd6702;
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static Base_Class bases_ee66702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(24,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66702[];
+extern void _ZN7ee667023fooEv();
+extern void _ZN7ee667023barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee667023fooEv,_ZTv0_n12_N7ee667023fooEv)();
+extern void ABISELECT(_ZThn24_N7ee667023fooEv,_ZThn16_N7ee667023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee667023barEv,_ZTv0_n16_N7ee667023barEv)();
+extern void ABISELECT(_ZThn24_N7ee667023barEv,_ZThn16_N7ee667023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66702[0]),
+ (VTBL_ENTRY)&_ZN7ee667023fooEv,
+ (VTBL_ENTRY)&_ZN7ee667023barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667023fooEv,_ZTv0_n12_N7ee667023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667023barEv,_ZTv0_n16_N7ee667023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6702__7ee66702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd6702__7ee66702[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd6702__7ee66702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6702__7ee66702[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+static VTT_ENTRY vtt_ee66702[] = {
+ {&(_ZTV7ee66702[3]), 3,11},
+ {&(_tg__ZTV6dd6702__7ee66702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd6702__7ee66702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd6702__7ee66702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6702__7ee66702[4]), 4,6},
+ {&(_ZTV7ee66702[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66702[];
+extern VTBL_ENTRY _ZTV7ee66702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66702[];
+static VTBL_ENTRY alt_thunk_names1146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023barEv,_ZThn16_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67023fooEv,_ZThn16_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023barEv,_ZThn16_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7023fooEv,_ZThn16_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee667023barEv,_ZTv0_n16_N7ee667023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667023barEv,_ZThn16_N7ee667023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667023fooEv,_ZTv0_n12_N7ee667023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667023fooEv,_ZThn16_N7ee667023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66702 = { "ee66702", // class name
+ bases_ee66702, 4,
+ &(vtc_ee66702[0]), // expected_vtbl_contents
+ &(vtt_ee66702[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66702),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66702),6, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1146,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76702 : virtual dd6702 {
+ int e;
+ virtual void foo(); // _ZN7ee767023fooEv
+ virtual void bar(); // _ZN7ee767023barEv
+ ~ee76702(); // tgen
+ ee76702(); // tgen
+};
+//SIG(1 ee76702) C1{ VBC2{ BC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76702 ::foo(){vfunc_called(this, "_ZN7ee767023fooEv");}
+void ee76702 ::bar(){vfunc_called(this, "_ZN7ee767023barEv");}
+ee76702 ::~ee76702(){ note_dtor("ee76702", this);} // tgen
+ee76702 ::ee76702(){ note_ctor("ee76702", this);} // tgen
+
+static void Test_ee76702()
+{
+ extern Class_Descriptor cd_ee76702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76702, buf);
+ ee76702 *dp, &lv = *(dp=new (buf) ee76702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee76702");
+ check_base_class_offset(lv, (bb02*)(cc702*)(dd6702*), ABISELECT(32,20), "ee76702");
+ check_base_class_offset(lv, (cc702*)(dd6702*), ABISELECT(16,8), "ee76702");
+ check_base_class_offset(lv, (dd6702*), ABISELECT(16,8), "ee76702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76702.e");
+ test_class_info(&lv, &cd_ee76702);
+ dp->~ee76702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76702(Test_ee76702, "ee76702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76702C1Ev();
+extern void _ZN7ee76702D1Ev();
+Name_Map name_map_ee76702[] = {
+ NSPAIR(_ZN7ee76702C1Ev),
+ NSPAIR(_ZN7ee76702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd6702;
+extern VTBL_ENTRY _ZTI6dd6702[];
+extern VTBL_ENTRY _ZTV6dd6702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6702[];
+static Base_Class bases_ee76702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76702[];
+extern void _ZN7ee767023fooEv();
+extern void _ZN7ee767023barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee767023fooEv,_ZTv0_n16_N7ee767023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767023fooEv,_ZThn8_N7ee767023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee767023barEv,_ZTv0_n20_N7ee767023barEv)();
+extern void ABISELECT(_ZThn16_N7ee767023barEv,_ZThn8_N7ee767023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767023fooEv,_ZTv0_n12_N7ee767023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee767023fooEv,_ZThn20_N7ee767023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767023barEv,_ZTv0_n16_N7ee767023barEv)();
+extern void ABISELECT(_ZThn32_N7ee767023barEv,_ZThn20_N7ee767023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76702[0]),
+ (VTBL_ENTRY)&_ZN7ee767023fooEv,
+ (VTBL_ENTRY)&_ZN7ee767023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767023fooEv,_ZTv0_n16_N7ee767023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767023barEv,_ZTv0_n20_N7ee767023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767023fooEv,_ZTv0_n12_N7ee767023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767023barEv,_ZTv0_n16_N7ee767023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76702[];
+extern void _ZN6dd67023fooEv();
+extern void _ZN6dd67023barEv();
+static VTBL_ENTRY _tg__ZTV6dd6702__7ee76702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&_ZN6dd67023fooEv,
+ (VTBL_ENTRY)&_ZN6dd67023barEv,
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc7026dd6702__7ee76702[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc7026dd6702__7ee76702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv)();
+extern void ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd6702__7ee76702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv),
+};
+static VTT_ENTRY vtt_ee76702[] = {
+ {&(_ZTV7ee76702[4]), 4,19},
+ {&(_ZTV7ee76702[11]), 11,19},
+ {&(_ZTV7ee76702[17]), 17,19},
+ {&(_tg__ZTV6dd6702__7ee76702[3]), 3,5},
+ {&(_tg__ZTV5cc7026dd6702__7ee76702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc7026dd6702__7ee76702[4]), 4,6},
+ {&(_tg__ZTV3aa24bb02__6dd6702__7ee76702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76702[];
+extern VTBL_ENTRY _ZTV7ee76702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76702[];
+static VTBL_ENTRY alt_thunk_names1147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67023barEv,_ZTv0_n16_N6dd67023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023barEv,_ZThn12_N6dd67023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67023fooEv,_ZTv0_n12_N6dd67023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67023fooEv,_ZThn12_N6dd67023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn12_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn12_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767023barEv,_ZTv0_n16_N7ee767023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767023barEv,_ZThn20_N7ee767023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767023fooEv,_ZTv0_n12_N7ee767023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767023fooEv,_ZThn20_N7ee767023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767023barEv,_ZTv0_n20_N7ee767023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767023barEv,_ZThn8_N7ee767023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767023fooEv,_ZTv0_n16_N7ee767023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767023fooEv,_ZThn8_N7ee767023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76702 = { "ee76702", // class name
+ bases_ee76702, 4,
+ &(vtc_ee76702[0]), // expected_vtbl_contents
+ &(vtt_ee76702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76702),7, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1147,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7702 : virtual cc702 {
+ int d;
+ virtual void bar(); // _ZN6dd77023barEv
+ virtual void foo(); // _ZN6dd77023fooEv
+ ~dd7702(); // tgen
+ dd7702(); // tgen
+};
+//SIG(-1 dd7702) C1{ VBC2{ VBC3{ BC4{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7702 ::bar(){vfunc_called(this, "_ZN6dd77023barEv");}
+void dd7702 ::foo(){vfunc_called(this, "_ZN6dd77023fooEv");}
+dd7702 ::~dd7702(){ note_dtor("dd7702", this);} // tgen
+dd7702 ::dd7702(){ note_ctor("dd7702", this);} // tgen
+
+static void Test_dd7702()
+{
+ extern Class_Descriptor cd_dd7702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7702, buf);
+ dd7702 *dp, &lv = *(dp=new (buf) dd7702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,16), "dd7702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,16), "dd7702");
+ check_base_class_offset(lv, (cc702*), ABISELECT(16,8), "dd7702");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7702.d");
+ test_class_info(&lv, &cd_dd7702);
+ dp->~dd7702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7702(Test_dd7702, "dd7702", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7702C1Ev();
+extern void _ZN6dd7702D1Ev();
+Name_Map name_map_dd7702[] = {
+ NSPAIR(_ZN6dd7702C1Ev),
+ NSPAIR(_ZN6dd7702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+static Base_Class bases_dd7702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, 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 _ZTI6dd7702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__6dd7702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_dd7702[] = {
+ {&(_ZTV6dd7702[4]), 4,19},
+ {&(_ZTV6dd7702[11]), 11,19},
+ {&(_ZTV6dd7702[17]), 17,19},
+ {&(_tg__ZTV5cc702__6dd7702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__6dd7702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static VTBL_ENTRY alt_thunk_names1148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7702 = { "dd7702", // class name
+ bases_dd7702, 3,
+ &(vtc_dd7702[0]), // expected_vtbl_contents
+ &(vtt_dd7702[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7702),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1148,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07702 : dd7702 {
+ int e;
+ ~ee07702(); // tgen
+ ee07702(); // tgen
+};
+//SIG(1 ee07702) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07702 ::~ee07702(){ note_dtor("ee07702", this);} // tgen
+ee07702 ::ee07702(){ note_ctor("ee07702", this);} // tgen
+
+static void Test_ee07702()
+{
+ extern Class_Descriptor cd_ee07702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07702, buf);
+ ee07702 *dp, &lv = *(dp=new (buf) ee07702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee07702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee07702");
+ check_base_class_offset(lv, (cc702*)(dd7702*), ABISELECT(16,12), "ee07702");
+ check_base_class_offset(lv, (dd7702*), 0, "ee07702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07702.e");
+ test_class_info(&lv, &cd_ee07702);
+ dp->~ee07702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07702(Test_ee07702, "ee07702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07702C1Ev();
+extern void _ZN7ee07702D1Ev();
+Name_Map name_map_ee07702[] = {
+ NSPAIR(_ZN7ee07702C1Ev),
+ NSPAIR(_ZN7ee07702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd7702;
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static Base_Class bases_ee07702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7702__7ee07702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702__7ee07702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7702__7ee07702[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee07702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee07702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee07702[] = {
+ {&(_ZTV7ee07702[4]), 4,19},
+ {&(_tg__ZTV6dd7702__7ee07702[4]), 4,6},
+ {&(_tg__ZTV5cc702__6dd7702__7ee07702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd7702__7ee07702[4]), 4,6},
+ {&(_ZTV7ee07702[11]), 11,19},
+ {&(_ZTV7ee07702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee07702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee07702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07702[];
+extern VTBL_ENTRY _ZTV7ee07702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07702[];
+static VTBL_ENTRY alt_thunk_names1149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07702 = { "ee07702", // class name
+ bases_ee07702, 4,
+ &(vtc_ee07702[0]), // expected_vtbl_contents
+ &(vtt_ee07702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1149,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17702 : virtual dd7702 {
+ int e;
+ ~ee17702(); // tgen
+ ee17702(); // tgen
+};
+//SIG(1 ee17702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17702 ::~ee17702(){ note_dtor("ee17702", this);} // tgen
+ee17702 ::ee17702(){ note_ctor("ee17702", this);} // tgen
+
+static void Test_ee17702()
+{
+ extern Class_Descriptor cd_ee17702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17702, buf);
+ ee17702 *dp, &lv = *(dp=new (buf) ee17702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee17702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee17702");
+ check_base_class_offset(lv, (cc702*)(dd7702*), ABISELECT(32,16), "ee17702");
+ check_base_class_offset(lv, (dd7702*), ABISELECT(16,8), "ee17702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17702.e");
+ test_class_info(&lv, &cd_ee17702);
+ dp->~ee17702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17702(Test_ee17702, "ee17702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17702C1Ev();
+extern void _ZN7ee17702D1Ev();
+Name_Map name_map_ee17702[] = {
+ NSPAIR(_ZN7ee17702C1Ev),
+ NSPAIR(_ZN7ee17702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd7702;
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static Base_Class bases_ee17702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7702, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17702[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7702__7ee17702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702__7ee17702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7702__7ee17702[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee17702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee17702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee17702[] = {
+ {&(_ZTV7ee17702[5]), 5,26},
+ {&(_ZTV7ee17702[11]), 11,26},
+ {&(_ZTV7ee17702[18]), 18,26},
+ {&(_ZTV7ee17702[24]), 24,26},
+ {&(_tg__ZTV6dd7702__7ee17702[4]), 4,6},
+ {&(_tg__ZTV5cc702__6dd7702__7ee17702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd7702__7ee17702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee17702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee17702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17702[];
+extern VTBL_ENTRY _ZTV7ee17702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17702[];
+static VTBL_ENTRY alt_thunk_names1150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17702 = { "ee17702", // class name
+ bases_ee17702, 4,
+ &(vtc_ee17702[0]), // expected_vtbl_contents
+ &(vtt_ee17702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17702),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1150,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27702 : dd7702 {
+ int e;
+ virtual void foo(); // _ZN7ee277023fooEv
+ ~ee27702(); // tgen
+ ee27702(); // tgen
+};
+//SIG(1 ee27702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27702 ::foo(){vfunc_called(this, "_ZN7ee277023fooEv");}
+ee27702 ::~ee27702(){ note_dtor("ee27702", this);} // tgen
+ee27702 ::ee27702(){ note_ctor("ee27702", this);} // tgen
+
+static void Test_ee27702()
+{
+ extern Class_Descriptor cd_ee27702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27702, buf);
+ ee27702 *dp, &lv = *(dp=new (buf) ee27702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee27702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee27702");
+ check_base_class_offset(lv, (cc702*)(dd7702*), ABISELECT(16,12), "ee27702");
+ check_base_class_offset(lv, (dd7702*), 0, "ee27702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27702.e");
+ test_class_info(&lv, &cd_ee27702);
+ dp->~ee27702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27702(Test_ee27702, "ee27702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27702C1Ev();
+extern void _ZN7ee27702D1Ev();
+Name_Map name_map_ee27702[] = {
+ NSPAIR(_ZN7ee27702C1Ev),
+ NSPAIR(_ZN7ee27702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd7702;
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static Base_Class bases_ee27702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN7ee277023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee277023fooEv,_ZTv0_n16_N7ee277023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277023fooEv,_ZThn12_N7ee277023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277023fooEv,_ZTv0_n12_N7ee277023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee277023fooEv,_ZThn20_N7ee277023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN7ee277023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee277023fooEv,_ZTv0_n16_N7ee277023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277023fooEv,_ZTv0_n12_N7ee277023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7702__7ee27702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702__7ee27702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7702__7ee27702[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee27702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee27702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee27702[] = {
+ {&(_ZTV7ee27702[4]), 4,19},
+ {&(_tg__ZTV6dd7702__7ee27702[4]), 4,6},
+ {&(_tg__ZTV5cc702__6dd7702__7ee27702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd7702__7ee27702[4]), 4,6},
+ {&(_ZTV7ee27702[11]), 11,19},
+ {&(_ZTV7ee27702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee27702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee27702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27702[];
+extern VTBL_ENTRY _ZTV7ee27702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27702[];
+static VTBL_ENTRY alt_thunk_names1151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277023fooEv,_ZTv0_n12_N7ee277023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee277023fooEv,_ZThn20_N7ee277023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee277023fooEv,_ZTv0_n16_N7ee277023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277023fooEv,_ZThn12_N7ee277023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27702 = { "ee27702", // class name
+ bases_ee27702, 4,
+ &(vtc_ee27702[0]), // expected_vtbl_contents
+ &(vtt_ee27702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1151,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37702 : virtual dd7702 {
+ int e;
+ virtual void foo(); // _ZN7ee377023fooEv
+ ~ee37702(); // tgen
+ ee37702(); // tgen
+};
+//SIG(1 ee37702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37702 ::foo(){vfunc_called(this, "_ZN7ee377023fooEv");}
+ee37702 ::~ee37702(){ note_dtor("ee37702", this);} // tgen
+ee37702 ::ee37702(){ note_ctor("ee37702", this);} // tgen
+
+static void Test_ee37702()
+{
+ extern Class_Descriptor cd_ee37702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37702, buf);
+ ee37702 *dp, &lv = *(dp=new (buf) ee37702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee37702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee37702");
+ check_base_class_offset(lv, (cc702*)(dd7702*), ABISELECT(32,16), "ee37702");
+ check_base_class_offset(lv, (dd7702*), ABISELECT(16,8), "ee37702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37702.e");
+ test_class_info(&lv, &cd_ee37702);
+ dp->~ee37702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37702(Test_ee37702, "ee37702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37702C1Ev();
+extern void _ZN7ee37702D1Ev();
+Name_Map name_map_ee37702[] = {
+ NSPAIR(_ZN7ee37702C1Ev),
+ NSPAIR(_ZN7ee37702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd7702;
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static Base_Class bases_ee37702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37702[];
+extern void _ZN7ee377023fooEv();
+extern void _ZN6dd77023barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee377023fooEv,_ZTv0_n24_N7ee377023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377023fooEv,_ZThn8_N7ee377023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee377023fooEv,_ZTv0_n16_N7ee377023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377023fooEv,_ZThn16_N7ee377023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377023fooEv,_ZTv0_n12_N7ee377023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee377023fooEv,_ZThn24_N7ee377023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37702[0]),
+ (VTBL_ENTRY)&_ZN7ee377023fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee377023fooEv,_ZTv0_n24_N7ee377023fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee377023fooEv,_ZTv0_n16_N7ee377023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377023fooEv,_ZTv0_n12_N7ee377023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7702__7ee37702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702__7ee37702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7702__7ee37702[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee37702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee37702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee37702[] = {
+ {&(_ZTV7ee37702[5]), 5,27},
+ {&(_ZTV7ee37702[12]), 12,27},
+ {&(_ZTV7ee37702[19]), 19,27},
+ {&(_ZTV7ee37702[25]), 25,27},
+ {&(_tg__ZTV6dd7702__7ee37702[4]), 4,6},
+ {&(_tg__ZTV5cc702__6dd7702__7ee37702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd7702__7ee37702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee37702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee37702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37702[];
+extern VTBL_ENTRY _ZTV7ee37702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37702[];
+static VTBL_ENTRY alt_thunk_names1152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377023fooEv,_ZTv0_n12_N7ee377023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee377023fooEv,_ZThn24_N7ee377023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee377023fooEv,_ZTv0_n16_N7ee377023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377023fooEv,_ZThn16_N7ee377023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee377023fooEv,_ZTv0_n24_N7ee377023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377023fooEv,_ZThn8_N7ee377023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37702 = { "ee37702", // class name
+ bases_ee37702, 4,
+ &(vtc_ee37702[0]), // expected_vtbl_contents
+ &(vtt_ee37702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37702),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1152,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47702 : dd7702 {
+ int e;
+ virtual void bar(); // _ZN7ee477023barEv
+ ~ee47702(); // tgen
+ ee47702(); // tgen
+};
+//SIG(1 ee47702) C1{ BC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47702 ::bar(){vfunc_called(this, "_ZN7ee477023barEv");}
+ee47702 ::~ee47702(){ note_dtor("ee47702", this);} // tgen
+ee47702 ::ee47702(){ note_ctor("ee47702", this);} // tgen
+
+static void Test_ee47702()
+{
+ extern Class_Descriptor cd_ee47702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47702, buf);
+ ee47702 *dp, &lv = *(dp=new (buf) ee47702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee47702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee47702");
+ check_base_class_offset(lv, (cc702*)(dd7702*), ABISELECT(16,12), "ee47702");
+ check_base_class_offset(lv, (dd7702*), 0, "ee47702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47702.e");
+ test_class_info(&lv, &cd_ee47702);
+ dp->~ee47702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47702(Test_ee47702, "ee47702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47702C1Ev();
+extern void _ZN7ee47702D1Ev();
+Name_Map name_map_ee47702[] = {
+ NSPAIR(_ZN7ee47702C1Ev),
+ NSPAIR(_ZN7ee47702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd7702;
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static Base_Class bases_ee47702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47702[];
+extern void _ZN7ee477023barEv();
+extern void _ZN6dd77023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee477023barEv,_ZTv0_n20_N7ee477023barEv)();
+extern void ABISELECT(_ZThn16_N7ee477023barEv,_ZThn12_N7ee477023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee477023barEv,_ZTv0_n16_N7ee477023barEv)();
+extern void ABISELECT(_ZThn32_N7ee477023barEv,_ZThn20_N7ee477023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47702[0]),
+ (VTBL_ENTRY)&_ZN7ee477023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee477023barEv,_ZTv0_n20_N7ee477023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee477023barEv,_ZTv0_n16_N7ee477023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7702__7ee47702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702__7ee47702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7702__7ee47702[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee47702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee47702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee47702[] = {
+ {&(_ZTV7ee47702[4]), 4,19},
+ {&(_tg__ZTV6dd7702__7ee47702[4]), 4,6},
+ {&(_tg__ZTV5cc702__6dd7702__7ee47702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd7702__7ee47702[4]), 4,6},
+ {&(_ZTV7ee47702[11]), 11,19},
+ {&(_ZTV7ee47702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee47702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee47702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47702[];
+extern VTBL_ENTRY _ZTV7ee47702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47702[];
+static VTBL_ENTRY alt_thunk_names1153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee477023barEv,_ZTv0_n16_N7ee477023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee477023barEv,_ZThn20_N7ee477023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee477023barEv,_ZTv0_n20_N7ee477023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477023barEv,_ZThn12_N7ee477023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47702 = { "ee47702", // class name
+ bases_ee47702, 4,
+ &(vtc_ee47702[0]), // expected_vtbl_contents
+ &(vtt_ee47702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57702 : virtual dd7702 {
+ int e;
+ virtual void bar(); // _ZN7ee577023barEv
+ ~ee57702(); // tgen
+ ee57702(); // tgen
+};
+//SIG(1 ee57702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v2 v1 Fi} Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57702 ::bar(){vfunc_called(this, "_ZN7ee577023barEv");}
+ee57702 ::~ee57702(){ note_dtor("ee57702", this);} // tgen
+ee57702 ::ee57702(){ note_ctor("ee57702", this);} // tgen
+
+static void Test_ee57702()
+{
+ extern Class_Descriptor cd_ee57702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57702, buf);
+ ee57702 *dp, &lv = *(dp=new (buf) ee57702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee57702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee57702");
+ check_base_class_offset(lv, (cc702*)(dd7702*), ABISELECT(32,16), "ee57702");
+ check_base_class_offset(lv, (dd7702*), ABISELECT(16,8), "ee57702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57702.e");
+ test_class_info(&lv, &cd_ee57702);
+ dp->~ee57702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57702(Test_ee57702, "ee57702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57702C1Ev();
+extern void _ZN7ee57702D1Ev();
+Name_Map name_map_ee57702[] = {
+ NSPAIR(_ZN7ee57702C1Ev),
+ NSPAIR(_ZN7ee57702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd7702;
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static Base_Class bases_ee57702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7702, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57702[];
+extern void _ZN7ee577023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee577023barEv,_ZTv0_n20_N7ee577023barEv)();
+extern void ABISELECT(_ZThn16_N7ee577023barEv,_ZThn8_N7ee577023barEv)() __attribute__((weak));
+extern void _ZN6dd77023fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee577023barEv,_ZTv0_n20_N7ee577023barEv)();
+extern void ABISELECT(_ZThn32_N7ee577023barEv,_ZThn16_N7ee577023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee577023barEv,_ZTv0_n16_N7ee577023barEv)();
+extern void ABISELECT(_ZThn48_N7ee577023barEv,_ZThn24_N7ee577023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57702[0]),
+ (VTBL_ENTRY)&_ZN7ee577023barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577023barEv,_ZTv0_n20_N7ee577023barEv),
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee577023barEv,_ZTv0_n20_N7ee577023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee577023barEv,_ZTv0_n16_N7ee577023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7702__7ee57702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702__7ee57702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7702__7ee57702[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee57702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee57702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee57702[] = {
+ {&(_ZTV7ee57702[5]), 5,27},
+ {&(_ZTV7ee57702[12]), 12,27},
+ {&(_ZTV7ee57702[19]), 19,27},
+ {&(_ZTV7ee57702[25]), 25,27},
+ {&(_tg__ZTV6dd7702__7ee57702[4]), 4,6},
+ {&(_tg__ZTV5cc702__6dd7702__7ee57702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd7702__7ee57702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee57702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee57702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57702[];
+extern VTBL_ENTRY _ZTV7ee57702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57702[];
+static VTBL_ENTRY alt_thunk_names1154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee577023barEv,_ZTv0_n16_N7ee577023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee577023barEv,_ZThn24_N7ee577023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee577023barEv,_ZTv0_n20_N7ee577023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577023barEv,_ZThn16_N7ee577023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577023barEv,_ZThn8_N7ee577023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57702 = { "ee57702", // class name
+ bases_ee57702, 4,
+ &(vtc_ee57702[0]), // expected_vtbl_contents
+ &(vtt_ee57702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57702),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1154,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67702 : dd7702 {
+ int e;
+ virtual void foo(); // _ZN7ee677023fooEv
+ virtual void bar(); // _ZN7ee677023barEv
+ ~ee67702(); // tgen
+ ee67702(); // tgen
+};
+//SIG(1 ee67702) C1{ BC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67702 ::foo(){vfunc_called(this, "_ZN7ee677023fooEv");}
+void ee67702 ::bar(){vfunc_called(this, "_ZN7ee677023barEv");}
+ee67702 ::~ee67702(){ note_dtor("ee67702", this);} // tgen
+ee67702 ::ee67702(){ note_ctor("ee67702", this);} // tgen
+
+static void Test_ee67702()
+{
+ extern Class_Descriptor cd_ee67702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67702, buf);
+ ee67702 *dp, &lv = *(dp=new (buf) ee67702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(32,20), "ee67702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(32,20), "ee67702");
+ check_base_class_offset(lv, (cc702*)(dd7702*), ABISELECT(16,12), "ee67702");
+ check_base_class_offset(lv, (dd7702*), 0, "ee67702");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67702.e");
+ test_class_info(&lv, &cd_ee67702);
+ dp->~ee67702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67702(Test_ee67702, "ee67702", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67702C1Ev();
+extern void _ZN7ee67702D1Ev();
+Name_Map name_map_ee67702[] = {
+ NSPAIR(_ZN7ee67702C1Ev),
+ NSPAIR(_ZN7ee67702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd7702;
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static Base_Class bases_ee67702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(32,20), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7702, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 2, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67702[];
+extern void _ZN7ee677023barEv();
+extern void _ZN7ee677023fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee677023fooEv,_ZTv0_n16_N7ee677023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677023fooEv,_ZThn12_N7ee677023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee677023barEv,_ZTv0_n20_N7ee677023barEv)();
+extern void ABISELECT(_ZThn16_N7ee677023barEv,_ZThn12_N7ee677023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677023fooEv,_ZTv0_n12_N7ee677023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee677023fooEv,_ZThn20_N7ee677023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677023barEv,_ZTv0_n16_N7ee677023barEv)();
+extern void ABISELECT(_ZThn32_N7ee677023barEv,_ZThn20_N7ee677023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67702[0]),
+ (VTBL_ENTRY)&_ZN7ee677023barEv,
+ (VTBL_ENTRY)&_ZN7ee677023fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677023fooEv,_ZTv0_n16_N7ee677023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677023barEv,_ZTv0_n20_N7ee677023barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677023fooEv,_ZTv0_n12_N7ee677023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677023barEv,_ZTv0_n16_N7ee677023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7702__7ee67702[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702__7ee67702[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7702__7ee67702[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee67702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee67702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee67702[] = {
+ {&(_ZTV7ee67702[4]), 4,19},
+ {&(_tg__ZTV6dd7702__7ee67702[4]), 4,6},
+ {&(_tg__ZTV5cc702__6dd7702__7ee67702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd7702__7ee67702[4]), 4,6},
+ {&(_ZTV7ee67702[11]), 11,19},
+ {&(_ZTV7ee67702[17]), 17,19},
+ {&(_tg__ZTV5cc702__7ee67702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee67702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67702[];
+extern VTBL_ENTRY _ZTV7ee67702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67702[];
+static VTBL_ENTRY alt_thunk_names1155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn20_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn20_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn12_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn12_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677023barEv,_ZTv0_n16_N7ee677023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677023barEv,_ZThn20_N7ee677023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677023fooEv,_ZTv0_n12_N7ee677023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677023fooEv,_ZThn20_N7ee677023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677023barEv,_ZTv0_n20_N7ee677023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677023barEv,_ZThn12_N7ee677023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677023fooEv,_ZTv0_n16_N7ee677023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677023fooEv,_ZThn12_N7ee677023fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67702 = { "ee67702", // class name
+ bases_ee67702, 4,
+ &(vtc_ee67702[0]), // expected_vtbl_contents
+ &(vtt_ee67702[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67702),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67702),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67702),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1155,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77702 : virtual dd7702 {
+ int e;
+ virtual void foo(); // _ZN7ee777023fooEv
+ virtual void bar(); // _ZN7ee777023barEv
+ ~ee77702(); // tgen
+ ee77702(); // tgen
+};
+//SIG(1 ee77702) C1{ VBC2{ VBC3{ VBC4{ BC5{ v1 v2 Fi} Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77702 ::foo(){vfunc_called(this, "_ZN7ee777023fooEv");}
+void ee77702 ::bar(){vfunc_called(this, "_ZN7ee777023barEv");}
+ee77702 ::~ee77702(){ note_dtor("ee77702", this);} // tgen
+ee77702 ::ee77702(){ note_ctor("ee77702", this);} // tgen
+
+static void Test_ee77702()
+{
+ extern Class_Descriptor cd_ee77702;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77702, buf);
+ ee77702 *dp, &lv = *(dp=new (buf) ee77702());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77702)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77702)");
+ check_base_class_offset(lv, (aa2*)(bb02*), ABISELECT(48,24), "ee77702");
+ check_base_class_offset(lv, (bb02*)(cc702*), ABISELECT(48,24), "ee77702");
+ check_base_class_offset(lv, (cc702*)(dd7702*), ABISELECT(32,16), "ee77702");
+ check_base_class_offset(lv, (dd7702*), ABISELECT(16,8), "ee77702");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77702.e");
+ test_class_info(&lv, &cd_ee77702);
+ dp->~ee77702();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77702(Test_ee77702, "ee77702", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77702C1Ev();
+extern void _ZN7ee77702D1Ev();
+Name_Map name_map_ee77702[] = {
+ NSPAIR(_ZN7ee77702C1Ev),
+ NSPAIR(_ZN7ee77702D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb02;
+extern VTBL_ENTRY _ZTI4bb02[];
+extern VTBL_ENTRY _ZTV4bb02[];
+extern Class_Descriptor cd_cc702;
+extern VTBL_ENTRY _ZTI5cc702[];
+extern VTBL_ENTRY _ZTV5cc702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc702[];
+extern Class_Descriptor cd_dd7702;
+extern VTBL_ENTRY _ZTI6dd7702[];
+extern VTBL_ENTRY _ZTV6dd7702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7702[];
+static Base_Class bases_ee77702[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 0},
+ {&cd_bb02, ABISELECT(48,24), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc702, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7702, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77702[];
+extern void _ZN7ee777023fooEv();
+extern void _ZN7ee777023barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee777023barEv,_ZTv0_n20_N7ee777023barEv)();
+extern void ABISELECT(_ZThn16_N7ee777023barEv,_ZThn8_N7ee777023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777023fooEv,_ZTv0_n24_N7ee777023fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777023fooEv,_ZThn8_N7ee777023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777023fooEv,_ZTv0_n16_N7ee777023fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777023fooEv,_ZThn16_N7ee777023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777023barEv,_ZTv0_n20_N7ee777023barEv)();
+extern void ABISELECT(_ZThn32_N7ee777023barEv,_ZThn16_N7ee777023barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777023fooEv,_ZTv0_n12_N7ee777023fooEv)();
+extern void ABISELECT(_ZThn48_N7ee777023fooEv,_ZThn24_N7ee777023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777023barEv,_ZTv0_n16_N7ee777023barEv)();
+extern void ABISELECT(_ZThn48_N7ee777023barEv,_ZThn24_N7ee777023barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77702[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77702[0]),
+ (VTBL_ENTRY)&_ZN7ee777023fooEv,
+ (VTBL_ENTRY)&_ZN7ee777023barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777023barEv,_ZTv0_n20_N7ee777023barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777023fooEv,_ZTv0_n24_N7ee777023fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777023fooEv,_ZTv0_n16_N7ee777023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777023barEv,_ZTv0_n20_N7ee777023barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777023fooEv,_ZTv0_n12_N7ee777023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777023barEv,_ZTv0_n16_N7ee777023barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77702[];
+extern void _ZN6dd77023barEv();
+extern void _ZN6dd77023fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7702__7ee77702[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&_ZN6dd77023barEv,
+ (VTBL_ENTRY)&_ZN6dd77023fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv)();
+extern void ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc702__6dd7702__7ee77702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv)();
+extern void ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv)();
+extern void ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__6dd7702__7ee77702[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv),
+};
+extern void _ZN5cc7023fooEv();
+extern void _ZN5cc7023barEv();
+static VTBL_ENTRY _tg__ZTV5cc702__7ee77702[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&_ZN5cc7023fooEv,
+ (VTBL_ENTRY)&_ZN5cc7023barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv)();
+extern void ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv)();
+extern void ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa24bb02__5cc702__7ee77702[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc702[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv),
+};
+static VTT_ENTRY vtt_ee77702[] = {
+ {&(_ZTV7ee77702[5]), 5,28},
+ {&(_ZTV7ee77702[13]), 13,28},
+ {&(_ZTV7ee77702[20]), 20,28},
+ {&(_ZTV7ee77702[26]), 26,28},
+ {&(_tg__ZTV6dd7702__7ee77702[4]), 4,6},
+ {&(_tg__ZTV5cc702__6dd7702__7ee77702[5]), 5,7},
+ {&(_tg__ZTV3aa24bb02__6dd7702__7ee77702[4]), 4,6},
+ {&(_tg__ZTV5cc702__7ee77702[3]), 3,5},
+ {&(_tg__ZTV3aa24bb02__5cc702__7ee77702[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77702[];
+extern VTBL_ENTRY _ZTV7ee77702[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77702[];
+static VTBL_ENTRY alt_thunk_names1156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7023barEv,_ZTv0_n16_N5cc7023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023barEv,_ZThn8_N5cc7023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7023fooEv,_ZTv0_n12_N5cc7023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7023fooEv,_ZThn8_N5cc7023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023barEv,_ZTv0_n16_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023barEv,_ZThn16_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77023fooEv,_ZTv0_n12_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77023fooEv,_ZThn16_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77023barEv,_ZTv0_n20_N6dd77023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023barEv,_ZThn8_N6dd77023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77023fooEv,_ZTv0_n16_N6dd77023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77023fooEv,_ZThn8_N6dd77023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777023barEv,_ZTv0_n16_N7ee777023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777023barEv,_ZThn24_N7ee777023barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777023fooEv,_ZTv0_n12_N7ee777023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777023fooEv,_ZThn24_N7ee777023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777023fooEv,_ZTv0_n16_N7ee777023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777023fooEv,_ZThn16_N7ee777023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777023fooEv,_ZTv0_n24_N7ee777023fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777023fooEv,_ZThn8_N7ee777023fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777023barEv,_ZTv0_n20_N7ee777023barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777023barEv,_ZThn16_N7ee777023barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777023barEv,_ZThn8_N7ee777023barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77702 = { "ee77702", // class name
+ bases_ee77702, 4,
+ &(vtc_ee77702[0]), // expected_vtbl_contents
+ &(vtt_ee77702[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77702),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77702),28, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77702),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1156,
+};
+#endif // __cplusplus
+
+//============================================================================
+